天天看點

AMH mysql占用cpu過高_Linux寶塔面闆解決php-fpm占用CPU過高全記錄

最資源實際上是在2012年的時候就已經注冊域名并且下定決心好好做下來的,但是因為當時的生存問題一直沒有堅持下來,畢竟都快流落街頭了。

2015年之後一直用的都是amh面闆,也有感情了。但是amh4.2的免費版本支援的linux系統及mysql和php版本都太低了,一定程度上無法滿足我的一些要求。當然這些要求也都很奇葩,比如我買的wordpress不支援太低版本的php。

總是絮絮叨叨的我啊,想說明一件事情非要把各種原因都說明白。話說回來最後的結果就是使用了寶塔面闆,寶塔面闆實際上也很實用,但是随着我認真做站的程度,突然發現網站越來越卡,基本上達到無法使用的狀态,無法通路(502)的時間甚至達到了幾個小時。這種情況嚴重幹擾了我的做站熱情和我的使用者們的心情,這讓我不得不去尋找究竟是什麼原因。

開始的時候我懷疑因為我設定的弱密碼導緻被攻擊了,或者系統以及“被挖礦”了,對于我這種半吊子的個人站長來說在日志裡真的也查不到什麼有用的資訊。

于是乎祭出大殺器:重裝系統。重裝系統這個殺器我是跟我大學室友學的,反正他每次電腦遇到什麼情況都是裝系統。哈哈哈哈,繼續說回來。昨天真是裝系統、裝環境、轉移網站各種眼花缭亂的操作之後還是解決不了什麼問題。

後來又懷疑是mysql版本的問題,初始我裝的mysql版本是5.5的,top指令發現mysql占用記憶體過大,于是就換到5.1。來來回回裝了大概有6次,還是解決不了問題。簡直無奈了,一度懷疑是伺服器配置太低都準備入手高配了,但是還是不死心。今天早上突然又開始502了,top指令盯着一早上,突然發現php-fpm占用記憶體奇高無比。

有門,也許殺死這個程序就能夠解決問題了。搜尋一通發現果真是php-fpm的問題。記錄一下解決過程,希望下次遇到同類問題就不會束手無策了。

解決方案

1、通過寶塔面闆安裝的建站環境是LNMP,使用的Nginx 1.16.1、MySQL 5.5.62、PHP-7.0。

2、優化PHP7.0設定。按下圖操作先進入到PHP7.0管理頁面。

首先先安裝一個opcache緩沖器,用于加速PHP腳本,其他的就都按預設的來吧,畢竟安裝的擴充太多容易影響性能。

修改max_execution_time時間為20.

性能調整。這裡大家可以根據自己伺服器配置進行設定,寶塔面闆比較人性化,會根據你的伺服器配置設定推薦方案。其實設定并發多少,大家可以根據自己伺服器記憶體大小進行計算,一般一個php-fpm程序占用記憶體30M左右,以1024MB記憶體(1G記憶體)來計算,大概可以設定34個并發。我使用的就是1核1G記憶體配置的伺服器,安裝寶塔面闆後推薦的是40并發,但我覺得自己根本用不到那麼高的并發,是以設定了20并發的方案,并把max_spare_servers數字調整成了14.

我按照上面操作後,發現伺服器CPU不像之前一樣經常性占用100%了,雖然php-fpm有時候還會出現突發占用CPU 100%的情況,但基本很快就會恢複正常,對使用者的浏覽不會造成過多的影響。分析原因的話不知道是不是相容性問題,因為我個人對這些東西沒有過多的研究,隻是恰巧碰到運氣而已吧,說得不對的地方請大佬們指正。

-END-