有什么方法可以查看哪些进程导致 CPU 使用率最高?
我有 CPU 利用率达到 100% 的 AMAZON EC2 Linux,让我重新启动系统。我什至无法通过 SSH 登录(使用腻子)。
有什么方法可以查看导致如此高 CPU 使用率的原因以及是哪个进程导致的?
我知道sar和top命令,但我在任何地方都找不到进程执行历史记录。这是来自 Amazon EC2 监控工具的图像,但我想知道是哪个进程导致的:

我也试过,ps -eo pcpu,args | sort -k 1 -r | head -100但没有找到这么高的 CPU 使用率。
Mat*_*Ife 38
有几种可能的方法可以做到这一点。请注意,它完全有可能在失控的情况下有许多进程导致这种情况,而不仅仅是一个。
第一种方法是设置 pidstat 在后台运行并生成数据。
pidstat -u 600 >/var/log/pidstats.log & disown $!
Run Code Online (Sandbox Code Playgroud)
这将为您以十分钟的间隔为您提供系统运行的非常详细的展望。我建议这是您的第一个停靠港,因为它会产生最有价值/最可靠的数据。
这有一个问题,主要是如果盒子进入失控的 cpu 循环并产生巨大的负载——你不能保证你的实际进程会在加载期间及时执行(如果有的话)所以你实际上可能会错过输出!
第二种查找方法是启用进程记帐。可能更多是一个长期的选择。
accton on
Run Code Online (Sandbox Code Playgroud)
这将启用进程记帐(如果尚未添加)。如果它之前没有运行,这将需要时间来运行。
已经运行了,比如说 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
Run Code Online (Sandbox Code Playgroud)
列的顺序如下:
您将寻找的是产生最多用户/系统 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
Run Code Online (Sandbox Code Playgroud)
这也可能会给您一些提示,以了解可能导致问题的原因。
| 归档时间: |
|
| 查看次数: |
108773 次 |
| 最近记录: |