當讀取/proc/stat
,我得到這些返回值:計算CPU使用率統計
cpu 20582190 643 1606363 658948861 509691 24 112555 0 0 0
cpu0 3408982 106 264219 81480207 19354 0 35 0 0 0
cpu1 3395441 116 265930 81509149 11129 0 30 0 0 0
cpu2 3411003 197 214515 81133228 418090 0 1911 0 0 0
cpu3 3478358 168 257604 81417703 30421 0 29 0 0 0
cpu4 1840706 20 155376 83328751 1564 0 7 0 0 0
cpu5 1416488 15 171101 83410586 1645 13 108729 0 0 0
cpu6 1773002 7 133686 83346305 25666 10 1803 0 0 0
cpu7 1858207 10 143928 83322929 1819 0 8 0 0 0
一些資料僅讀取前四個值來計算CPU使用率,而有消息說要讀所有價值。
我是否只讀取前四個值來計算CPU利用率;值爲user
,nice
,system
和idle
?還是我需要所有的價值?或者不是全部,但超過四個?我需要iowait
,irq
或softirq
?
cpu 20582190 643 1606363
對比整條線。
cpu 20582190 643 1606363 658948861 509691 24 112555 0 0 0
編輯:有些來源還指出iowait
加入到idle
。
當計算特定進程的CPU使用率時,該方法是否有所不同?
這取決於你理解「CPU使用率」的含義。你顯然知道所有的列是什麼,所以我猜你已經閱讀了手冊頁,並且知道他們的意思。你有什麼麻煩? – Cairnarvon 2013-02-24 02:13:38
我最初困惑的是爲什麼有人說在計算CPU利用率時只使用前四列(線程使用率0-100%)。雖然根據我目前的理解,應該使用所有列,但是我不知道是否有這樣的情況,例如一列已經添加到另一列中。我聽說'iowait'顯然是預先添加到'閒置',但我不確定。 – hexacyanide 2013-02-24 02:30:36