我的 VPS 持续内存不足,我的 Apache 服务器宕机,当我登录重新启动时,出现“内存故障”错误,必须通过托管公司仪表板重新启动。
但是,在重新启动之前,我可以使用 查看内存使用情况top
,没有发现任何可疑情况。Mysqld 有时会达到 6% 的内存峰值,几个 php-cgi7 进程达到 1%,仅此而已,所有其他进程似乎都没有消耗太多内存。
那么是否top
因为某种原因而丢失了某些东西?我还能做些什么来调试这种情况?
答案1
我猜想当你登录时,导致问题的进程已经消失了。尝试登录并使用 top 找出当系统正常运行但已运行一段时间时哪些进程占用了内存。
正如@yoonix 所建议的,检查您的系统日志。要找到此日志,请在 Google 上搜索“(操作系统名称) 系统日志位置”之类的内容。使用您选择的文本编辑器查看该文件,查找适用的消息。
您可以参考这里了解你的操作系统如何决定终止哪些进程。
如上所述这一页(现在有点过时了),你可以使用类似这样的方法来找出被杀死的东西
grep -i kill /var/log/messages*
你应该看到类似这样的条目
host kernel: Out of Memory: Killed process 2592 (oracle).