取得 502 Bad Gateway,php-fpm 佔用 100% cpu

取得 502 Bad Gateway,php-fpm 佔用 100% cpu

好吧,昨晚,凌晨 2 點左右,我的一台伺服器的 CPU 使用率達到了 100%。今天早上檢查時,我看到 5 個 php-fpm 進程一起佔用了大約 100% 的 cpu。我已經重新啟動了伺服器,但是每次伺服器回來時,php-fpm 進程都會重新啟動並佔用 100% 的 cpu。

它是 Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-32-generic x86_64) 伺服器,我已經更新了所有軟體,但我無法獲得任何導致此問題的資訊。

顯然,該問題會導致伺服器上託管的網站離線,並且始終顯示 502 Bad Gateway 或 504 Gateway Time-out 錯誤...

我希望有人可以提供一些幫助來解決這個問題。

我還有另外 3 台伺服器,它們的設定完全相同,但沒有任何這些問題。

編輯1: 當我查看 NewRelic 時,它向我顯示,大約在問題開始的同時,網路選項卡中的「每秒資料包數」大幅增加,這一定與問題有關...

答案1

我在使用 PHP-FPM 時遇到了類似的問題,即使在流量較少的夜間,它也佔用 100% CPU。

您必須對 PHP-FPM 設定檔進行一些最佳化。確保您有此條目:-

pm = 按需 pm.max_children = 2 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3

如果不是 ondemand,則變更為 ondemand,否則 PHP-FPM 將嘗試佔用大量 CPU 資源。使用 ondemand ,它將在需要時啟動更多進程。

PHP-FPM 的設定檔位於:-

/etc/php5/fpm/php-fpm.conf

在 pool.d/www.conf 中也配置了一個池。

檢查這兩個文件中的條目並相應地優化上述設置,然後重新啟動 PHP-FPM。

相關內容