linux 服務器負載很高,緣由貌似是 php進程過多,而且一直保持 400多 ,如圖所示,php-cgi 進程數一直是不降的,沒有用戶訪問網站也是這么多,每個進程大概占用內存150-200M左右,16G內存有時候會阻塞。求大牛幫忙。
2 回答

湖上湖
TA貢獻2003條經驗 獲得超2個贊
mod_php是和apache同步執行的, 如果fastcgi的話, 服務器(一般nginx)和php之間是異步關系, 在某些情況下可以無需那么多php進程
打個比方, 如果一個用戶用龜速上傳一個文件, 那么apache和apache里面的那個php就在等待這個用戶上傳完成, 所以系統里面就需要更多的apache進程來應對并發
如果異步執行, 那么nginx在處理用戶的上傳, 一旦用戶上傳文件完成, 傳給php處理只是一瞬間的事情.
當然有時候fastcgi也不一定能解決問題, 比如php在等待一個sql查詢, 這個查詢花了5秒, 那么5秒之內有新用戶來訪, 這個php就不能出門歡迎, 所以必須新開一個php進程
所以查一查你的php執行要花多久, 再看一看自己的訪問量, 綜合的去找原因并想辦法解決吧

人到中年有點甜
TA貢獻1895條經驗 獲得超7個贊
每個php進程都是很費內存的,建議根據服務器配置做適當調整,修改fastcgi配置文件或php-fpm配置文件,一般100個內對于大部分場景就夠用了,再多就要考慮做任務調度或者消息隊列處理了
- 2 回答
- 0 關注
- 225 瀏覽
添加回答
舉報
0/150
提交
取消