温馨提示×

LNMP环境中PHP-FPM如何优化

小樊
61
2025-06-04 16:43:38
栏目: 编程语言

在LNMP(Linux, Nginx, MySQL, PHP-FPM)环境中优化PHP-FPM可以显著提高应用程序的性能和响应速度。以下是一些常见的优化策略:

1. 调整PHP-FPM进程管理

  • pm.max_children: 设置最大子进程数,通常设置为CPU核心数的2倍。
    pm.max_children = 50
    
  • pm.start_servers: 设置启动时的服务器进程数。
    pm.start_servers = 5
    
  • pm.min_spare_servers: 设置最小空闲服务器进程数。
    pm.min_spare_servers = 5
    
  • pm.max_spare_servers: 设置最大空闲服务器进程数。
    pm.max_spare_servers = 35
    
  • pm.max_requests_per_child: 设置每个子进程处理的最大请求数,防止内存泄漏。
    pm.max_requests_per_child = 500
    

2. 调整PHP配置

  • memory_limit: 根据应用程序的需求调整内存限制。
    memory_limit = 128M
    
  • opcache.enable: 启用OPcache以提高脚本执行速度。
    opcache.enable=1
    opcache.memory_consumption=128
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=4000
    opcache.revalidate_freq=60
    
  • max_execution_time: 设置脚本的最大执行时间。
    max_execution_time = 30
    

3. 调整Nginx配置

  • fastcgi_pass: 确保Nginx正确地将请求传递给PHP-FPM。
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    
  • fastcgi_buffer_sizefastcgi_buffers: 调整缓冲区大小以提高性能。
    fastcgi_buffer_size = 128k;
    fastcgi_buffers = 4 256k;
    fastcgi_busy_buffers_size = 256k;
    

4. 监控和日志

  • slowlog: 启用慢查询日志以识别性能瓶颈。
    slowlog = /var/log/php-fpm/www-slow.log
    request_slowlog_timeout = 10s
    
  • log_level: 设置日志级别以减少不必要的日志记录。
    log_level = notice
    

5. 其他优化

  • 使用PHP 7.x或更高版本: 新版本的PHP通常有更好的性能和更少的bug。
  • 使用持久连接: 在Nginx中启用HTTP/2和持久连接以提高性能。
  • 使用OPcache: 如前所述,OPcache可以显著提高PHP脚本的执行速度。

6. 定期重启PHP-FPM

定期重启PHP-FPM可以释放内存并解决一些潜在的问题。

sudo systemctl restart php7.4-fpm

通过这些优化策略,你可以显著提高LNMP环境中PHP-FPM的性能。根据具体的应用程序和环境,可能需要进一步调整这些设置。

0