Apache-2.2

MySQL 400% 的 CPU 使用率?什麼?我該怎麼辦?

  • October 11, 2011
 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
19857 mysql     20   0  514m  47m 3404 S  386  9.7   4511:45 mysqld
15659 www-data  20   0  205m  11m 4856 S    7  2.3   0:00.67 apache2
15701 www-data  20   0  205m  11m 4424 S    5  2.2   0:00.19 apache2
15700 www-data  20   0     0    0    0 Z    1  0.0   0:00.02 apache2 <defunct>

這些是我top在 Ubuntu 上的結果。很好奇為什麼我的網站今天一直在下降。會是這樣嗎?

為什麼 MySQL 使用 386% 的 CPU?這是正常的嗎?我能做些什麼來修復它?

…從哪兒開始。

如果您的網站真的很忙並且您可以證明使用是合理的,這是正常的。但是,您可能會遇到一些非最佳查詢和糟糕的表結構,這些都是造成您大部分痛苦的原因。

我可能會開始查看mysqladmin processlist執行時間最長的查詢並從那裡開始優化。

您還可以在 MySQL 中啟用慢查詢日誌記錄,以便更長遠地了解正在發生的事情以及哪些查詢給您帶來了痛苦。

要全面解決此問題,您確實需要戴上您的 DBA 帽子並從那裡開始。如果您不具備該領域的知識或技能,則可能更容易通過契約獲得 DBA 來查看並提供建議。

不幸的是,全面解決這個問題需要您現有數據集的時間、知識和經驗。

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