我有一个 VPS,它托管一个网站(http://www.tanguay.info/web)大约每天有 1800 名独立访客。
网站运行良好3秒响应时间数周。
突然间周五下午 4 点该网站无法访问响应时间超过 30 秒从那时起就一直处于宕机状态。以下是 ping 图表:
替代文本 http://tanguay.info/web/external/pingdomdown.png
即使重启了多次,我还是无法将响应时间恢复到 30 秒以下。使用“top”命令,我看到有 30 多个 Apache 进程正在运行,似乎占用了 90% 以上的内存。
这可能是什么原因造成的?为什么会有这么多 Apache 进程打开,尤其是现在该网站基本上无法访问?这些进程可能只是因为某种原因没有被关闭吗?
替代文本 http://tanguay.info/web/external/tooManyApacheProcesses.png
答案1
您使用的是基于 Virtuozzo/OpenVZ 的虚拟机(根据top
您发布的屏幕截图)。其他东西可能正在破坏您所使用的机器,因为顶部输出实际上并没有显示任何异常(Apache 进程的 17MB RES 是相当合理的)。我会与您的托管提供商讨论不要让他们的 VM 服务器过载太多,或者找到更好的 VM 提供商。
答案2
静态内容不会受到影响,问题可能出在数据库中。检查 MySQL 慢查询日志/var/log/mysql/mysql-slow.log
。Apachemod_status
也许也很有用,它将显示状态页面,例如这。
答案3
看到所有标有 D 的进程,我认为磁盘子系统可能已超载。