沒有來自 top 命令的有用資訊的高 CPU 使用率
在過去的 2 天裡,我開始遇到有幾個使用者的伺服器問題。伺服器是一個 OpenVZ VPS。通常當我遇到高 CPU 使用率時,我總是使用
top
命令找出原因。但是對於這台伺服器,我沒有從top
命令中收到任何有用的資訊。下面是我遇到的問題的範例螢幕截圖從螢幕截圖中可以看出,
%CPU
所有程序的列幾乎總是為零,實際上大多數時候我看到所有值都是零,但 CPU 使用率達到了 10 個核心!我完全迷路了,不知道該怎麼做才能找出原因。所以我想問一下是否有人對我面臨的可能原因有任何想法?會不會是伺服器問題?
感謝您的任何建議!
編輯:
請注意,此螢幕截圖僅在發生高負載時拍攝。它每隔幾個小時發生一次,持續約 20 分鐘。正常使用只有0.0-0.2核左右。下面是一個正常使用的例子。
進一步更新
剛才又出現了,這裡是建議命令的截圖
對不起,我對這些是菜鳥,但如果我理解正確,磁碟使用沒有任何問題,io 使用率非常低。
最後更新
我已經嘗試使用建議的方法使用
vmstat
,ps
在答案和評論中給出,但找不到有用的資訊。當峰值發生時,我什至停止了 apache、mysql 但它沒有幫助。我終於聯繫了 VPS 提供商並要求更改為另一個節點。他告訴我,他知道該節點最近被惡意客戶嚴重濫用的問題,他正在努力解決這些問題。所以我想我現在不需要做任何事情。儘管如此,我還是要感謝所有提出建議的成員,使這個問答對以後的參考有用!
大約 30% 的 CPU 時間似乎都花在了等待上,而且您的(至少 1 分鐘)負載非常高。
因此,我將首先檢查您的儲存和儲存使用模式。一個好的起點可能是查看 iostat 和/或監控任何慢速操作(寫入和讀取)。您還可以檢查頂部每個程序所花費的時間,看看是否有什麼突出的。當您執行 mysql 時,我還將檢查它的執行情況。
即使您有合理數量的備用記憶體,您似乎也正在換出,所以我會看看調整
vm.swappiness
(使用 sysctl)可以為您做什麼。RAM 比交換快,所以如果你可以使用它,我會的。其他一切都失敗了,看看探測 sysrq 可以為你做什麼。
如果更直覺的概述可能對您有所幫助,那麼如果您沒有預先存在的解決方案,我可能會查看 firehol 的 netdata ( https://netdata.firehol.org/ )。