摘要: Nginx 网络多并发请求的TCP网络参数做简单说明。

需要修改/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参数决定。

转载于:https://www.cnblogs.com/Dennis-mi/articles/6128958.html

摘要: Nginx 网络多并发请求的TCP网络参数做简单说明。相关推荐

  1. 【nginx笔记】系统参数设置-使Nginx支持更多并发请求的TCP网络参数

    首先,需要修改/etc/sysctl.conf来更改内核参数.例如,最常用的配置: fs.file-max = 999999 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tc ...

  2. 黑马程序员——网络编程(二)--TCP网络程序、访问Internet网络资源

    -------  android培训.java培训.期待与您交流! ---------- 第一部分 TCP网络程序 一.TCP网络程序的工作原理 TCP客户端程序与TCP服务器程序的交互过程: (1) ...

  3. java 网络通讯_JAVA编程实现TCP网络通讯的方法示例

    本文实例讲述了JAVA编程实现TCP网络通讯的方法.分享给大家供大家参考,具体如下: TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字 ...

  4. Python网络与并发编程 02 TCP粘包

    TCP/Socket与subprocess 我们准备做一个可以在Client端远程执行Server端的shell命令并拿到其执行结果的程序,而涉及到网络通信就必然会使用到socket模块,此外还需要s ...

  5. 并发请求多 服务器响应慢 post,【转】吞吐量、QPS(TPS)、并发数、RT性能指标及ab并发测试...

    概念 吞吐量 系统的吞吐量是指系统的抗压.负载能力,指的是单位时间内处理的请求数量.通常情况下,吞吐率用 "字节数/秒" 来衡量,也可以用 "请求数/秒",&q ...

  6. 基于Linux-ARM的智能家具项目(3)--语音模块与TCP网络

    前面两篇,我们介绍了工厂模式:以及工厂模式实际运用在灯上的案例,还有火灾线程,如果有遗忘的这里有传送门. 基于Linux-ARM的智能家具项目(2)-- 灯框架与火灾报警_废话少说-的博客-CSDN博 ...

  7. Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)

    Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程) 一.TCP服务器(一请求一线程) 的原理 二.完整代码 三.测试 四.补充 一.TCP服务器(一请求一线 ...

  8. 查看 并发请求数及其TCP连接状态

    服务器上的一些统计数据: 1)统计80端口连接数 netstat -nat|grep -i "80"|wc -l 2)统计httpd协议连接数 ps -ef|grep httpd| ...

  9. 高性能并发TCP网络服务-IOCP框架修正VC2008版本

    From: http://blog.csdn.net/lsfa1234/article/details/6223635 高性能并发TCP网络服务IOCP框架修正VC2008版本 从Source Cod ...

最新文章

  1. 禁止COOKIE后对SESSION的影响
  2. Safari回传值给应用程序
  3. linux网络编程--select/poll/epoll 详解
  4. ftp连接oracle服务器,使用SSL加密连接FTP - 架建SSL安全加密的FTP服务器(图)_服务器应用_Linux公社-Linux系统门户网站...
  5. vue项目统一响应_Vue响应式原理及总结
  6. Mongoose 是什么?
  7. 乐高积木格斗机器人组装拼图_玩积木、组装机器人的多重好处,你一定想不到!(认识机器人)...
  8. 【3dmax千千问】初学3dmax插件神器第17课|VRAY渲染教程|哪三种表现方式最能影响3dmax疯狂模渲大师设计效果图的写实程度?食住玩3dmax入门到精通进阶教程
  9. ASTC on Android
  10. Edge浏览器出现兼容性问题且所有页面崩溃,包括设置均无法打开并访问的解决方法
  11. 【人物志】美团技术委员会前端通道主席洪磊:爱折腾的斜杠青年
  12. [从头读历史] 第303节 星球战争 起始:冷兵器战争的宏观架构
  13. h20r1203功率管参数_电磁炉功率管H20R1353可以用H20R1203代换吗
  14. Excel将一个sheet页拆分多个
  15. ios- 地图路线规划
  16. kali上的一些密码破解工具
  17. GitLab CI/CD artifacts 属性的配置与使用
  18. [已解决]win11家庭版安装软件提示,系统策略禁止安装此设备。请与系统管理员联系
  19. 大数据综合案例大作业
  20. Python快捷键及配置环境变量

热门文章

  1. GoogleNet - Going deeper with convolutions
  2. ASP.NET Core Web Razor Pages系列教程一:使用ASP.NET Core 创建一个Razor Pages网络应用程序
  3. ubuntu, debian 安装redis,设置开机自动启动和密码,允许外网访问
  4. ajax+lucene pdf,基于Ajax/Lucene的站内搜索技术研究
  5. benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明
  6. Elasticsearch 常用配置参数总结
  7. 如何辨别二逼、文艺互联网公司?
  8. 5000 字的 Spring MVC 全面大总结
  9. chakra linux安装教程,Chakra Linux 安装指南(二):Chakra Linux 安装
  10. python 私有云_利用Docker+NextCloud搭建私有云盘