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