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