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

Перезапуск HAProxy без потери счетчиков

Я пытаюсь найти способ перезапустить HAProxy без очистки всех моих счетчиков. Я пробовал горячую реконфигурацию, но ни одна из следующих команд не работает:

haproxy -f /path/to/haproxy.cfg -p /path/to/haproxy.pid -sf $(cat /path/to/haproxy.pid)

haproxy -f /path/to/haproxy.cfg -p /path/to/haproxy.pid -st $(cat /path/to/haproxy.pid)

Обе команды перезагружают конфигурацию, но мои счетчики все еще очищаются. Возможно, это невозможно?

По сути, перезагрузка - это интересный способ создания новых процессов. В HAProxy статистика хранится только в каждом процессе и никогда нигде не сохраняется. Это потому, что HAProxy обычно chrootнаходится в пустом каталоге, в который он не может ничего писать. Таким образом, нет возможности внедрить статистику / счетчики в новые процессы.

Это кстати. это также проблема, с которой вы столкнетесь, если установите nbproc> 1. Поскольку каждый процесс хранит свою статистику, счетчики и липкие таблицы, это чистая вероятность, в каком процессе вы закончите и какие счетчики процесса вы наблюдаете. Этим нельзя делиться. (кроме липких таблиц, где есть протокол, но я считаю, что это все еще не работает с nbproc)

Какая у вас версия? Я считаю, что 1.4 имеет возможность сохранять счетчики после перезапуска.