重启 HAProxy 且不丢失计数器

重启 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)

这两个命令都会重新加载配置,但我的计数器仍然被清除。也许这是不可能的?

答案1

重新加载实际上是创建新进程的一种奇特方式。在 HAProxy 中,统计信息仅保留在每个进程中,永远不会在任何地方持久保存。这是因为 HAProxy 通常chroot位于一个空目录中,无法写入任何内容。因此无法将统计信息/计数器注入新进程。

顺便说一句,这也是将 nbproc 设置为 > 1 时会遇到的问题。由于每个进程都保留自己的统计数据、计数器和粘性表,因此最终进入哪个进程以及观察哪个进程的计数器完全是偶然的。这些东西无法共享。(除了粘性表,那里有一个协议,但我认为这仍然不能很好地与 nbproc 配合使用)

答案2

你运行的是哪个版本?我相信 1.4 有在重启后保留计数器的选项。

相关内容