2016-11-05 97 views
2

我已經在GCE實例上設置了MongoDB,並且已經創建了PHP API來從網站的服務器(不同的實例)訪問這個數據庫。在谷歌計算引擎上崩潰的MongoDB服務器

的問題是,當出現在我的網站流量(比如約100戶)和用戶MongoDB的訪問數據時,GCE CPU佔用率開始增加,並最終它關係到100%的使用率和服務器停止響應。

在那一刻我檢查了MongoDB上活動連接的數量,他們大約有100個可用的50,000個。

我運行下面的命令來檢查5流程所使用的服務器,其頂部:

watch "ps aux | sort -nrk 3,3 | head -n 5" 

它顯示了以下結果:

mongodb 392 6.7 19.6 1046868 745224 ?  Sl Nov04 43:26 /usr/bin/mongod --config /etc/mongod.conf 
www-data 18649 0.0 0.2 283300 10392 ?  S 05:16 0:00 /usr/sbin/apache2 -k start 
www-data 18648 0.0 0.2 283300 10392 ?  S 05:16 0:00 /usr/sbin/apache2 -k start 
www-data 18647 0.0 0.2 283300 10392 ?  S 05:16 0:00 /usr/sbin/apache2 -k start 
www-data 18646 0.0 0.2 283300 10392 ?  S 05:16 0:00 /usr/sbin/apache2 -k start 

我啓用的Apache服務器狀態,它是顯示CPU使用率只有0.00236%

任何人都可以幫助我在哪裏可以解決問題以及我應該監視哪些進程來解決此問題?

回答

1

您發佈的流程表顯示了apache和mongodb的正常cpu和ram用法。

您可以使用從cron作業運行並檢查cpu和內存的監視腳本。如果資源使用率高於預期,該腳本可以向您發送包含統計信息的電子郵件。請參閱:https://bash.cyberciti.biz/monitoring/get-system-information-in-html-format/https://www.cyberciti.biz/tips/processing-the-delimited-files-using-cut-and-awk.html

+0

您可以使用[stackdriver monitoring](https://cloud.google.com/monitoring/api/metrics)監視GCE實例的CPU使用情況並設置警報。另外,您可以使用[stackdriver MongoDB](https://cloud.google.com/monitoring/agent/plugins/mongodb)插件來監控羣集的狀態。 – Faizan