php cgi行程佔用太多的解決方法:1、從「php.ini」禁止掉eAccelerater模組;2、借助Linux的proc虛擬檔案系統找到具體的問題程式;3、借助Linux的proc檔案系統找出原因。
推薦:《PHP影片教學》
一般情況下,PHP-CGI只在使用者造訪的時候會佔用CPU資源,但是最近有同事反映,伺服器上的PHP-CGI進程佔用了非常多的CPU,但是存取流量卻非常少。這顯然是一個不正常的現象,說有些地方有故障。以下導致此問題可能存在的原因,在此與大家分享。
1. 相容性問題
如果php的擴充與php版本相容有問題,已經有反映過類似的案例, eAccelerater與某些php版本相容存在問題,具體表現時啟動php-cgi進程後,
運行10多分鐘,奇慢無比,但靜態資源存取很快,伺服器負載也很正常(這表示伺服器解析功能的nginx是沒有問題,而是php-cgi進程的問題)。
解決方法
從php.ini禁止掉eAccelerater模組,再重啟php-cgi進程即可。
2. 程式中可能存在死循環
如果程式中存在死循環,一定會導致伺服器負載超高(使用top指令查看負載高達100 )。
解決方法
借助Linux的proc虛擬檔案系統找到特定的問題程式。
3. php程式不合理使用session
在查閱的資料中有看到,這個發生在開源微博記事狗程式上,具體表現是有少量php- cgi進程(不超過10個)的cpu使用率達98%以上,
伺服器負載在4-8之間,
解決方法
需要藉助Linux的proc檔案系統找出原因。
4. 程式中存在過度耗時且不可能完成的操作
如果是這樣的話,是因為程式本身在寫的時候,就寫的不夠規範。需要與軟體的設計者以及程式設計工程師共同解決。
以上是php cgi 行程佔用太多怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!