Назад | Перейти на главную страницу

Проблемы с замедлением Haproxy со временем

Недавно мы перешли с Perlbal на HAProxy из-за использования памяти Perlbal. Это был довольно безупречный переход, хотя в последнее время мы столкнулись с проблемой, которую я не могу понять (это не помогает, я не знаком с бесчисленными параметрами конфигурации HAproxy).

Мы медиа-сайт, обслуживающий значительный объем трафика - мы используем HAProxy для распределения нагрузки по нашим медиа-серверам. После запуска HAProxy все работает быстро и соответственно, хотя примерно через 10-20 минут все начинает замедляться, и медиа обслуживаются очень медленно. Я почти уверен, что это HAProxy, поскольку простой перезапуск службы устраняет проблему.

Я использую довольно ванильную конфигурацию HAProxy без наворотов:

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        option redispatch
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

listen  media 0.0.0.0:80
        balance roundrobin
        server  media_1 x.x.x.x:8080 weight 1 maxconn 1024 check
       server  media_2 x.x.x.x:8080 weight 1 maxconn 1024 check

Может ли кто-нибудь пролить свет на то, в чем может заключаться проблема?

Ваша конфигурация действительно очень проста. Я вижу, что у вас нет "option httpclose" и у вас очень низкое значение "maxconn", может быть, у вас просто заканчиваются соединения при высокой нагрузке? Вам обязательно стоит включить эту опцию. Вы также должны включить страницу статистики, добавив «stats uri / haproxy-stats» в раздел «listen». Затем вы подключаете свой браузер к этому URL-адресу на своем сайте, и вы увидите всю статистику с одновременными подключениями, подключениями в секунду, ошибками, ... Это вам очень поможет.

О, какая это версия? В 1.3.16 есть неприятная ошибка, из-за которой он потребляет много ресурсов процессора при некоторых шаблонах трафика. Вы должны использовать либо 1.3.18, либо 1.3.15.X.

Вилли

Также возможно, что ваши внутренние веб-серверы отклоняют слишком много соединений с одного IP-адреса. С HAProxy (без tproxy) запросы поступают от узла балансировки нагрузки. Это могло создать такие проблемы.

Я бы сказал, что первое, что нужно сделать, - это включить страницу статистики HAProxy и, возможно, также вести журнал.

Поскольку это происходит со временем, возможно, это какое-то истощение ресурсов.

Вы отслеживаете различную статистику свободной памяти и использование процессора?