2014-10-02 227 views
2

我在Google Compute Engine上運行一個小型Cassandra集羣。從我們的CPU圖表(據collectd報道),我注意到在NICE中花費了一筆不小的處理器時間。我怎樣才能找出哪個過程消耗這個?我已經嘗試過從頭開始並且盯着它一段時間,但是NICE的CPU使用率有點spikey(大多數時候,NICE是0%,有時會達到30-40%),所以「坐等」不是很有效。瞭解什麼是「nice」CPU

+0

作爲第一個快速檢查,您可以檢查是否有使用縮進過程的cron作業。 – 2014-10-02 13:02:12

回答

3

「好」通常指的是過程的優先級。 (正值越低優先級越高,負值越高優先級越高。)您可以運行ps -eo nice,pid,args | grep '^\s*[1-9]'以獲得正好(低優先級)命令的列表。

在CPU圖表上NICE時間是運行流程的時間,具有良好的正值(即低優先級)。這意味着它正在消耗CPU,但會放棄大多數其他進程的CPU時間。上述ps命令中列出的其中一個進程的任何USER CPU時間將顯示爲NICE。

+0

我不太瞭解你的grep。由於負值的優先級較低,因此我不應該對NICE值<0的進程進行選擇嗎?看起來你的命令是對正NICE(即高優先級)命令的grep。以下是我的結果:<< 5 30 [ksmd],19 31 [khugepaged] >>。我認爲這可能是我想運行得到負面的NICE價值流程,對吧? 'ps -eo nice,pid,args | grep'^ \ s * [1-9]'' 編輯:ugh,很難在註釋中設置格式 – 2014-10-08 14:26:15

+0

但是請注意,如果我將pcpu添加到輸出格式,所有匹配的進程(每個都帶有NICE = -20)它們每個都顯示pcpu = 0.0,所以我不認爲其中任何一個都可以解釋collectd正在報告的NICE cpu。 – 2014-10-08 14:30:13

+0

伊恩,我錯過了寫關於優先權的括號,當我把它放在那裏時,這是非常愚蠢的,因爲它通常會讓人困惑。 +20 nice是最低優先級。 – David 2014-10-08 18:05:56