Недавно мы перешли с 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 и, возможно, также вести журнал.
Поскольку это происходит со временем, возможно, это какое-то истощение ресурсов.
Вы отслеживаете различную статистику свободной памяти и использование процессора?