LAMP架构-nginx并发优化
7c1a9397-ea0f-417a-9957-ecec5b9cfb97
1. Linux 下高并发 socket 最大连接数所受的各种限制
1.1 修改用户进程可打开文件数限制
/etc/security/limits.conf
nginx - nofile 65535
1.2 Linux 系统级的最大打开文件数限制
fs.file-max = 188414 // 和内存容量相关
1.3 修改网络内核对 TCP 连接的有关限制
net.ipv4.ip_local_port_range = 1024 65535
1.4 限制接收新 TCP 连接侦听队列的大小
net.core.somaxconn = 2048
1.5 启用 tcp 连接 timewait 快速回收和重用
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
worker_processes //工作进程数
worker_connections //单个工作进程并发连接数
1.6 nginx作为http服务器时
max_clients = worker_processes * worker_connections
1.7 nginx作为反向代理服务器时
max_clients = worker_processes * worker_connections / 2
1.8 worker_processes //将其设置为可用的CPU内核数将是一个好的开始
worker_rlimit_nofile //worker进程的最大打开文件数限制。如果没设置的话,这个值为操作系统的限制。
1.9. worker_processes 2; //最多开启8个worker_cpu_affinity
01 10; //cpu有多少个核,就有几位数,1代表内核开启,0代表内核关闭。
1.10 multi_accept on; //告诉nginx收到一个新连接通知后接受尽可能多的连接。
1.11. use epoll; //使用epoll模型
1.12. 开启文件高效传输模式,同时设置tcp_nopush 和tcp_nodelay 为on,可以防止网路和磁盘IO阻塞。
sendfile on;
tcp_nopush on;
tcp_nodelay on;