不知道大家有沒有遇到一個問題,就是服務器CPU經常會跳100%,但是網站卻其實卻沒什么訪問量,查看服務器帶寬也是正常的,那為何CPU卻偶爾跳100%呢?
對于這個問題主機吧上周也遇到過類似的問題,查了挺久,一開始以為是CC攻擊,還把網站設置全部緩存,結果查看了下CDN,消耗流量與請求量并沒有異常,說明并不是攻擊問題。
最后我們從服務器下手,以為是服務器中毒了,然后我們發(fā)現來自網站的數據庫請求并發(fā)非常高,連接中的經常達200+,也就是這導致了服務器一但有了稍微高一點的訪問量,就會出現CPU100%的情況。
找到原因后我們要怎么解決呢? 當然是合理分配資源,以主機吧用的寶塔面板為例,進入軟件商店,找到mysql數據庫,進入設置
找到性能調整,根據自己的服務器配置選擇相應的優(yōu)化方案,比如我的是4G內存的,那么就選2-4G,可以選小的方案,但不要選大的,因為這樣只會讓數據庫保持連接超過你服務器的承受范圍,影響服務器性能。
選擇完保存后,我們再進入PHP設置,性能調整,網站如果每天只有2000+IP訪問量的,建議選50或者100并發(fā),這里寫的并發(fā)是讓你的服務器一但達到這么多并發(fā)了,系統(tǒng)會自動清除掉進程,達到服務器優(yōu)化目的,所以不是設置越大越好,因為一但你并發(fā)達56百的時候,系統(tǒng)卻沒有清除進程,一般服務器是受不住的,會出現卡慢設置打不開的狀態(tài),所以選擇合適自己服務器配置的優(yōu)化狀態(tài)很重要,主機吧就是選100并發(fā)的。
主機吧設置完后,通過一周的觀察沒有再出現卡慢的情況了,CPU也不會跳100%了。
以上都是在非被攻擊的情況下設置有效,如果你是被人CC攻擊的,那么還是給自己弄個高防CDN吧,這里主機吧推薦百度云加速,攔截CC攻擊效果棒棒噠!