TL;DR
- php-fpm.conf | php.net
cat php-fpm.conf | grep '^[^;]'
代码语言:javascript复制[www]
user = nobody
group = nobody
listen = 127.0.0.1:10071
#php-fpm进程启动模式,pm可以设置为static和dynamic和ondemand
#如果选择static,则进程数就数固定的,由pm.max_children指定固定的子进程数。
pm = dynamic
#如果选择dynamic,则进程数是动态变化的,由以下参数决定:
#子进程最大数
pm.max_children = 50
#启动时的进程数,默认值为: min_spare_servers (max_spare_servers - min_spare_servers) / 2
pm.start_servers = 2
# 保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程
pm.min_spare_servers = 1
# 保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
pm.max_spare_servers = 3
static 还是 dynamic
很多人恐惧症来袭,不知道选什么好?
一般原则是:动态适合小内存机器,灵活分配进程,省内存。静态适用于大内存机器,动态创建回收进程对服务器资源也是一种消耗。
如果你的内存很大,有 8-20G,按照一个 php-fpm 进程 20M 算,100 个就 2G 内存了,那就可以开启 static 模式。如果你的内存很小,比如才 256M,那就要小心设置了,因为你的机器里面的其他的进程也算需要占用内存的,所以设置成 dynamic 是最好的,比如:pm.max_chindren = 8, 占用内存 160M 左右,而且可以随时变化,对于一半访问量的网站足够了。
慢日志查询
代码语言:javascript复制# 慢请求的记录日志,配合request_slowlog_timeout使用,默认关闭
slowlog = log/$pool.log.slow
# 当一个请求该设置的超时时间后,就会将对应的PHP调用堆栈信息完整写入到慢日志中. 设置为 '0' 表示 'Off'
request_slowlog_timeout = 10s
# 设置单个请求的超时中止时间. 该选项可能会对php.ini设置中的'max_execution_time'因为某些特殊原因没有中止运行的脚本有用. 设置为 '0' 表示 'Off'.当经常出现502错误时可以尝试更改此选项。
request_terminate_timeout = 0
References
- 查询构建器 | yiiframework
- YII where 条件 | csdn
– EOF –
- # php