php-fpm优化
1、查找问题的相关配置
可以设置日志级别为DEBUG
log_level = debug
pm.status_path=/test
可以设置一个路径为观察状态的
rlimit_files可以设大一点
还有就是access_log的格式,这个是在某一个池中的格式
access.log
access.format = %R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
其中相关参数参考函数fpm_log_write,说明如下:
C:cpu时间
d:表示持续时间
e:factcig环境变量
f:脚本名
l:content-length
m: method
M:内存
n: pool name
o: headers output
p: pid
P:父进程id
q: query string
Q:?
r: request URI
R:远程IP
s:状态码
T(t):当前时间
u: remote user
{:复杂变量
2、upstream如果是同一台机,使用unix的方式
upstream backend {
server unix:/dev/shm/backend.sock;
keepalive 128;
}
location ~ \.php$ {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;user = nginx
fastcgi_pass backend;
}
然后在php-fpm中设置
listen = /dev/shm/backend.sock
pm = static
pm.max_children = 1000
pm.max_children中设置为多少,可以自己实际压测;
这里要注意/dev/shm/backend.sock的权限为775;
php-fpm.conf中还有以下配置要注意:
listen.backlog = -1
rlimit_files
rlimit_core

浙公网安备 33010602011771号