在 Ubuntu 上优化 PHP-FPM 性能,通常从 PHP-FPM 配置、系统资源、OPcache、慢日志、连接方式 等方面入手。下面按「实用优先级」给你一份可落地的优化清单。
PHP-FPM 的 pm 模式直接决定性能与稳定性。
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
适合:
pm = static
pm.max_children = 100
适合:
✅ 经验值:
pm.max_children ≈ 可用内存 / 单个 PHP 进程内存
查看单个 PHP 进程内存:
ps -ylC php-fpm --sort:rss
sudo apt install php-opcache
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=0 ; 生产环境建议关闭
重启:
sudo systemctl restart php-fpm
✅ 效果:通常提升 2–5 倍性能
TCP 方式:
listen = 127.0.0.1:9000
✅ 推荐 Socket:
listen = /run/php/php-fpm.sock
Nginx 对应:
fastcgi_pass unix:/run/php/php-fpm.sock;
减少网络开销,延迟更低。
request_terminate_timeout = 30s
request_slowlog_timeout = 5s
slowlog = /var/log/php-fpm/slow.log
防止:
例如:
/etc/php/8.2/fpm/pool.d/
├── www.conf
├── api.conf
└── admin.conf
好处:
ulimit -n 65535
/etc/security/limits.conf:
* soft nofile 65535
* hard nofile 65535
php -m
卸载不需要的扩展,减少内存占用。
pm.status_path = /status
Nginx:
location /status {
fastcgi_pass unix:/run/php/php-fpm.sock;
include fastcgi_params;
}
ab -n 1000 -c 100 http://site.com/
pm = static
pm.max_children = 120
opcache.enable=1
opcache.memory_consumption=256
listen = /run/php/php-fpm.sock
request_terminate_timeout = 30s
如果你愿意,可以告诉我:
我可以直接给你一套 可复制的配置文件。