[转帖]Linux内核参数net.ipv4.ip_local_port_range对服务器连接数影响的正确解释

linux,内核,参数,net,ipv4,ip,local,port,range,服务器,连接数,影响,正确,解释 · 浏览次数 : 0

小编点评

**net.ipv4.ip_local_port_range** 是一个用于本机作为客户端对外发起 TCP/UDP 连接时所能使用的临时端口范围。 * **TCP 连接**:源地址*源端口*目标地址*目标端口限制连接数。 * **UDP 连接**:源地址*源端口限制连接数。 **Nginx 的 **net.ipv4.ip_local_port_range** 参数用于指定可用的端口范围,默认值为 40000-59999。 **突破端口数限制的方法:** * **增加后端负载数量**:可以通过增加后端负载数量来扩大可用的端口数量。 * **增加源地址数量**:通过增加源地址数量来扩大可用的源地址数量,可以实现相同的端口数。 * **使用虚地址技术**:虚地址技术可以创建一个多个独立的 IP 地址,每个 IP 地址可以分配到不同的端口。

正文

首先明确一下该参数的意义:net.ipv4.ip_local_port_range表示本机作为客户端对外发起tcp/udp连接时所能使用的临时端口范围。

对于TCP连接,本机所能发起的tcp连接数受四元组(源地址*源端口*目标地址*目标端口)限制。

而对于UDP连接,本机所能发起的udp连接数则受二元组(源地址*源端口)限制。(此处借用二元组的概念,并不表示udp套接字的二元组标识)。

一个实际生产场景举例

我们知道,在使用nginx作反向代理服务器时,会作为客户端向后端负载发起连接,在不考虑最大打开文件数和其他配置影响的情况下:

作为TCP反向代理服务器:

本机IP为192.168.1.1,后端负载为tcp:192.168.1.2:80、tcp:192.168.1.2:80,net.ipv4.ip_local_port_range为40000-59999(即临时可用端口数为20000),那么Nginx所能维持的最大长连接数为1*20000*2*1=40000

作为UDP反向代理服务器:

本机IP为192.168.1.1,后端负载为udp:192.168.1.2:80、udp:192.168.1.2:80,net.ipv4.ip_local_port_range为40000-59999(即临时可用端口数为20000),那么Nginx所能维持的最大长连接数为1*20000=20000

如何突破端口数对Nginx连接数造成的限制

如果是tcp连接,根据公式:源地址*源端口*目标地址*目标端口,只需要简单的增加后端负载的数量即可。

如果是udp连接,根据公式:源地址*源端口,那么增加后端负载的数量是无意义的,可行的办法为增加源地址数量,即采用增加网卡或虚地址的方式提高可用源地址的数量,可以参考:https://www.nginx.com/blog/overcoming-ephemeral-port-exhaustion-nginx-plus/

文章知识点与官方知识档案匹配,可进一步学习相关知识
网络技能树首页概览23211 人正在系统学习中

与[转帖]Linux内核参数net.ipv4.ip_local_port_range对服务器连接数影响的正确解释相似的内容:

[转帖]Linux内核参数net.ipv4.ip_local_port_range对服务器连接数影响的正确解释

首先明确一下该参数的意义:net.ipv4.ip_local_port_range表示本机作为客户端对外发起tcp/udp连接时所能使用的临时端口范围。 对于TCP连接,本机所能发起的tcp连接数受四元组(源地址*源端口*目标地址*目标端口)限制。 而对于UDP连接,本机所能发起的udp连接数则受二

[转帖]linux中内核的一个不错的参数somaxconn

最近发现很多内核优化参数都记不住了,写下文章来备记,方便以后查看. 编辑 /etc/sysctl.conf 文件,在里面加入如下内容:(有注释) #设置系统对最大跟踪的TCP连接数的限制(CentOS 5.6无此参数) net.ipv4.ip_conntrack_max = 25000000 #最大

[转帖]Linux内核调优

Linux服务器调优 转载于:https://blog.csdn.net/largetalk/article/details/16863689 安装一台新的Linux服务器之后都要做些配置调整工作,优化一下系统,以前零零碎碎记录过一些,这里集中整理一下。 Linux内核参数 net.ipv4.tcp

[转帖]Linux内核 TCP/IP、Socket参数调优

文章系转载,便于整理和分类,原文地址:http://www.360doc.com/content/14/0606/16/3300331_384326124.shtml Doc1: /proc/sys/net目录 所有的TCP/IP参数都位于/proc/sys/net目录下(请注意,对/proc/sy

[转帖]Linux内核参数之nf_conntrack

https://www.jianshu.com/p/d2b28703e376 问题描述 近日线下测试环境的一个cloudstack计算节点上的虚拟机出现频繁的丢包情况,经过排查日志发现这个计算节点的包被丢弃,日志信息如下: Oct 29 16:18:14 a2 kernel: __ratelimit

[转帖]Linux内核参数之nf_conntrack

https://www.jianshu.com/p/d2b28703e376 问题描述 近日线下测试环境的一个cloudstack计算节点上的虚拟机出现频繁的丢包情况,经过排查日志发现这个计算节点的包被丢弃,日志信息如下: Oct 29 16:18:14 a2 kernel: __ratelimit

[转帖]linux 内核参数优化

Sysctl命令及linux内核参数调整 一、Sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现。 命令格式: sysctl [-n] [-e] -w variable=value sysctl [-n]

[转帖]Linux 生产内核网络参数调优分析

https://www.jianshu.com/p/634ea67ac23a Linux 生产内核网络参数调优分析 本文总结了常见的 Linux 内核参数及相关问题。修改内核参数前,您需要: 从实际需要出发,最好有相关数据的支撑,不建议随意调整内核参数。 了解参数的具体作用,且注意同类型或版本环境的

[转帖]linux常用的内核参数的设置

https://cloud.tencent.com/developer/article/1071005?from=article.detail.1956187&areaSource=106000.17&traceId=lr3VPq-YZBl2ynblhnK3h .共享内存大小的设置 临时设置: 通过

[转帖]linux服务器内核参数优化(3)

https://cloud.tencent.com/developer/article/1820378?from=article.detail.1956187&areaSource=106000.16&traceId=lr3VPq-YZBl2ynblhnK3h 在这个文件中,加入下面的几行内容: n