CentOS8 crash 之如何查詢 php-fpm 掛掉導致系統 crash 的查詢方式
首先先搜尋 /var/log/message 裏面當機的原因 grep -i 'killed process' /var/log/messages 這篇主題主要是講述因 php-fpm 當掉的情形 php 當掉可以查詢的方向有: 1. php-fpm log 2. Nginx access or error log 可以從上述查詢到的時間點左右調查 這次的情況是某支 API 短時間內被大量的呼叫 剛好這支 API 又跑得比較慢 一時處理不及就炸了 順便也檢視一下 php-fpm 的設定 分享一下 `/etc/php-fpm.d/www.conf` 的設定 pm.max_children = 60 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.process_idle_timeout = 10s pm.max_requests = 500 其中參數該怎麼設定可以參考一下底下的 Reference 每個人講的似乎都不太一樣 可能要自己觀察看看怎樣比較適合自己 查詢 php 記憶體的平均使用量 ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }' 檢查共有開啟多少個 php-fpm process ps -ylC php-fpm --sort:rss 另外建議也可以查看 `systemctl status php-fpm` 剛好有些 process 不應該卡很久的剛好看到 主機規格 Google Compute Engine 1 vCPU 5G RAM Nginx 1. php-fpm 7.4.23 Reference Finding which process was killed by Linux OOM killer Nginx 與 PHP-FPM 最佳化效能設定教學與技巧 php-fpm 效能優化 PHP-FPM 效能調校 on CentOS 7 Nginx 啟用 PHP-FPM 服務狀態監控網頁教學 Linux 用 ps