在CentOS上优化PHP-FPM(FastCGI Process Manager)可以显著提高PHP应用程序的性能。以下是一些常见的优化步骤和建议:
编辑/etc/php-fpm.d/www.conf文件,调整以下参数:
pm:选择进程管理方式,常用的有dynamic、ondemand和static。
dynamic:根据负载动态调整进程数。ondemand:按需启动进程。static:固定进程数。pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
编辑/etc/php.ini文件,增加或调整以下参数:
memory_limit = 256M
OPcache可以显著提高PHP脚本的执行速度。编辑/etc/php.ini文件,启用并配置OPcache:
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
如果使用MySQL,确保连接池配置合理。编辑/etc/my.cnf或/etc/mysql/my.cnf文件,添加或调整以下参数:
[mysqld]
innodb_buffer_pool_size = 1G
max_connections = 200
启用HTTP KeepAlive可以减少TCP连接的建立和关闭次数,提高性能。编辑Nginx或Apache配置文件,启用KeepAlive:
http {
keepalive_timeout 65;
keepalive_requests 100;
server {
...
location / {
...
proxy_pass http://php-fpm;
proxy_set_header Connection "";
}
}
}
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
启用详细的日志记录和监控,以便及时发现和解决问题。编辑/etc/php-fpm.d/www.conf文件,调整日志级别:
catch_workers_output = yes
php_admin_value[error_log] = /var/log/php-fpm/error.log
php_admin_flag[log_errors] = on
定期重启PHP-FPM服务以释放内存和资源。可以使用以下命令:
sudo systemctl restart php-fpm
如果可能,将应用程序和数据库迁移到SSD上,以提高I/O性能。
在高流量环境下,考虑使用负载均衡器(如Nginx或HAProxy)来分发请求,减轻单个服务器的压力。
通过以上步骤,您可以在CentOS上有效地优化PHP-FPM,提高PHP应用程序的性能和稳定性。