我们有一台 VPS 服务器(它使用 Virtuozzo)。现在有几次,我们的 VPS 内存已完全用完,无法通过 SSH、SMTP 或 POP 与服务器建立新连接。唯一可行的方法是连接到 Web 服务。幸运的是,plesk 正在 VPS 上运行,我们能够通过 plesk 重新启动它(同时看到 RAM 已 100% 使用)。
我想找出导致这种情况的进程。我感觉是 MySQL,但不太清楚。我可以实现某种日志记录来帮助我在下次发生这种情况时找出原因吗?
谢谢。
答案1
在像您这样的情况中,我ps aux
每分钟都会从 cron 运行一次,以便我可以回顾并找到占用大量内存的地方。将以下内容放入您的 crontab 中:
* * * * * (date ; ps aux) >> $HOME/ps-aux
警告:随着时间的推移,这可能会建立一个很大的日志文件。
下次崩溃后,您可以回顾文件以查找使用大量内存的进程(“%MEM”、“VSZ”和“RSS”列是需要查看的位置)。
答案2
你有没有尝试过类似在顶上?