Apache-2.2

我怎麼能理解為什麼 apache 消耗這麼多 cpu - ec2

  • February 4, 2015

我有一個 ec2 c3.medium 實例正在執行。它最近開始最大限度地使用 CPU,使伺服器無響應。重新啟動實例並沒有真正幫助很長時間,儘管它確實使 apache 再次為站點服務一個小時左右。

當我查看頂部時,我可以看到各種 apache 程序正在執行,這在大約 10 到 1 之間波動,並且這些程序的 CPU% 使用率波動高達 30% 左右。

當它最大化時,問題是這些 apache 程序/

我怎樣才能找出是什麼推動了這些過程?

此處的頂級摘要快照

top - 16:06:32 up 33 min,  2 users,  load average: 1.80, 1.67, 2.13
Tasks:  87 total,   2 running,  85 sleeping,   0 stopped,   0 zombie
Cpu(s): 55.4%us,  2.6%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si, 42.0%st
Mem:   3842540k total,  1698436k used,  2144104k free,    87556k buffers
Swap:  1048572k total,        0k used,  1048572k free,   501328k cached




2088 apache    20   0  707m  75m  31m S 17.9  2.0   0:53.59 /usr/sbin/httpd
2188 apache    20   0  698m  70m  27m S 17.9  1.9   0:59.35 /usr/sbin/httpd
1613 mysql     20   0  885m 200m 6860 S 10.6  5.4   3:41.55 /usr/libexec/mysqld
2197 apache    20   0  698m  86m  44m S  5.6  2.3   0:53.89 /usr/sbin/httpd
1864 apache    20   0  698m  78m  35m S  1.7  2.1   0:55.13 /usr/sbin/httpd
2097 apache    20   0  699m  87m  43m S  1.7  2.3   0:54.70 /usr/sbin/httpd

從來沒有遇到過這種問題,所以除了查看頂部之外,不確定如何確定問題的來源。

謝謝。

更新:在評論中沒有收到我的問題的回复,但有趣的是,這個問題在發生大約 2 週後才自行解決,這表明 AWS 竊取了太多 CPU,而不是我們的設置問題。有人對此結論有何評論嗎?

  1. Load average > 1 != bad你需要更好地理解它
  2. 42.0%st在CPU線不好。那是“竊取時間”,這意味著您所在的計算主機可能已超額訂閱,並且 42% 的 CPU 週期發生在其他實例中,而不是您的實例。
  3. 跑去apachectl fullstatus尋找W州內的工人。這些將告訴您當時 apache 正在服務的請求。

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