文档章节

Nginx 高并发TCP请求Linux系统参数配置

满小茂
 满小茂
发布于 2015/12/28 22:53
字数 939
阅读 2.8K
收藏 91

精选30+云产品,助力企业轻松上云!>>>

需要修改/etc/sysctl.conf来更改内核参数

#原有字段  
net.ipv4.tcp_syncookies = 1  
#新增字段  
fs.file-max = 999999  
net.ipv4.tcp_tw_reuse = 1  
net.ipv4.tcp_keepalive_time = 600  
net.ipv4.tcp_fin_timeout = 30  
net.ipv4.tcp_max_tw_buckets = 5000  
net.ipv4.ip_local_port_range = 1024 61000  
net.ipv4.tcp_rmem = 10240 87380 12582912  
net.ipv4.tcp_wmem = 10240 87380 12582912  
net.core.netdev_max_backlog = 8096  
net.core.rmem_default = 6291456  
net.core.wmem_default = 6291456  
net.core.rmem_max = 12582912  
net.core.wmem_max = 12582912  
net.ipv4.tcp_max_syn_backlog = 1024


fs.file-max = 999999:这个参数表示进程(比如一个worker进程)可以同时打开的最大句柄数,这个参数直线限制最大并发连接数,需根据实际情况配置。


net.ipv4.tcp_tw_reuse = 1:这个参数设置为1,表示允许将TIME-WAIT状态的socket重新用于新的TCP连接,这对于服务器来说很有意义,因为服务器上总会有大量TIME-WAIT状态的连接。


net.ipv4.tcp_keepalive_time = 600:这个参数表示当keepalive启用时,TCP发送keepalive消息的频度。默认是2小时,若将其设置的小一些,可以更快地清理无效的连接。


net.ipv4.tcp_fin_timeout = 30:这个参数表示当服务器主动关闭连接时,socket保持在FIN-WAIT-2状态的最大时间。


net.ipv4.tcp_max_tw_buckets = 5000:这个参数表示操作系统允许TIME_WAIT套接字数量的最大值,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。该参数默认为180 000,过多的TIME_WAIT套接字会使Web服务器变慢。


net.ipv4.tcp_max_syn_backlog = 1024:这个参数标示TCP三次握手建立阶段接受SYN请求队列的最大长度,默认为1024,将其设置得大一些可以使出现Nginx繁忙来不及accept新连接的情况时,Linux不至于丢失客户端发起的连接请求。


net.ipv4.ip_local_port_range = 1024 61000:这个参数定义了在UDP和TCP连接中本地(不包括连接的远端)端口的取值范围。


net.ipv4.tcp_rmem = 10240 87380 12582912:这个参数定义了TCP接受缓存(用于TCP接受滑动窗口)的最小值、默认值、最大值。


net.ipv4.tcp_wmem = 10240 87380 12582912:这个参数定义了TCP发送缓存(用于TCP发送滑动窗口)的最小值、默认值、最大值。


net.core.netdev_max_backlog = 8096:当网卡接受数据包的速度大于内核处理的速度时,会有一个队列保存这些数据包。这个参数表示该队列的最大值。


net.core.rmem_default = 6291456:这个参数表示内核套接字接受缓存区默认的大小。


net.core.wmem_default = 6291456:这个参数表示内核套接字发送缓存区默认的大小。


net.core.rmem_max = 12582912:这个参数表示内核套接字接受缓存区的最大大小。


net.core.wmem_max = 12582912:这个参数表示内核套接字发送缓存区的最大大小。


net.ipv4.tcp_syncookies = 1:该参数与性能无关,用于解决TCP的SYN攻击。


注意:滑动窗口的大小与套接字缓存区会在一定程度上影响并发连接的数目。每个TCP连接都会为维护TCP滑动窗口而消耗内存,这个窗口会根据服务器的处理速度收缩或扩张。


