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配置中允许用户/进程打开文件句柄数