php-cgi進(jìn)程cpu占用資源過高的原因及解決方法
服務(wù)器環(huán)境:redhat linux 5.5 , nginx , phpfastcgi
在此環(huán)境下,一般php-cgi運(yùn)行是非常穩(wěn)定的,但也遇到過php-cgi占用太多cpu資源而導(dǎo)致服務(wù)器響應(yīng)過慢,所遇到的php-cgi進(jìn)程占用cpu資源過多的原因有:
一些php的擴(kuò)展與php版本兼容存在問題:實(shí)踐證明 eAccelerater與某些php版本兼容存在問題,具體表現(xiàn)是啟動php-cgi進(jìn)程后,運(yùn)行10多分鐘,奇慢無比,但靜態(tài)資源訪問很快,服務(wù)器負(fù)載也很正常(說明nginx沒有問題,而是php-cgi進(jìn)程的問題),解決辦法就是從php.ini中禁止掉eAccelerater模塊,再重啟php-cgi進(jìn)程即可。
程序中可能存在死循環(huán),導(dǎo)致服務(wù)器負(fù)載超高(使用top指令查看負(fù)載高達(dá)100+), 需要借助Linux的proc虛擬文件系統(tǒng)找到具體的問題程序。
php程序不合理使用session , 這個發(fā)生在開源微博記事狗程序上,具體表現(xiàn)是有少量php-cgi進(jìn)程(不超過10個)的cpu使用率達(dá)98%以上, 服務(wù)器負(fù)載在4-8之間,這個問題的解決,仍然需要借助Linux的proc文件系統(tǒng)找出原因。
程序中存在過度耗時且不可能完成的操作(還是程序的問題)。
關(guān)鍵詞:php-cgi
閱讀本文后您有什么感想? 已有 人給出評價!
- 1
- 2
- 1
- 1
- 1
- 1