参数net.core.wmem_max = 12582912的设置,需要平衡物理内存的总大小、Nginx并发处理的最大连接数量而确定。当然,如果仅仅为了提供并发量使服务器不出现Out Of Memory问题而去降低滑动窗口大小,那么并不合适,因为滑动窗过小会影响大数据量的传输速度。net.core.rmem_default = 6291456、net.core.wmem_default = 6291456、

net.core.rmem_max = 12582912和net.core.wmem_max = 12582912这4个参数的设置需要根据我们的业务特性以及实际的硬件成本来综合。


Nginx并发处理的最大连接量:由nginx.conf中的work_processes和work_connections参数决定。


满小茂

满小茂

粉丝 85
博文 115
码字总数 138147
作品 0
成都
程序员
私信 提问
加载中
请先登录后再评论。
Nginx10m+高并发内核优化详解

何为高并发 默认的Linux内核参数考虑的是最通用场景,不符合用于支持高并发访问的Web服务器,所以需要修改Linux内核参数,这样可以让Nginx拥有更高的性能; 在优化内核时,可以做的事情很多,...

喵来个鱼
2019/03/15
0
0
基于Nginx实现10万+并发,你应该做的Linux内核优化

基于Nginx实现10万+并发,你应该做的Linux内核优化 阅读 1794,2017年04月18日 发布,来源:zhuanlan.zhihu.com 由于默认的linux内核参数考虑的是最通用场景,这明显不符合用于支持高并发访问...

linzhuangrong
2019/12/16
23
0
基于Nginx实现10万+并发,你应该做的Linux内核优化

基于Nginx实现10万+并发,你应该做的Linux内核优化 由于默认的linux内核参数考虑的是最通用场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改Linux内核参数,是的Nginx...

linjin200
2018/04/30
268
2
基于Nginx实现10万+并发,你应该做的Linux内核优化

由于默认的linux内核参数考虑的是最通用场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改Linux内核参数,是的Nginx可以拥有更高的性能; 在优化内核时,可以做的事情很...

TuskyPar
2019/01/23
7
0
nginx性能优化

nginx性能优化的一些方面 一、显示版本号:不安全 curl -I http://192.168.4.60,查看版本信息, 修改配置文件: http { server_tokens off; //把nginx版本信息关掉了 二、并发量,linux系统内...

bentian1208
2019/02/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PG库实现 t+1 同步

需求:业务场景中有很多需要查询t+1的数据,但又不想影响生产实时的业务,是否可以搭建一个延时的灾备库就可以解决这个问题呢。 问题:如何实现延时? 解决方向:recovery_min_apply_delay ...

易野
9分钟前
0
0
jpgraph 实例文档

下载 在官方网站http://www.aditus.nu/jpgraph/ 下载jpgraph,其中1.X系列是用于PHP4的,2.X系列是用于PHP5的。 安装 将下载的得到的jpgraph压缩文件解压至相应的路径。 配置 首先需要注意的...

osc_2ch77h9m
9分钟前
9
0
画IDC状态趋势图

[背景]公司以前对IDC状态的测试都是通过perl+crond结合,向指定某IDC的IP发送icmp包,并将其结果保存到test.log下,对于后斯的分析,是采取手工的方式(格式化数据,结合excel),这样操作下...

osc_moibnxyj
10分钟前
13
0
整理性能计数器注释

[前话]收集性能计数器注释,以备使用! [内容] 1 % Processor Time (Processor _Total) 指处理器用来执行非闲置线程时间的百分比。计算方法是,度量处理器用来执行空闲线程的时间,然后用 10...

osc_5nscij7v
11分钟前
0
0
你想要的WinForm界面开发教程在这里 - 如何设置较厚的表格边框

下载DevExpress v20.1完整版 DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅、美观且易于使用的应用程序。想要体验?点击下载>> 应用程序的外观随时代发展不断变化,自厚...

FILA6666
12分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部