Linux

Ubuntu Linux,top命令結果解讀

  • October 2, 2010

我是 Linux 作業系統的新手,我在基於 drupal 的網站上遇到了麻煩,結果證明速度很慢。我正在使用 2 個單獨的伺服器來託管和 MYSQL。在執行top命令時,我得到以下結果

top - 06:34:26 up 17:54,  1 user,  load average: 4.54, 4.98, 5.36

Tasks:  79 total,   1 running,  78 sleeping,   0 stopped,   0 zombie
Cpu(s): 74.8%us, 23.6%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  1.7%si,  0.0%st
Mem:   4044336k total,  3963584k used,    80752k free,    21760k buffers
Swap:  1477940k total,        0k used,  1477940k free,  3530868k cached

PID   USER      PR  NI  VIRT  RES    SHR  S   %CPU  %MEM    TIME+  COMMAND
1077  mysql     20   0  502m  181m   4124 S    98.8  4.6   549:02.28 mysqld

mysql 程序的 CPU 使用率為 99.7%。這是否意味著我的處理器正在最大化。可以做些什麼來解決這個問題?我需要添加更多核心嗎?然而,相反,平均負載很低。

我是一個絕對的新手,並且從書中學到了大多數行話。如果有人可以提供幫助,將不勝感激。

如果您已經有 2 或 4 個核心,那麼您應該檢查一下*為什麼MySQL 負載如此之大,這可能不是您的問題。*一個好的、巧妙優化的數據庫系統將能夠在最大化 CPU 時間之前使用更多的記憶體。在考慮硬體升級之前需要考慮的一些事情是:

  • 表索引
  • 慢查詢
  • tmp 表設置
  • (已編輯) 優化表
  • *(已編輯)*數據庫碎片(見 marcoc 的回答)
  • 系統上有足夠的 I/O 容量

我只是在猜測,但似乎您的系統在數據庫本身上花費了太多時間(在 I/O 上花費的時間不多,而且根本沒有交換等),所以您可能應該檢查您的索引……也許db 只是忙於掃描表,因為它沒有用於您執行的查詢的正確索引(如果是這種情況,添加硬體將無濟於事)

在那之後,如果你仍然需要更多的馬力,我會在系統中添加更多的記憶體,可能每個核心最多 4GiB(即,如果你執行 4 個核心,則為 16GiB),但這實際上取決於你的數據集大小和訪問模式(主要是讀,主要是寫,等等……)

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