Linux优化:php-fpm优化 参数详解

php-fpm

为啥要优化php-fpm?因为一般“504 Gateway Time-out”错误是与该项有关,本篇文章微饭就来详解下php-fpm各项参数的作用以及怎么设置才合理。

一般现在的一键环境安装包(如lnmp)都会自动根据你的配置进行优化配置,现在的云服务器都支持无缝升级,以前的优化对升级后的配置又不怎么适用了,那么本文的用处就来啦~

[global]
pid = /usr/local/php/var/run/php-fpm.pid
#pid设置,默认在安装目录中的var/run/php-fpm.pid,建议开启
error_log = /usr/local/php/var/log/php-fpm.log
#错误日志,默认在安装目录中的var/log/php-fpm.log
log_level = notice
#错误级别. 可用级别为: alert(必须立即处理), error(错误情况), warning(警告情况), notice(一般重要信息), debug(调试信息). 默认: notice.
[www]
listen = /tmp/php-cgi.sock
#fpm监听端口,即nginx中php处理的地址,一般默认值即可。
listen.backlog = -1
#backlog数,-1表示无限制,由操作系统决定。
listen.allowed_clients = 127.0.0.1
#允许访问FastCGI进程的IP,设置any为不限制IP,如果要设置其他主机的nginx也能访问这台FPM进程,listen处要设置成本地可被访问的IP。默认值是127.0.0.1。每个地址是用逗号分隔. 如果没有设置或者为空,则允许任何服务器请求连接
listen.owner = www
listen.group = www
listen.mode = 0666
#unix socket设置选项,如果使用tcp方式访问,这里注释即可。
user = www
group = www
#启动进程的帐户和组
pm = dynamic
#如何控制子进程,选项有static和dynamic。如果选择static,则由pm.max_children指定固定的子进程数。如果选择dynamic,则由以下三个参数决定:
#动态适合小内存机器,灵活分配进程,省内存。静态适用于大内存机器,动态创建回收进程对服务器资源也是一种消耗
pm.max_children = 40
#适用于static模式下创建的子进程数或dynamic模式下同一时刻允许最大的php-fpm子进程数量
pm.start_servers = 15
#动态方式下的起始php-fpm进程数量
pm.min_spare_servers = 15
#动态方式下服务器空闲时最小php-fpm进程数量
pm.max_spare_servers = 40
#动态方式下服务器空闲时最大php-fpm进程数量
#注释:一般php-fpm进程占用20~30m左右的内存就按30m算。如果单独跑php-fpm,动态方式起始值可设置物理内存Mem/30M,由于大家一般Nginx、MySQL都在一台机器上,于是预留一半给它们,即php-fpm进程数为$Mem/2/30。
request_terminate_timeout = 100
#设置单个请求的超时中止时间. 该选项可能会对php.ini设置中的'max_execution_time'因为某些特殊原因没有中止运行的脚本有用. 设置为 '0' 表示 'Off'.当经常出现502错误时可以尝试更改此选项。
request_slowlog_timeout = 60
#当一个请求该设置的超时时间后,就会将对应的PHP调用堆栈信息完整写入到慢日志中. 设置为 '0' 表示 'Off'
slowlog = var/log/slow.log
#慢请求的记录日志,配合request_slowlog_timeout使用

处理完后 LNMP记得 lnmp php-fpm restart 或者其他环境的重启命令。

微饭网官方微信
发表评论

相关文章