Linux PHP-FPM与MySQL连接优化
小樊
53
2025-08-11 09:57:21
一、PHP-FPM配置优化
- 调整进程管理参数:修改
/etc/php-fpm.d/www.conf,设置pm.max_children(建议为服务器内存的50%-70%除以单个进程内存占用)、pm.start_servers、pm.min_spare_servers和pm.max_spare_servers,平衡进程创建和销毁开销。
- 启用持久连接:在PHP代码中使用
mysqli或PDO的持久连接功能(如mysqli_connect('p:localhost',...)或PDO的ATTR_PERSISTENT参数),减少连接建立/关闭的开销。
二、MySQL配置优化
- 优化内存与连接数:设置
innodb_buffer_pool_size为服务器总内存的50%-70%,max_connections根据并发需求调整(需大于PHP-FPM子进程数),避免连接耗尽。
- 控制连接超时:设置
wait_timeout和interactive_timeout(如60秒),清理空闲连接,防止长时间占用资源。
三、其他优化措施
- 使用连接池:通过
php-mysqlnd-ms扩展或应用层实现连接池,复用数据库连接,降低频繁创建连接的开销。
- 优化查询:使用预处理语句、索引和事务,减少全表扫描和不必要的查询。
- 监控与调优:通过
top、htop、mysqladmin等工具监控资源使用情况,根据负载动态调整参数。