我有一台运行Digital Ocean的Debian 7 x64机器,每隔30分钟CPU使用率为1分钟。 几天前,它在那里呆了几个小时,所以服务器最终崩溃,我不得不修复我的Mysql数据库。 服务器是运行apache2和Mysql的纯Web服务器。
我试图跟踪哪些进程使用CPU,但没有运气。 我使用的脚本:
#!/bin/sh while true; do ps -A -eo pcpu,pid,user,args | sort -k 1 -r | head -3 >> proclog.txt; echo "\n" >> proclog.txt; sleep 2; done
在这种情况发生时,我也在监视htop,但是尽pipehtop的cpu显示为100%,但是最高处理器的CPU使用率并没有达到约15%。 htop被configuration为显示所有用户的进程,用户和内核线程。
编辑:通过在预期的100%使用率之前停止Apache2&Mysql,我可以告诉两者都不负责任。 无论如何都发生了100%的使用。
这就是过去几小时的图表: 
我想你机器是虚拟机?
然后,您可能会看到这些峰值,因为您的机器正在运行的硬件资源。
我想这是一个syswait或iowaittypes的峰值,你的机器必须等待虚拟主机完成它的任务。 在这种情况下,你不会在htop / atop /中看到一个东西,因为你的机器实际上不是在做一件事。
由于这种情况经常发生,因此我会提出一些在计算机运行的主机上执行大量IO的cron-job。
也许你安装/使用atop,它也会logging系统统计数据以供以后分析。 祝你好运。