apache2高cpu负载的问题检查

数据中心所在服务器同时服务了几十个网站,近日突然发现cpu负载居高不下,导致数据中心网站访问速度超慢,甚至不能访问。

首先检查其中几个可疑的高负载网站,包括2个phpbb论坛,转移到另外一台服务器上,发现问题仍然存在。

通过htop检查,发现问题和mysql直接相关,apache高负载时mysql也同时高负载,尝试将mysq关闭,则问题解决,因此问题肯定在于使用mysql的网站,但使用mysql的网站仍然有很多,需要进一步排除。

在网上搜索发现serverfault上有一个相关性很高的帖子:
Tracking Apache by VirtualHost
其中,提到了一个方法找出高负载时访问最多的网站:

for pid in `pgrep -u www-data`; do find /proc/${pid}/cwd -printf "%l\n" ; done

使用sudo su后运行此命令,发现是有一个网站使用了mediawiki,导致大量攻击,引起了此问题,解决办法很粗暴,将此网站stop即可。


已发布

分类

来自

标签:

评论

《“apache2高cpu负载的问题检查”》 有 1 条评论

  1. 李建轩 的头像

    正巧看了一篇文章,是关于持久mysql链接的,mysql几个函数可能会导致高cpu占用率,它们会将数据库的连接固化,即使脚本执行结束也不会释放,以便下次使用,这样虽然适合高并发网站使用,但是小网站就会受到截然相反的影响

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注