unbantu24.04, php7.4
# 方法1:查看所有PHP-FPM相关进程(不筛选版本
ps aux | grep -E 'php-fpm' | grep -v grep
# 方法2:只统计进程数(推荐
ps aux | grep -E 'php-fpm' | grep -v grep | wc -l
查看每个php-fpm所占进程数
ps aux | grep php-fpm | grep -v grep | awk '{sum+=$6; count++} END {print "PHP-FPM总物理内存占用(KB): " sum; print "PHP-FPM进程数: " count; print "单个进程平均内存占用(KB): " sum/count; print "单个进程平均内存占用(MB): " sum/count/1024}'
这里要关注下 php-fpm是否加版本号 php-fpm7.4
====================================
/etc/php/7.4/fpm/pool.d/www.conf
4C8G的一个配置
pm = dynamic
pm.max_children = 400
pm.start_servers = 200
pm.min_spare_servers = 50
pm.max_spare_servers = 220
;pm.process_idle_timeout = 10s;
pm.max_requests = 600
pm.max_requests = 600的配置非常重要,如果没有这个配置pm.max_requests的默认值可能会是0,每个 PHP-FPM 子进程永不主动重启,
而 PHP 脚本 / 扩展(比如 MySQL 扩展、第三方库)几乎都存在轻微内存泄漏,进程运行越久、处理请求越多,内存占用就越高(比如从 30M 涨到 100M+)。