![tcpsndbuf 导致最大 CPU 负载(在 openvz 上使用 proxy_mod)](https://linux22.com/image/667280/tcpsndbuf%20%E5%AF%BC%E8%87%B4%E6%9C%80%E5%A4%A7%20CPU%20%E8%B4%9F%E8%BD%BD%EF%BC%88%E5%9C%A8%20openvz%20%E4%B8%8A%E4%BD%BF%E7%94%A8%20proxy_mod%EF%BC%89.png)
我确实运行了一个 Web 应用程序,我将其精简到最大以避免出现过高的 tcpsndbuf 值。几天后,在流量非常非常少的情况下,仍会出现 tcpsndbuf 上的失败。
我最初以为这是一个应用程序容器问题,如下所述线。
tcpsndbuf 值不断上升。似乎缓冲区值从未完全释放。因此,它不断增加,直到突破限制并要求 100% CPU 节流。
然而,在排除了休眠配置、mysql 驱动程序错误等不同来源后,我想专注于由 Parallel Plesk/Power Panel 和 apache proxy_mod 管理的 openvz。
我之所以相信这一点,是因为/usr/sbin/apache2 -k start
进程列表中列出了大量进程(Parallels Power Panel、进程)
我使用 proxy_mod 将端口 80 路由到位于不同端口但同一主机上的应用程序服务器。
我如何详细分析套接字状态?例如,哪个应用程序锁定了哪个缓冲区,什么时候分配的?我可以看到 proxy_mod 连接吗?这种类型的数据可用吗?非常欢迎任何其他有关 tcpsndbuf 引发最大 CPU 负载的提示。