Linux

如何從核心診斷和修復頻繁的 100% cpu 使用率?

  • April 19, 2013

我有一個執行舊 2.6.16 核心的 Amazon EC2 微實例。它執行 postfix、apache 和 mysql。在正常負載期間,它的平均負載約為 0.05,並且大約 95% 的時間都以這種方式執行。然而,一天幾次(或多次),CPU 使用率將飆升至 100%,系統幾乎無法使用。這通常持續大約 5 分鐘,然後負載恢復正常。

如果我在發生這種情況時設法查看 htop(不容易 - 負載如此嚴重),我發現沒有正在執行的任務佔任何顯著的 CPU 使用率,這讓我相信這一切都發生在核心中 -土地。

如何診斷此負載的原因,更重要的是,如何修復它?

在這些期間“iowait”和“竊取”CPU 時間的百分比是多少?

Iowait 表示 CPU 等待 IO 請求完成所花費的時間,steal percent 表示核心請求但被管理程序拒絕的 CPU 時間。

EC2t1.micro實例非常受 CPU 和 IO 限制。它們可能會在很短的時間內爆發,之後它們會受到嚴重的 CPU 限制。下次發生這種情況時,請注意%wa%st的輸出top。我敢打賭,其中之一或兩者都具有很高的 CPU 時間百分比。

為了緩解,您需要找到 IO 和/或 CPU 負載的來源,或者將您的實例大小調整為m1.small.

引用自:https://serverfault.com/questions/501026