在 Ubuntu 上提升 php-fpm 性能,通常从 配置优化、系统资源、PHP 代码、服务器架构 四个层面入手。下面给你一套实用且可落地的优化清单,从最常见、收益最大的开始。
新版本本身就有明显性能提升:
php -v
✅ 建议:
升级示例:
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2-fpm
编辑:
sudo nano /etc/php/8.2/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500
✅ 计算 pm.max_children 经验公式:
max_children ≈ 可用内存 / 单个 php-fpm 进程内存
查看单个进程内存:
ps aux | grep php-fpm
listen = /run/php/php8.2-fpm.sock
listen.owner = www-data
listen.group = www-data
Nginx 对应:
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
减少内存和启动开销:
php -m
禁用不用的扩展(如 xdebug、json 已内置):
sudo phpdismod xdebug
sudo apt install php8.2-opcache
编辑:
sudo nano /etc/php/8.2/fpm/conf.d/10-opcache.ini
推荐配置:
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0 # 生产环境
opcache.revalidate_freq=0
✅ 可提升 30%~100% 性能
max_execution_time = 30
memory_limit = 256M
ulimit -n
提高:
sudo nano /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
sudo nano /etc/sysctl.conf
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
生效:
sudo sysctl -p
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 60;
fastcgi_read_timeout 60;
opcache.jit=1255
opcache.jit_buffer_size=128M
location ~* \.(js|css|png|jpg|gif|ico|svg|woff2)$ {
expires 30d;
access_log off;
}
sudo nano /etc/php/8.2/fpm/pool.d/www.conf
pm.status_path = /status
Nginx:
location /status {
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
include fastcgi_params;
}
ab -n 1000 -c 50 http://your-site.com/
✅ Ubuntu 22.04 / 24.04
✅ PHP 8.2-fpm + OPcache
✅ Nginx
✅ Unix Socket
✅ pm = dynamic
✅ 关闭 xdebug
如果你愿意,可以告诉我:
我可以 直接给你一套定制化的 php-fpm 配置。