雲計算之路-阿里雲上:服務器CPU 100%問題是memcached連接數限制引起的


非常抱歉,昨天的服務器CPU 100%問題是達到 memcached 的連接數限制引起的,不是阿里雲服務器的問題。

之前我們用的是阿里雲“雲數據庫 memcached 版”,上個周末我們換成了自己搭建——基於阿里雲“內存網絡增強型”服務器用 docker 跑 memcached 。

docker run -d --net=host --restart unless-stopped memcached -m 15360

但我們在部署 memcached 時沒有設置 conn-limit 參數(默認值是 1024) 。

由於周一周二兩天服務器沒出現問題,而且周二的訪問量超過了上周的最高,我們誤以為這次 memcached 的部署調整沒問題。而沒問題的背后是因為周一周二的web服務器數量比昨天少,剛好沒達到 memcached 的連接數限制。

昨天(周三)我們收到 1 台服務器的 CPU 報警后,多加了 1 台服務器,剛好讓 memcached 的連接數達到了臨界值,在下午並發連接數上去后,很容易觸發 memcached 的連接限制,web 服務器因無法使用緩存而讓 CPU 不堪重負。在這樣的情況下,減服務器反而是有利的,而我們慌亂之下依照 CPU 負載高就加服務器的錯誤直覺操作則是雪上加霜。。。

當今天上午再次有服務器出現 CPU 100% 問題時,我們才想到 memcached 的連接數限制

STAT max_connections 1024
STAT curr_connections 960

趕緊將 max_connections 由默認的 1024 修改為 2048

docker run -d --net=host --restart unless-stopped memcached -m 15360 -c 2048 && docker stop 51bd3b240ede

之后 CPU 100% 的問題就解決了

STAT max_connections 2048
STAT curr_connections 1232

非常抱歉,由於我們在處理故障時不夠冷靜、考慮不周,給您帶來了麻煩,請您諒解。

我們會吸取教訓,提高我們在處理故障時的判斷與定位能力。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM