要利用Linux提升php-fpm的稳定性,可以采取以下几种方法:
使用systemd:
sudo vi /etc/systemd/system/php-fpm.service
[Unit]
Description=PHP FastCGI Process Manager
After=network.target
[Service]
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
[Install]
WantedBy=multi-user.target
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
通过上述配置,PHP-FPM进程将systemd服务在后台运行,即使进程意外退出,systemd也会自动重启进程,保证进程的稳定性。
使用Supervisor:
sudo apt-get install supervisor
sudo vi /etc/supervisor/conf.d/php-fpm.conf
[program:php-fpm]
command=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
autostart=true
autorestart=true
startretries=3
user=nobody
redirect_stderr=true
sudo systemctl start supervisor
sudo supervisorctl start php-fpm
通过以上配置,Supervisor会监控PHP-FPM进程,如果进程意外退出,Supervisor会自动重启进程,以保证进程的稳定性。
/etc/php-fpm.d/www.conf
或/etc/php/版本号/fpm/pool.d/www.conf
),根据服务器的硬件资源和应用需求调整以下参数:
pm.max_children
:设置最大的子进程数量。pm.start_servers
:设置启动时的进程数量。建议设置为可用CPU核心数的4倍。pm.min_spare_servers
:设置最小空闲进程数量。可以设置为可用CPU核心数的2倍。pm.max_spare_servers
:设置最大空闲进程数量。可以设置为可用CPU核心数的4倍。pm.max_requests
:设置每个子进程在被重新生成之前可以处理的请求数。可以设置为500或1000。request_terminate_timeout
:设置PHP脚本执行的最长时间。防止脚本运行时间过长,导致占用资源。ulimit
命令限制PHP-FPM进程的资源使用,例如:ulimit -n 65536 # 增加打开文件描述符的限制
/etc/security/limits.conf
文件中设置:* soft nofile 65536
* hard nofile 65536
htop
、vmstat
、iostat
等定期监控服务器的性能指标,并根据实际情况进行调整。通过以上方法,可以显著提升Linux系统中php-fpm的稳定性。根据实际需求和环境,选择适合的进程守护方法和配置优化策略,可以有效提高php-fpm的可靠性和稳定性。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:如何利用Linux提升K8S的稳定性