2016-11-04 196 views
1

我正在使用實例類型爲m3.medium的Amazon EC2實例和Amazon RDS數據庫實例。由於cpu利用率達到100%而導致AWS站點停機問題

在我的工作時間內,網站出現故障,因爲CPU利用率達到100%,而在夜間(非工作時間),CPU利用率爲60%。

所以請給我正確的解決方案,這個網站下來的問題。我不知道爲什麼我遇到了這個問題。

一旦我爲每分鐘設置了一個cron作業,但由於減速問題我被刪除了,但仍然存在網站停機問題。

CloudWatch chart

當我嘗試使用「頂」命令,我有表演低於CPU使用率圖像,其中的httpd命令消耗更多的CPU使用率,所以任何建議的設置,以減少與httpd的命令 CPU使用率不受任何用戶使用網站下面兩張圖片: http://screencast.com/t/1jV98WqhCLvV http://screencast.com/t/PbXF5EYI 網站訪問後同時5用戶 http://screencast.com/t/QZgZsiNgdCUl

+0

太少細節脫鉤這些工作量。由於此RDS實例正在服務於網站,因此您必須檢查網站日誌文件以找出哪個程序會觸發高RDS CPU使用率。 – mootmoot

回答

2

如果您的CPU利用率達到100%,您有兩種選擇。

  1. 將您的EC2實例類型增大。
  2. 使用AutoScaling啓動另一個具有相同實例類型的EC2實例。

看起來您需要一些計劃的操作,因爲您不需要在非工作時間使用100%的CPU利用率。

最好的選擇是使用AWS AutoScaling和預定操作http://docs.aws.amazon.com/autoscaling/latest/userguide/schedule_time.html

AWS AutoScaling可以根據您的CPU利用率(或其他指標,如網絡負載,磁盤讀取/寫入等)啓動新的EC2實例。這樣你就可以隨時保持你的網站活着。

使用AutoScaling計劃操作,您可以指定度量標準,以便根據CPU利用率(或其他度量標準)在非工作時間內停止自動縮放實例,並在工作時間內自動縮放實例。

如果你在某個時間點不需要它們,你甚至可以停止你的服務器。

如果您不熟悉AWS AutoScaling,您可以按照非常精確和簡單的文檔。 http://docs.aws.amazon.com/autoscaling/latest/userguide/GettingStartedTutorial.html

+2

同意。第三種選擇當然是**調查系統中消耗CPU的過程**。使用標準方法(例如查看進程,內存,磁盤訪問)來確定系統中的瓶頸。 –

+0

@john,我如何調查/找到哪個進程sonsuming cpu。 – Mech

+0

@Ali,我會嘗試你的建議。稍後我會回答你的回答。 我的網站還有一件事每3秒就有一次ajax調用,這可能會導致此CPU利用率問題? – Mech