最近一用戶總發(fā)現(xiàn)他的美國服務(wù)器經(jīng)常CPU跑滿,根據(jù)用戶描述他最近打開寶塔面板總是顯示服務(wù)器CPU使用率100%,遇到這樣的問題要怎么解決。我們先看下他們他的服務(wù)器的性能截圖
從用戶的服務(wù)器截圖來看,用戶的服務(wù)器配置并不算高,單核CPU,內(nèi)存也是有2G,但是運行一般的企業(yè)網(wǎng)站是足夠的了。但是出現(xiàn)用戶這樣的寶塔服務(wù)器面板cpu、負載都是100%的問題,一般來說這種問題的可能性很多,有可能是程序性能、服務(wù)器負載能力、并發(fā)訪問、木馬病毒、被植入了挖礦程序等等,但是這四個問題可能引起寶塔面板CPU占滿100%,負載100%網(wǎng)站緩慢,下面是四個問題的解決方法。
初步來說首先考慮使用 top 查看一下當前的負載情況,使用SHELL工具連接到命令行操作界面,或通過寶塔面板->文件 點擊終端進入命令行操作。
進入終端后,輸入top查看一下負載情況,如下圖:
發(fā)現(xiàn)MYSQL 問題, 仔細看發(fā)現(xiàn)主要是mysql的占用比較嚴重,根據(jù)負載情況可知,面板的主要負載應(yīng)該發(fā)生在mysql的讀寫,用戶的訪問先不考慮,首先考慮mysql的性能問題。下面是另外一個用戶發(fā)來的性能截圖
通過上面2張性能截圖,我們會發(fā)現(xiàn)內(nèi)在的占用較少 ,看到這種情況,第一直覺可以優(yōu)化一下mysql的性能,接著找到面板的軟件管理,打開mysql的設(shè)置:
根據(jù)內(nèi)存大小調(diào)整優(yōu)化方案為2-4GB,首先將數(shù)據(jù)庫全部備份了一下,切記:數(shù)據(jù)安全最重要,不管如何操作都會存在風(fēng)險,所以一定要備份一下。。!然后,保存,再重啟數(shù)據(jù)庫。若方便的話建議重新啟動一下服務(wù)器就更直觀了。
查看了一下效果:
通過實踐負載確實降下來了,朋友們?nèi)羰怯龅酱祟悊栴},若是mysql占用的情況較為明顯,可以考慮采用此種方案嘗試 !!!!
二、PHP-FPM間歇性占用高CPU100%
昨天遇到一個問題,寶塔linux面板,服務(wù)器等幾分鐘就CPU100%,倒騰了幾個小時都沒解決,調(diào)整了運行模式、子進程數(shù)量、起始進程數(shù)、空閑進程數(shù)等等。都沒任何效果。
最后發(fā)現(xiàn)是日志太大了。導(dǎo)致了CPU100%。。
日志太大PHP寫入時候需要占用大量的處理器來打開日志文件寫入,日志整整198G!
清除日志完美解決。
2.2 出現(xiàn)了php-fpm突發(fā)過高解決方法二
寶塔面板安裝的建站環(huán)境是LNMP,使用的Nginx 1.12、MySQL 5.5、PHP-5.4,解決過程當中,先把MySQL 5.5升級到了5.5的最新版本,緊接著新安裝了PHP7.0版本,并升級到最新版本。
2、通過網(wǎng)站管理,更換PHP5.4版本為PHP7.0
3、優(yōu)化PHP7.0設(shè)置。按下圖操作先進入到PHP7.0管理頁面
首先先安裝一個opcache緩沖器,用于加速PHP腳本,其他的就都按默認的來吧,往往安裝這個那個影響性能。
修改max_execution_time時間為60或者更大.
性能調(diào)整。這里大家可以根據(jù)自己服務(wù)器配置進行設(shè)置,寶塔面板比較人性化,會根據(jù)你的服務(wù)器配置設(shè)置推薦方案。其實設(shè)置并發(fā)多少,大家可以根據(jù)自己服務(wù)器內(nèi)存大小進行計算,一般一個php-fpm進程占用內(nèi)存30M左右,以2048MB內(nèi)存(2G內(nèi)存)來計算,大概可以設(shè)置68個并發(fā)。我們使用的就是4核2G內(nèi)存配置的服務(wù)器,安裝寶塔面板后推薦的事50并發(fā),但我覺得自己更笨用不到那么高的并發(fā),所以設(shè)置了30并發(fā)的方案,并把max_spare_servers數(shù)字調(diào)整成了15.
4.寶塔的監(jiān)控,寶塔面板系統(tǒng)監(jiān)控不要開,會迅速消耗cpu。
前天小編就是因為開了這個功能就迅速消耗掉服務(wù)器cpu積分,最終落得cpu100%,運行堵塞的下場
所有綜上所述:
服務(wù)器就好比電腦一樣,開的程序越多,程序越復(fù)雜消耗的cpu定然會越高,像系統(tǒng)監(jiān)控這種功能無疑是最吃cpu的,所以千萬別開!