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;

云野 » LAMP架构-nginx并发优化

发表回复