萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> 如何分析php-cgi進程占用cpu資源過多負載高的原因

如何分析php-cgi進程占用cpu資源過多負載高的原因

   服務器環境:redhat linux 5.5 , nginx , phpfastcgi

  在此環境下,一般php-cgi運行是非常穩定的,但也遇到過php-cgi占用太多cpu資源而導致服務器響應過慢,所遇到的php-cgi進程占用cpu資源過多的原因有:

  一些php的擴展與php版本兼容存在問題:實踐證明 eAccelerater與某些php版本兼容存在問題,具體表現是啟動php-cgi進程後,運行10多分鐘,奇慢無比,但靜態資源訪問很快,服務器負載也很正常(說明nginx沒有問題,而是php-cgi進程的問題),解決辦法就是從php.ini中禁止掉eAccelerater模塊,再重啟php-cgi進程即可。

  程序中可能存在死循環,導致服務器負載超高(使用top指令查看負載高達100+), 需要借助Linux的proc虛擬文件系統找到具體的問題程序。

  php程序不合理使用session , 這個發生在開源微博記事狗程序上,具體表現是有少量php-cgi進程(不超過10個)的cpu使用率達98%以上, 服務器負載在4-8之間,這個問題的解決,仍然需要借助Linux的proc文件系統找出原因。

  程序中存在過度耗時且不可能完成的操作(還是程序的問題)。

copyright © 萬盛學電腦網 all rights reserved