在探讨这个问题前,我们先假设一种经典的连接模型:
Client -> Load Balancer-> RealServer Pool
并且我们假设这里使用NAT模式的负载均衡,在这种模式下:
1.负载均衡器只留给客户端一个公网IP地址(VIP);
2.客户端发来的请求都被负载均衡器端截,然后通过调度算法转发到RealServer Pool里面的某台服务器;
3.这些RealServer都在一个私有网络里面,对外不可见;
4.负载均衡器转发请求到真实服务器(RealServer)的时候同时做了NAT,真实服务器看到的连接都是来自负载均衡器的(和真实服务器在一个私有网络的IP)。
首先,我们从Client Side(Client->Load Balancer)来分析:
这端的连接都由SourceIP:SoucePort->DesIP:DesPort唯一标识,所以对我们来说,能支持的连接数仅仅受限于负载均衡器的内存数(连接数可以是65000+),因为DesIP和DesPort都是已知的唯一的(比如IP:80).
然后再从Server Side(Load Balancer->RealServer)来分析:
这端的连接数刚好相反,每个连接都由负载均衡器的IP(这里称MIP:Mapped IP)和随机的端口进行标识。即: MIP:RandomPort -> RealServerIP:80
这样,因为负载均衡器的端口也受限于TCP/IP的最大端口数64k(65536)限制,因此最多只能建立64k的服务器连接(server connnections).
由于瓶颈很可能就出现在服务器端连接上,针对这种情况,各负载均衡器厂家是怎么解决的呢?
1. NetScaler
我们首先来看NetScaler的解决办法,NetScaler的解决办法很简单,增加MIP的个数,这样最大的服务器连接数将变成:
MaxServerConnections = 65536 * MIP数
2. F5
F5其实也使用了一样的办法,但是F5首先建立一个Source-NAT pool,然后在SNAT Pool里面加入多个IP地址。这样得到的最大连接数和NetScaler完全一样:
SA:SP -> DA:DP
10.1.1.1:1024 -> 10.1.1.100:80
10.1.1.2:1024 -> 10.1.1.100:80
PS: 这里10.1.1.1和10.1.1.2都在一个SNAT pool里面。
上述情况都是理论计算值,真实环境下的最大连接数还受限于各种因素:
1. 每个连接都要耗费一定的资源,比如CPU、MEM,所以,真实值往往很难达到理论值;
2. 根据协议的不同,能达到的最大连接数也不一样,比如HTTP/1.0连接的创建和关闭都非常快,而且浏览器对并发连接数有限制,所以,很难达到最大的理论 值。HTTP/1.1支持流线技术,多个请求可以复用一个连接,这样就大大减少了并发连接数。FTP或者telnet连接都是长连接,很容易达到最大值;
3. 很多设备(比如NetScaler)在服务器端都支持连接池(连接复用),里面的连接都是长连接,一样实现了HTTP/1.1里面的流线技术,一个连接就可以处理多个客户端连接。这样除了减少连接资源,同时还减少了负载均衡器的其他资源开销,同时减低了内网的带宽;
4. 一些设备(比如NetScaler的TCP-OFFLOAD)支持TCP卸载,仅仅把已经建立的连接发到服务器端,而TCP的三次握手完全有负载均衡器接管,这样,服务器端的连接就成倍的减少。
转自:http://www.tektea.com/archives/4140.html ,茶话汇
相关推荐
Windows系统出于资源管理和防止DDoS攻击的考虑,设定了默认的最大连接数。这个数值一般在10到100之间,不同的Windows版本可能会有所不同。对于普通用户,这样的设置通常是足够的,但对于频繁进行大量文件下载或者...
"连接数测试工具"是一个专门用于衡量网络连接能力的实用软件,可以帮助用户了解自己的网络环境,尤其是ISP(Internet Service Provider,互联网服务提供商)提供的连接并发数和带宽性能。 该压缩包文件"连接数测试...
在描述中提到的"TCP/IP并发连接数修改"是指调整系统允许同时进行的TCP连接的最大数量。这个参数对网络性能,尤其是下载速度,有显著影响。默认情况下,操作系统限制了并发连接的数量,以防止资源过度消耗。 TCP...
默认情况下,此值可能不存在,你可以创建它,并将其设置为你想要的最大连接数。请注意,过高的数值可能会导致性能问题。 在修改注册表后,必须重启计算机使更改生效。务必在修改前备份注册表,以防意外情况发生。 ...
例如,可以使用`Setsockopt`函数,该函数允许程序修改套接字选项,包括最大连接数。 2. **套接字编程**:在易语言中,需要了解和使用套接字相关的基本概念,如`SOCKET`类型、`bind`、`listen`、`accept`等函数的...
总的来说,"修改连接数,查看连接数"是一个涉及到网络优化和系统管理的重要话题。通过工具如tcpz,我们可以更好地理解和调整TCP连接管理,以适应不同场景下的网络需求,提升服务质量和性能。不过,任何改动都需要谨慎...
此外,还可以利用Apache服务器的内置日志或模块(如mod_status)来获取更具体的服务器状态,包括当前连接数和最大连接数。 `如何查看httpd的并发请求数与TCP连接数_电脑软件_百度经验.url` 和其他链接提供的教程...
在TCP/IP协议栈中,一个并发连接指的是同一时间客户端能够与服务器保持的多个独立的数据传输通道。修改TCP/IP并发连接数意味着调整系统允许的最大连接数量,这通常涉及到操作系统级别的设置,目的是优化网络性能,...
在处理“打印机超过最大连接数限制”问题时,除了上述方法,还可以考虑使用多台打印机分散负载,或者采用虚拟打印技术,将多个打印任务合并到一个队列中,以避免同时占用过多的连接。最后,确保所有设备和软件都已...
例如,Universal Tcpip Patch是一个可能的解决方案,它能修改Windows的TCP/IP设置,包括连接数限制。使用这类工具需谨慎,因为不正确的使用可能导致系统不稳定或安全风险。 在调整连接数时,还需要考虑操作系统和...
根据 TCP 标识四元组可以分析出,一个链接接收端,最大的 TCP 链接数=所有有效 ip 排列组合的数量*端口数量 65535,这个计算结果应该是一个天文数字。因此链接接收端支持的链接数理论上可以认为是无限大的。 实际...
这个ESTABLISHED指连接已经完全建立的数据包了,而NEW指新建一个连接所使用的第一个数据包。 这样,就排除了那些状态为NEW的小包。 好处:有些人总是热衷于“修改XP最大连接数”来提高BT下载速率。其实这个所谓的...
默认情况下,Windows XP为了防止滥用系统资源和DDoS攻击,设定了一个上限,限制了系统可以同时建立的网络连接数量。这个限制可能会对需要大量并发连接的应用,如文件共享、P2P下载或服务器管理造成困扰。 描述中...
标题中的“SP3 TCPIP连接数修改”指的是在Windows XP Service Pack 3(SP3)操作系统中调整TCP/IP协议的最大连接数。TCP/IP是互联网上广泛使用的通信协议,而连接数限制则是操作系统为了防止资源耗尽而设定的一个...
标题中的“修改XP半连接数工具”指的是针对Windows XP操作系统的一种优化工具,它的主要功能是调整系统的TCP/IP连接参数,尤其是半连接(SYN半连接)的数量限制。在Windows XP中,默认情况下,系统允许的最大半连接...
"XP SP3 TCPIP 并发连接数补丁"是一个专门针对这一问题的解决方案。该补丁或修改器旨在解除Windows XP SP2和SP3中TCP/IP协议栈对并发连接数的限制,提高系统同时处理网络请求的能力。通过增加并发连接数,用户可以...