有没有任何方法可以看出是哪个进程(Es)导致了最多CPU的使用?
我有AMAZON,它的CPU利用率达到100 %,让我重新启动系统。我甚至不能通过SSH登录(使用putty)。
有什么方法可以看出是什么导致了如此高的CPU使用率,以及是哪个进程导致了这一点?
我知道sar和top命令,但是我在任何地方都找不到进程执行历史记录。以下是亚马逊EC2监控工具的图像,但我想知道是哪个进程导致了这种情况:

我也尝试过ps -eo pcpu,args | sort -k 1 -r | head -100,但没有找到这么高的CPU使用率。
发布于 2012-05-08 22:14:20
有几种可能的方法你可以做到这一点。注意,在一个失控的场景中,它完全有可能导致这一点,而不仅仅是一个。
第一种方法是设置pidstat以在后台运行并生成数据。
pidstat -u 600 >/var/log/pidstats.log & disown $!这将给您一个非常详细的系统运行的展望,每隔十分钟。我建议这是您的第一次访问,因为它产生了最有价值/最可靠的数据来使用。
这有一个问题,主要是如果盒子进入一个失控的cpu循环并产生巨大的负载-你不能保证你的实际进程将在加载期间及时执行(如果有的话),所以你实际上可能会错过输出!
第二种查找方法是启用流程会计。可能是更长远的选择。
accton on这将启用流程会计(如果尚未添加)。如果在此之前没有运行,则需要时间来运行。
运行了24小时之后,您就可以运行这样的命令(它将产生这样的输出)
# sa --percentages --separate-times
108 100.00% 7.84re 100.00% 0.00u 100.00% 0.00s 100.00% 0avio 19803k
2 1.85% 0.00re 0.05% 0.00u 75.00% 0.00s 0.00% 0avio 29328k troff
2 1.85% 0.37re 4.73% 0.00u 25.00% 0.00s 44.44% 0avio 29632k man
7 6.48% 0.00re 0.01% 0.00u 0.00% 0.00s 44.44% 0avio 28400k ps
4 3.70% 0.00re 0.02% 0.00u 0.00% 0.00s 11.11% 0avio 9753k ***other*
26 24.07% 0.08re 1.01% 0.00u 0.00% 0.00s 0.00% 0avio 1130k sa
14 12.96% 0.00re 0.01% 0.00u 0.00% 0.00s 0.00% 0avio 28544k ksmtuned*
14 12.96% 0.00re 0.01% 0.00u 0.00% 0.00s 0.00% 0avio 28096k awk
14 12.96% 0.00re 0.01% 0.00u 0.00% 0.00s 0.00% 0avio 29623k man*
7 6.48% 7.00re 89.26% 0.00u 0.00% 0.00s 各列按如下顺序排列:
您要寻找的是生成最多用户/系统CPU时间的进程类型。
这会将数据分解为CPU时间的总量(上一行),以及CPU时间是如何分配的。进程会计仅在进程何时启动时才正确记帐,因此,在启用该系统以确保所有服务都得到核算之后,重新启动系统可能是最好的方法。
这一点,并不能给你一个确切的想法,它可能是什么过程可能是这个问题的原因,但可能会给你很好的感觉。因为这可能是一个24小时的快照,有可能扭曲结果,所以请记住这一点。它还应该始终进行日志记录,因为它的内核特性,并且与pidstat不同的是,即使在负载很重的情况下,它也总是会产生输出。
最后一个可用的选项也使用进程记帐,因此您可以像上面一样打开它,但随后使用程序"lastcomm“生成问题发生前后执行的进程的一些统计信息以及每个进程的cpu统计信息。
lastcomm | grep "May 8 22:[01234]"
kworker/1:0 F root __ 0.00 secs Tue May 8 22:20
sleep root __ 0.00 secs Tue May 8 22:49
sa root pts/0 0.00 secs Tue May 8 22:49
sa root pts/0 0.00 secs Tue May 8 22:49
sa X root pts/0 0.00 secs Tue May 8 22:49
ksmtuned F root __ 0.00 secs Tue May 8 22:49
awk root __ 0.00 secs Tue May 8 22:49这也会给你一些提示,说明是什么导致了这个问题。
发布于 2012-05-09 00:11:05
顶上是一个特别方便的守护进程,用于查看进程级别的演练,默认情况下将这些数据存档28天。除了提供一个令人敬畏的实时监控界面之外,您还可以指定那些日志文件来打开并逐步遍历它们。
文章给出了一些功能的概念,您可以在命令页中找到更多的功能。
这确实是一款很棒的软件。
发布于 2012-05-09 06:05:04
像普斯蒙和莫尼特这样的程序可能对你有帮助。它们可以监视系统上运行的进程以及是否存在阈值(CPU使用、内存使用.)获取“超出”,您可以设置它们向您发送关于发生了什么的电子邮件报告。
还可以自动重新启动行为不检的进程。
https://serverfault.com/questions/387268
复制相似问题