PHP服务环境并发优化

1.请求异步化 将系统的请求异步处理。 2.优化nginx-php-fpm 高并发情况下,系统会出现超时和等待处理的情况 2.1 php-fpm 参数优化request_terminate_...

1.请求异步化
将系统的请求异步处理。

2.优化nginx-php-fpm
高并发情况下,系统会出现超时和等待处理的情况

2.1 php-fpm 参数优化

request_terminate_timeout=180
//解决Nginx报502 Bad Gateway错误
pm.max_children=1000
//增加PHP进程数,增加并发处理能力;
此参数可根据服务器内存情况配置,每个进程大概占用20多M内存。
pm.max_requests=10000
//增加PHP单进程处理的请求数,防止大量进程同时重启造成的不可用风险
listen.backlog=65535
//解决高并发下TCP连接过多,Nginx报500的错误。

2.2 nginx 调优

location ~ .php$ {
      fastcgi_connect_timeout 180 ;
      fastcgi_send_timeout 180 ;
      fastcgi_read_timeout 180 ;
 }
//解决Nginx报504 Gateway Time-out错误

3. linux内核调优

//1.	修改TCP协议栈并发连接 backlog 设置
net.core.somaxconn=32768
net.core.netdev_max_backlog=32768
net.ipv4.tcp_max_syn_backlog=32768
//2.	修改TCP协议栈连接追踪设置
net.nf_conntrack_max=655360
net.netfilter.nf_conntrack_max=655360
net.netfilter.nf_conntrack_tcp_timeout_time_wait=30
//3.	设置可用端口范围
net.ipv4.ip_local_port_range='1000 65535'
//4.	放开服务器最大文件句柄65535的限制
fs.file-max=2097152
sysctl -w fs.nr_open=2097152
//修改系统全局允许分配的最大文件句柄数
ulimit -n 1048576
//设置当前会话/进程打开文件句柄数
soft    nofile      1048576
hard   nofile      1048576
//修改/etc/security/limits.conf配置中允许用户/进程打开文件句柄数

添加新评论