我们在 CentOS 7 上运行 LAMP 堆栈。已经运行了大约一年。
但今天我们看到loading averages
流量暴增。我们检查后发现top
没有看到任何高负载的特定进程,但有很多 Apache 进程在运行。
尝试重启阿帕奇几次,但没有帮助。
最终决定重启MySQL。这暂时降低了负载,但持续时间不长。
然后决定重启服务器。这也只是暂时降低了负载。
日志没有显示太多的外部连接:
$ sudo tail -n 500 /var/log/httpd/access_log | cut -d' ' -f1 | sort | uniq -c | sort -gr
395 ::1
101 127.0.0.1
3 66.102.6.91
1 66.102.6.89
发生了什么事?我们该如何解决这个问题?
编辑 1:更多细节
平均负载在 50 到 300 之间。在某些时候,我们遇到了以下情况:
$ uptime
10:33:28 up 317 days, 22:36, 2 users, load average: 81.21, 75.67, 75.62
稍后检查:
$ uptime
12:41:50 up 50 min, 2 users, load average: 227.67, 147.99, 75.37
下列的Apache 产生数百个进程并推高平均负载我们检查了配置,但没有看到服务器限制或任何其他参数:
$ less /etc/httpd/conf/httpd.conf | grep ServerLimit
$