如何查找哪个进程导致CPU使用率高


30

有什么办法可以从终端中找出导致CPU使用率高的进程?

按cpu降序对进程进行排序也很有用

Answers:


23

top将显示正在使用的CPU。如果已安装,则htop可以进行更细粒度的控制,包括通过CPU进行过滤(在您的情况下)


4
顶部通常没有用。首先,因为进程经常波动-偶尔会完全占据CPU的进程偶尔在顶部闪烁到0%,这是很正常的,如果您正在运行多个密集进程,它们可以交替使用,轮流使用100%,而其他使用0% ,使其难以阅读。另外,有时数字只是个奇怪的数字-例如,现在我的头顶报告是所有单个进程都使用0%cpu,但总数为52%-那么哪个进程在使用它?
Benubird


4

pstop命令外,您还可以运行vmstat找出在CPU,系统上的内存使用方面发生的情况,即:

vmstat 1 100

通过以上操作,您每秒钟可以获得100个样本的各种统计数据。当rb列中有一个数字(更高=使用了更多资源)时,将阻止脚本。r是CPU,b通常是IO阻止,例如磁盘或网络。

输出示例:

$ vmstat 1 100
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 288700  17592 1920048    0    0  4482  3297   47  155  8  2 78 12  0
 0  0      0 268420  17904 1920584    0    0   788    36 4095 4759 11  3 85  1  0
 0  0      0 269916  17940 1920868    0    0   108   560 6969 7280 11  2 86  1  1
 3  0      0 267684  18196 1921304    0    0   256     0 5934 6094  9  2 90  0  0
 0  0      0 257800  18196 1921528    0    0     0     0 5412 5508 10  1 89  0  1
 1  0      0 257368  18196 1922028    0    0     0     0 5852 6046  9  1 89  0  1
 0  0      0 256872  18200 1922236    0    0     0     0 5345 5566  9  1 90  0  0
 0  0      0 256688  18208 1922292    0    0     0  1788 5388 5602  7  2 90  1  1
 0  0      0 256520  18208 1922684    0    0     0     0 5387 5557  8  1 91  0  0
 1  0      0 255788  18208 1923024    0    0     0     0 4992 5363 10  1 89  0  1
 1  0      0 255392  18208 1923456    0    0     0     0 5027 5145 13  1 86  0  0
 0  0      0 254980  18208 1923792    0    0     0     0 5042 5082 21  1 77  0  1
 0  0      0 254452  18216 1924092    0    0     0  1848 5481 5695  7  1 91  1  1
 0  0      0 254416  18216 1924268    0    0     0     0 4947 5250  7  1 92  0  0
 1  0      0 253732  18216 1924616    0    0     0     0 5180 5383  8  2 90  0  1
 0  0      0 253584  18216 1924912    0    0    12     0 4464 4623  8  1 91  0  0
 0  0      0 243496  18216 1925224    0    0     0     0 5507 5700  9  1 90  0  1
 0  0      0 243008  18224 1925504    0    0     0  1356 5070 5345  8  1 90  0  1
 1  0      0 243220  18228 1925676    0    0     0     0 6241 6533 11  2 87  0  0

2

您可能可以使用ps xo pid,cmd --sort=%cmd | tail -1,但是top会实时显示。


2

htop ”与top相似,但是具有CPU的“基于彩色文本的图形化”显示,并且还为进程显示树形结构,因此您知道一个进程有一个子级和多少个。

它还显示笔记本电脑的电池电量以及是否正在充电-我以前不知道!

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.