Linux下 PHP-FPM 性能优化实战指南
一 进程管理与并发
二 通信、文件描述符与系统资源
三 PHP 运行时与缓存
四 监控、日志与持续优化
ps -fe | grep "php-fpm" | grep "pool" | wc -lps --no-headers -o "rss,cmd" -C php-fpm | awk '{sum+=$1} END {printf("%.1fM\n", sum/NR/1024)}'五 示例配置与容量估算
[www]
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
user = www-data
group = www-data
pm = dynamic
pm.max_children = 15
pm.start_servers = 4
pm.min_spare_servers = 3
pm.max_spare_servers = 10
pm.max_requests = 1000
request_terminate_timeout = 60
request_slowlog_timeout = 5
slowlog = /var/log/php-fpm/www-slow.log
php_admin_value[memory_limit] = 64M
php_admin_value[max_execution_time] = 120
php_admin_flag[log_errors] = on
php_value[display_errors] = Off
; 可选:提升文件描述符
rlimit_files = 65536
[www]
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
user = www-data
group = www-data
pm = static
pm.max_children = 150
request_terminate_timeout = 30
request_slowlog_timeout = 3
slowlog = /var/log/php-fpm/www-slow.log
php_admin_value[memory_limit] = 128M
php_admin_value[max_execution_time] = 60
php_admin_flag[log_errors] = on
php_value[display_errors] = Off
rlimit_files = 65536