以下是来自 munin 的图表,可能会有所帮助
这里还有我的http.conf
:
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 40
ServerLimit 2048
MaxClients 2048
MaxRequestsPerChild 8000
</IfModule>
PHP 在几毫秒内生成页面,但我不知道为什么客户端无法正确接收它。你还会看到最后几分钟内下降的连接图。当时我无法加载我网站上的几乎所有页面。
答案1
我从网络角度看到的是太多的 TIME_WAIT=9.76K(我不确定 sure 是什么意思)。time_wait 是由于许多 tcp 连接反复打开和关闭而导致系统用尽套接字的情况。您可以使用 netstat -an 来确认它。您可以调整这些参数
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_tw_recycle = 1
tcp_tw_recycle - BOOLEAN
启用快速回收 TIME-WAIT 套接字。默认值为 0。
未经技术专家的建议/要求,不得更改
。不建议启用此选项,因为这会在使用 NAT(网络地址转换)时导致问题。
tcp_tw_reuse - BOOLEAN
当从协议角度来看安全时,允许重用 TIME-WAIT 套接字进行新连接
。默认值为 0。
未经技术专家的建议/要求,不应更改
。
但在此之前,请进行 tcpdump 并检查新的连接,并与您的应用程序团队核实是否需要这么多的连接。