Nginx高并发优化配置

915 views次阅读
没有评论

系统层面

1、调整同时打开文件数量

ulimit -n 65535

2、TCP最大连接数

echo 10000 > /proc/sys/net/core/somaxconn

3、TCP连接立即回收、回用(recycle、reuse)

echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle

4、不做TCP洪水抵御

echo 0 > /proc/sys/net/ipv4/tcp_syncookies

也可以直接使用优化后的配置,在/etc/sysctl.conf中加入:

net.core.somaxconn = 65535
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 4096 16777216
net.ipv4.tcp_wmem = 4096 4096 16777216
net.ipv4.tcp_mem = 786432 2097152 3145728
net.ipv4.tcp_max_syn_backlog = 16384
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_orphans = 131072
net.ipv4.tcp_syncookies = 0

使用:sysctl -p 生效

sysctl -p

Nginx层面

1、worker_processes

nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8)。

worker_processes  1;

2、worker_rlimit_nofile

这个指令是指当一个nginx 进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx 进程数相除,但是nginx 分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致

worker_rlimit_nofile 65535;

3、use epoll

events {
    use epoll;
    worker_connections 65535;
    multi_accept on;
}

 

4、worker_connections

每个进程允许的最多连接数, 理论上每台nginx 服务器的最大连接数为worker_processes*worker_connections。

5、keepalive_timeout

keepalive 超时时间。

最终配置文件

worker_processes  8;
worker_rlimit_nofile 20000;

events {
    use epoll;
    worker_connections 65535;
    multi_accept on;
}

http {
  keepalive_timeout 60;
}

 

Honest1y
版权声明:本站原创文章,由Honest1y于2018年08月09日发表,共计2289字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)