温馨提示×

Linux下php-fpm如何优化配置

小樊
43
2025-10-11 21:14:16
栏目: 编程语言

在Linux下优化PHP-FPM配置可以显著提高PHP应用程序的性能。以下是一些常见的优化建议:

1. 调整进程管理

PHP-FPM使用两种进程管理方式:dynamicstatic

  • Dynamic:

    pm = dynamic
    pm.max_children = 50
    pm.start_servers = 5
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35
    
  • Static:

    pm = static
    pm.max_children = 50
    pm.start_servers = 5
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35
    

dynamic模式会根据负载自动调整进程数,而static模式则是固定的进程数。通常情况下,dynamic模式更适合大多数场景。

2. 调整请求处理队列

request_terminate_timeout = 0

设置为0表示不限制请求处理时间,可以根据需要调整。

3. 启用慢日志

slowlog = /var/log/php-fpm/slow.log
request_slowlog_timeout = 10s

记录处理时间超过10秒的请求,有助于找出性能瓶颈。

4. 调整内存限制

php_admin_value[memory_limit] = 128M

根据应用程序的需求调整内存限制。

5. 启用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

OPcache可以显著提高PHP脚本的执行速度。

6. 调整文件描述符限制

确保PHP-FPM进程有足够的文件描述符可用。

ulimit -n 65535

并在/etc/security/limits.conf中添加:

* soft nofile 65535
* hard nofile 65535

7. 调整TCP缓冲区大小

net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

这些设置可以优化网络性能。

8. 启用TCP Fast Open

net.ipv4.tcp_fastopen = 3

这可以提高TCP连接的建立速度。

9. 调整系统参数

编辑/etc/sysctl.conf文件,添加或修改以下参数:

vm.swappiness = 10
vm.vfs_cache_pressure = 50
net.core.somaxconn = 65535
net.ipv4.ip_local_port_range = 1024 65535

然后运行sysctl -p使更改生效。

10. 监控和日志

确保启用了适当的监控和日志记录,以便及时发现和解决问题。

通过以上这些配置调整,可以显著提高PHP-FPM在Linux环境下的性能。不过,具体的配置值需要根据实际的应用场景和硬件资源进行调整。

0