PHP-FPM在Linux中的内存管理策略
一 核心机制
二 关键配置与含义
三 容量估算与配置步骤
ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf "%.1fM\n", sum/NR/1024 }'。(min_spare + max_spare)/2;确保 max_spare ≤ max_children。四 监控与故障应对
五 配置示例
[www]
pm = dynamic
pm.max_children = 15
pm.start_servers = 8
pm.min_spare_servers = 6
pm.max_spare_servers = 15
pm.max_requests = 500
request_terminate_timeout = 30s
php_admin_value[memory_limit] = 128M
[www]
pm = dynamic
pm.max_children = 100 ; 约 8GB / 50MB
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30
pm.max_requests = 1000
request_terminate_timeout = 30s
php_admin_value[memory_limit] = 128M
pm.status_path = /status
slowlog = /var/log/php-fpm/slow.log
request_slowlog_timeout = 5s
[www]
pm = static
pm.max_children = 50 ; 约 2GB / 30–40MB
request_terminate_timeout = 30s
php_admin_value[memory_limit] = 128M