什么可能导致30多个Apache进程消耗所有内存?

我有一个VPS托pipe一个网站( http://www.tanguay.info/web ), 每天约有1800个独立访问者

该网站运行得很好,几个星期的响应时间3秒

突然在星期五下午4点,该站点变得无法访问, 响应时间在30秒以上 ,并一直下降。 这是pingdom图:

替代文字http://tanguay.info/web/external/pingdomdown.png

即使重启了很多次,我也无法将响应时间缩短到30秒以下。 使用“top”命令,我看到有30多个Apache进程正在运行,这似乎占用了超过90%的内存

什么可能导致这个? 为什么会有这么多的Apache进程打开,特别是因为现在基本上无法访问? 难道这些进程是不是以某种方式closures?

替代文字http://tanguay.info/web/external/tooManyApacheProcesses.png

您正在使用基于Virtuozzo / OpenVZ的虚拟机(基于您发布的top屏幕截图)。 还有一些东西可能是锤击你正在使用的机器,因为最高的输出并没有显示任何exception(对于Apache进程,17MB的RES是相当合理的)。 我会和你的托pipe服务提供商讨论一下,不要让他们的虚拟机服务器负担过重,或者找一个更好的虚拟机提供商。

静态内容不受影响,问题可能在数据库中。 检查MySQL缓慢的查询日志在/var/log/mysql/mysql-slow.log 。 Apache的mod_status也可能是有用的,它会显示这样的状态页面。

看到标有D的所有进程,我认为磁盘子系统可能已经过载了。