gpt4 book ai didi

configuration - HAProxy 的热重新配置仍然导致请求失败,有什么建议吗?

转载 作者:行者123 更新时间:2023-12-04 07:29:23 25 4
gpt4 key购买 nike

我发现当流量很高时使用这样的命令仍然有失败的请求

haproxy -f /etc/haproxy.cfg -p /var/run/haproxy.pid -sf $(cat /var/run/haproxy.pid)

热重载更新的配置文件。

下面是使用webbench的压力测试结果:

/usr/local/bin/webbench -c 10 -t 30 targetHProxyIP:1080
Webbench – Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET targetHProxyIP:1080
10 clients, running 30 sec.

Speed=70586 pages/min, 13372974 bytes/sec.
**Requests: 35289 susceed, 4 failed.**

我运行命令

haproxy -f /etc/haproxy.cfg -p /var/run/haproxy.pid -sf $(cat /var/run/haproxy.pid)

在压力测试中多次。

在haproxy的文档中,提到了

They will receive the SIGTTOU 611 signal to ask them to temporarily stop listening to the ports so that the new 612 process can grab them

所以有一段时间旧进程没有监听端口(比如80),新进程还没有开始监听端口(比如80),在这个特定的时间段内,它会导致新连接失败,有意义吗?

那么有没有什么方法可以让haproxy的配置重新加载而不影响现有连接和新连接?

最佳答案

在最终实现 SO_REUSEPORT 的最新内核上(3.9+),这个死期不再存在。虽然针对旧内核的补丁已经有大约 10 年的时间了,但很明显许多用户无法为他们的内核打补丁。如果您的系统较新,那么新进程将在请求前一个进程释放端口之前成功尝试绑定(bind)(),然后有一段时间两个进程都绑定(bind)到端口而不是没有进程。

仍有极小的可能性,连接在关闭时到达离开进程的队列。但是,没有可靠的方法可以阻止这种情况发生。

关于configuration - HAProxy 的热重新配置仍然导致请求失败,有什么建议吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21595534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com