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