Nic*_*ick 5 linux linux-networking high-load
我们有高流量网站的服务器。最近我们从
2 x 4 核服务器(/proc/cpuinfo 中的 8 核),32 GB RAM,运行 CentOS 5.x,以
2 x 4 核服务器(/proc/cpuinfo 中有 16 核),32 GB RAM,运行 CentOS 6.3
运行 nginx 作为代理的服务器、mysql 服务器和 sphinx-search。
流量很高,但 mysql 和 sphinx-search 数据库相对较小,通常一切都运行得非常快。
今天服务器的平均负载为 100++。查看 top 和 sar,我们注意到 (%sys) 非常高 - 50% 到 70%。磁盘利用率不到 1%。我们尝试重新启动,但重新启动后问题存在。在任何时候服务器至少有 3-4 GB 的可用内存。
只有 dmesg 显示的消息是“端口 80 上可能发生 SYN 泛洪。正在发送 cookie。”。
这是sar的片段
11:00:01 CPU %user %nice %system %iowait %steal %idle
11:10:01 all 21.60 0.00 66.38 0.03 0.00 11.99
Run Code Online (Sandbox Code Playgroud)
我们知道这是交通问题,但我们不知道将来如何进行以及在哪里检查解决方案。
有没有办法我们可以找到那些“66.38%”的确切使用位置。
任何建议,将不胜感激。
更新:今天平均负载“正常”,“sys%”也正常~4%。然而,今天的流量比昨天减少了大约 20-30%。这让我觉得昨天的问题是因为 TCP 的一些内核设置。
我会从 EPEL 存储库安装。Atop 应该可以帮助您显示诊断导致 %sys 活动的原因。
Atop 还具有 atop -r 功能,允许您使用 t/T 键及时向后和向前浏览日志。
还要查看 /proc/interrupts 和 /var/log/httpd/logs 并按 ip 进行排序,以查看是否有任何可疑 IP 导致 httpd 流量异常。
我会将 cat /proc/interrupts 定时到日志文件中。寻找中断中的高增量。