如何记录CPU负载?


Answers:


42

这很好用:

 while true; do uptime >> uptime.log; sleep 1; done
  • 这将每秒记录一次CPU负载,并将其附加到文件中uptime.log

    然后,您可以将该文件导入Gnumeric或OpenOffice电子表格中,以创建漂亮的图形(在导入时选择“以空格分隔”)。

正如Scaine所注意到的那样,这还不足以诊断问题。因此,另外,运行此命令(或在此部分中使用他的答案):

while true; do (echo "%CPU %MEM ARGS $(date)" && ps -e -o pcpu,pmem,args --sort=pcpu | cut -d" " -f1-5 | tail) >> ps.log; sleep 5; done
  • ps.log每五秒钟会将这10个CPU最繁忙的进程附加到一个文件中。

    请注意,这并不是信息的全部top内容。这只是前十名,也只是它们的CPU使用率,内存使用率和第一个参数(即,它们的命令中没有其他参数,如所示/usr/bin/firefox

在使用电子表格创建图表以查看CPU负载何时通过屋顶之后,您可以在此文件中搜索最近的时间,以查看是什么原因导致了该文件。

这些文件将如下所示:

正常运行时间

~$ cat uptime.log 
 22:57:42 up 1 day,  4:38,  4 users,  load average: 1.00, 1.26, 1.21
 22:57:43 up 1 day,  4:38,  4 users,  load average: 0.92, 1.24, 1.21
 22:57:44 up 1 day,  4:38,  4 users,  load average: 0.92, 1.24, 1.21
 22:57:45 up 1 day,  4:38,  4 users,  load average: 0.92, 1.24, 1.21
 ...

ps.log

%CPU %MEM ARGS Mo 17. Jan 23:09:47 CET 2011
 0.7  0.9 /usr/bin/compiz
 0.8  0.5 /usr/lib/gnome-panel/clock-applet
 1.1  1.7 /opt/google/chrome/chrome
 1.2  0.3 /usr/bin/pulseaudio
 1.8  4.0 /opt/google/chrome/chrome
 2.6  1.5 /opt/google/chrome/chrome
 2.6  3.2 /usr/bin/google-chrome
 3.6  2.6 /opt/google/chrome/chrome
 4.9  1.5 /usr/bin/X
 5.7  1.6 /opt/google/chrome/chrome
%CPU %MEM ARGS Mo 17. Jan 23:09:48 CET 2011
 0.7  0.9 /usr/bin/compiz
 0.8  0.5 /usr/lib/gnome-panel/clock-applet
 1.0  1.7 /opt/google/chrome/chrome
 1.2  0.3 /usr/bin/pulseaudio
 1.8  4.0 /opt/google/chrome/chrome
 2.6  1.5 /opt/google/chrome/chrome
 2.6  3.2 /usr/bin/google-chrome
 3.6  2.6 /opt/google/chrome/chrome
 4.9  1.5 /usr/bin/X
 5.7  1.6 /opt/google/chrome/chrome
 ...

3
这实际上打印出正确的CPU使用率吗?我在centos上尝试了这个,只有内存使用是正确的:(
Menelaos Bakopoulos 2014年

即使关闭了Putty连接后,如何使该命令继续在VPS上运行?
卢卡斯·布斯塔曼特

1
如果报告的CPU使用率ps没有意义,请尝试以root身份运行它。
Stefano Palazzo

即使关闭了Putty连接后,如何使该命令继续在VPS上运行?
Mostafa

10

您可以top使用该-b选项以批处理方式运行该命令,然后将其转储到文件中。

在启动PC时,打开一个终端,运行

top -b > ~/cpu.txt

然后,当您的PC死机时,只需打开(可能很大)文本文件并检查最后一个条目,以了解崩溃前正在运行的内容的详细信息。实际上,该文件是如此之大,以至于您最好运行一个文件tail -250 ~/cpu.txt

如果您的问题与硬件有关,也请检查/var/log/kern.log(不太可能仅在升级后发生,但还是值得检查)。



0

对于需要在腻子(SSH客户端)会话结束后运行此命令的用户。您可以使用命令screen(或使用安装命令apt-get

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.