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

首先,需要修改/etc/sysctl.conf来更改内核参数。例如,最常用的配置:

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 = 4096 32768 262142
net.ipv4.tcp_wmem = 4096 32768 262142
net.core.netdev_max_backlog = 8096
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn.backlog=1024

然后执行sysctl-p命令,使上述修改生效。

上面的参数意义解释如下:
·file-max:这个参数表示进程(比如一个worker进程)可以同时打开的最大句柄数,这个参数直接限制最大并发连接数,需根据实际情况配置。
·tcp_tw_reuse:这个参数设置为1,表示允许将TIME-WAIT状态的socket重新用于新的TCP连接,这对于服务器来说很有意义,因为服务器上总会有大量TIME-WAIT状态的连接。
·tcp_keepalive_time:这个参数表示当keepalive启用时,TCP发送keepalive消息的频度。默认是2小时,若将其设置得小一些,可以更快地清理无效的连接。
·tcp_fin_timeout:这个参数表示当服务器主动关闭连接时,socket保持在FIN-WAIT-2状态的最大时间。
·tcp_max_tw_buckets:这个参数表示操作系统允许TIME_WAIT套接字数量的最大值,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。该参数默认为180000,过多的TIME_WAIT套接字会使Web服务器变慢。
·tcp_max_syn_backlog:这个参数表示TCP三次握手建立阶段接收SYN请求队列的最大长度,默认为1024,将其设置得大一些可以使出现Nginx繁忙来不及accept新连接的情况时,Linux不至于丢失客户端发起的连接请求。
·ip_local_port_range:这个参数定义了在UDP和TCP连接中本地(不包括连接的远端)端口的取值范围。
·net.ipv4.tcp_rmem:这个参数定义了TCP接收缓存(用于TCP接收滑动窗口)的最小值、默认值、最大值。
·net.ipv4.tcp_wmem:这个参数定义了TCP发送缓存(用于TCP发送滑动窗口)的最小值、默认值、最大值。
·netdev_max_backlog:当网卡接收数据包的速度大于内核处理的速度时,会有一个队列保存这些数据包。这个参数表示该队列的最大值。
·rmem_default:这个参数表示内核套接字接收缓存区默认的大小。
·wmem_default:这个参数表示内核套接字发送缓存区默认的大小。
·rmem_max:这个参数表示内核套接字接收缓存区的最大大小。
·wmem_max:这个参数表示内核套接字发送缓存区的最大大小。

注: 滑动窗口的大小与套接字缓存区会在一定程度上影响并发连接的数目。每个TCP连接都会为维护TCP滑动窗口而消耗内存,这个窗口会根据服务器的处理速度收缩或扩张。
参数wmem_max的设置,需要平衡物理内存的总大小、Nginx并发处理的最大连接数量(由nginx.conf中的worker_processes和worker_connections参数决定)而确定。当然,如果仅仅为了提高并发量使服务器不出现Out Of Memory问题而去降低滑动窗口大小,那么并不合适,因为滑动窗口过小会影响大数据量的传输速度。rmem_default、wmem_default、rmem_max、wmem_max这4个参数的设置需要根据我们的业务特性以及实际的硬件成本来综合考虑。
·tcp_syncookies:该参数与性能无关,用于解决TCP的SYN攻击。

时间: 2024-08-10 21:07:11

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

Nginx笔记总结十九:nginx + fancy实现漂亮的索引目录

