如何從Linux中的shell中確定當前的CPU利用率?如何從shell中確定當前的CPU利用率?
例如,我得到的平均負載,像這樣:
cat /proc/loadavg
輸出:
0.18 0.48 0.46 4/234 30719
如何從Linux中的shell中確定當前的CPU利用率?如何從shell中確定當前的CPU利用率?
例如,我得到的平均負載,像這樣:
cat /proc/loadavg
輸出:
0.18 0.48 0.46 4/234 30719
Linux沒有提供當前CPU利用率的任何系統變量。相反,您必須多次讀取/ proc/stat:cpu(n)行中的每一列都給出了總CPU時間,並且必須隨後讀取它才能獲得百分比。請參閱this document以瞭解各個列的含義。
也許這樣的事情
ps -eo pid,pcpu,comm
,如果你喜歡解析,也許只是看一些過程。
#!/bin/sh
ps -eo pid,pcpu,comm | awk '{if ($2 > 4) print }' >> ~/ps_eo_test.txt
使用頂部:這將顯示您的CPU使用PS統計
top -b -n 1 |grep ^Cpu
:這將顯示每個進程的%的CPU使用率。
ps -eo pcpu,pid,user,args | sort -r -k1 | less
另外,還可以在bash或Perl寫一個小腳本讀取的/ proc/STAT和計算CPU使用率。
我們試過了,「top -b -n 1」的結果很不準確。 「top」的第一次迭代非常接近,可以給出10%而不是60. – 2009-08-28 11:51:07
用-n> 1來增加迭代次數會更精確嗎?你測試過這種情況了嗎? – Christian 2012-05-04 06:45:07
top對%CPU的計算不同於ps對%CPU的計算。看到這個答案http://unix.stackexchange.com/questions/58539/top-and-ps-not-showing-the-same-cpu-result – BozoJoe 2013-09-23 21:59:37
試試這個命令:
cat /proc/stat
這將是這樣的:
cpu 55366 271 17283 75381807 22953 13468 94542 0
cpu0 3374 0 2187 9462432 1393 2 665 0
cpu1 2074 12 1314 9459589 841 2 43 0
cpu2 1664 0 1109 9447191 666 1 571 0
cpu3 864 0 716 9429250 387 2 118 0
cpu4 27667 110 5553 9358851 13900 2598 21784 0
cpu5 16625 146 2861 9388654 4556 4026 24979 0
cpu6 1790 0 1836 9436782 480 3307 19623 0
cpu7 1306 0 1702 9399053 726 3529 26756 0
intr 4421041070 559 10 0 4 5 0 0 0 26 0 0 0 111 0 129692 0 0 0 0 0 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 369 91027 1580921706 1277926101 570026630 991666971 0 277768 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 8097121
btime 1251365089
processes 63692
procs_running 2
procs_blocked 0
更多細節:
http://www.mail-archive.com/[email protected]/msg01690.html http://www.linuxhowtos.org/System/procstat.htm
命令uptime
給你羅過去1分鐘,5分鐘和15分鐘的廣告平均數。
只是FYI,負載平均值不是CPU使用率,雖然它可能間接顯示CPU使用率。這是一個數字,顯示有多少進程在運行,但等待資源,無論是CPU還是磁盤或其他。 – hhaamu 2009-08-26 07:23:57
我知道這一點。實際上,我評論了這個效應的答案。 – Joel 2009-08-26 07:25:35