CentOS8 crash 之如何查詢 php-fpm 掛掉導致系統 crash 的查詢方式
首先先搜尋 /var/log/message 裏面當機的原因
grep -i 'killed process' /var/log/messages
這篇主題主要是講述因 php-fpm 當掉的情形
1. php-fpm log
2. Nginx access or error log
可以從上述查詢到的時間點左右調查
這次的情況是某支 API 短時間內被大量的呼叫
剛好這支 API 又跑得比較慢
一時處理不及就炸了
順便也檢視一下 php-fpm 的設定
分享一下 `/etc/php-fpm.d/www.conf` 的設定
pm.max_children = 60pm.start_servers = 5pm.min_spare_servers = 5pm.max_spare_servers = 35pm.process_idle_timeout = 10spm.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
Comments