编译:./configure --prefix=/usr/local/nginx --add-module=../ngx-fancyindex-master 配置: location / { fancyindex on; 开启fancy索引 fancyindex_exact_size off;  不使用精确大小,使用四舍五入 fancyindex_localtime on; 使用本地时间 fancyindex_footer "myfooter.shtml"; 当前路径下的myfoote

通过栅格类型扩展使ArcGIS 支持更多传感器类型

1  WHAT:什么是栅格类型? ArcGIS海量影像管理解决方案推出已经有一年时间了,相信很多朋友已经对ArcGIS中如何管理海量影像数据有了大致了解.ArcGIS 10.0中推出了适用于海量影像管理的镶嵌数据集模型(Mosaic Dataset),单个镶嵌数据集就可以管理数百万景,不同时相.不同分辨率.不同坐标系.不同空间位置的影像. 为了将各种来源,形式各异的影像数据导入镶嵌数据集中,我们需要为影像指定"栅格类型(Raster Type)".简单说,栅格类型就是对各种影像数据的分

tomcat支持多少并发

作者:孟男男 来源:https://zhidao.baidu.com/question/1445941399668603020.html Tomcat的最大并发数是可以配置的,实际运用中,最大并发数与硬件性能和CPU数量都有很大关系的. 更好的硬件,更多的处理器都会使Tomcat支持更多的并发. Tomcat默认的HTTP实现是采用阻塞式的Socket通信,每个请求都需要创建一个线程处理,当一个进程 有500个线程在跑的话,那性能已经是很低很低了. Tomcat 默认配置的最大请求数是150,也

Tomcat 支持多少并发量

Tomcat的最大并发数是可以配置的,实际运用中,最大并发数与硬件性能和CPU数量都有很大关系的.更好的硬件,更多的处理器都会使Tomcat支持更多的并发. Tomcat默认的HTTP实现是采用阻塞式的Socket通信,每个请求都需要创建一个线程处理,当一个进程有500个线程在跑的话,那性能已经是很低很低了.Tomcat 默认配置的最大请求数是150,也就是说同时支持150个并发.具体能承载多少并发,需要看硬件的配置,CPU 越多性能越高,分配给JVM的内存越多性能也就越高,但也会加重GC的负担

Nginx 笔记与总结(14)expires 缓存设置

设置缓存,可以提高网站性能. 当网站的部分内容,比如新闻站的图片,一旦发布就不太可能发生更改,此时需要用户在访问一次页面之后,把该页面的图片缓存在用户的浏览器端一段时间,就可以用到 nginx 的 expires 设置. expires 的语法参见:http://nginx.org/en/docs/http/ngx_http_core_module.html location = /images/default.gif { expires 30s; # 30m:30 分钟,2h:2 小时,30d

使Nginx支持ThinkPHP框架

一.nginx不支持thinkphp的原因 ThinkPHP支持通过PATHINFO和URL rewrite的方式来提供友好的URL,只需要在配置文件中设置 'URL_MODEL' => 2 即可.在Apache下只需要开启mod_rewrite模块就可以正常访问了,但是Nginx中默认是不支持PATHINFO的,所以nginx默认情况下是不支持thinkphp的.不过我们可以通过修改nginx的配置文件来让其支持thinkphp. 二.让nginx支持pathinfo,支持thinkphp 1

配置nginx使之支持pathinfo

phalcon项目,oneinstack环境lnmp.配置文件:/usr/local/nginx/conf/vhost/dldh.ccc.conf自动生成的. 问题:除首页外,其他都打不开,且样式文件也打不开.http://dldh.ccc/index.php/back/css/bootstrap.min.csshttp://dldh.ccc/index.php/backend/index/index都报: Access denied. 解决办法:作修改如下. server { listen 8

【Nginx】使用certbot安装免费https证书使Nginx支持Https请求

certbot官网:https://certbot.eff.org/lets-encrypt/centosrhel7-nginx 一.安装步骤 1)安装certbot,执行  sudo yum install certbot python2-certbot-nginx 2)检查是否安装成功,执行  certbot --help [[email protected] ~]# certbot --help Traceback (most recent call last): File "/usr/b

Nginx笔记02-nginx常用参数配置说明

nginx的主配置文件是nginx.conf,这里主要针对这个文件进行说明 1.主配置文件nginx.conf 2.nginx配置文件的结构 从上面的配置文件中我们可以总结出nginx配置文件的基本结构 2.1 全局块 全局块是默认配置文件从开始到events之间的内容,主要设置一些影响nginx服务器运行的配置命令,作用域是nginx服务器全局,通常包括nginx的用户和组,允许生成的work process数,nginx进程pid文件,日志的路径和类型.配置文件引入等 2.2 events块