怎样修改windows服务器中最大的tcp连接数?
发布网友
发布时间:2022-05-02 00:46
我来回答
共2个回答
热心网友
时间:2022-06-25 17:48
修改方法如下:
单击“开始”/运行,输入Regedit打开注册表,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters下,修改的“TcpNumConnections”的键值,将之由10改为250,即设置TCP最大并发连接数为250。
1、众所周知,为了防范蠕虫病毒的传播和攻击,Windows XP SP2将并发线程最多*为10个。SP2利用Messages动态链接库,来实时监控每个进程的并发线程数目,一旦它发现某进程的线程数超过10个,就会屏蔽掉部分线程。
2、TCP客户端和服务器连接时,客户端必须分配一个动态端口,默认情况下这个动态端口的分配范围为 1024-5000 ,也就是说默认情况下,客户端最多可以同时发起3977 个Socket 连接。
热心网友
时间:2022-06-25 17:48
在做性能测试测试时候,如果被测试的系统页面很简单,并且性能很好,这样会导致压力机得tcp链接数不够而导致如下错误:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\TcpTimedWaitDelay
to
30
and
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\MaxUserPort
to
65534
and
rebooting
the
machine
See
the
readme.doc
file
for
more
information
通过百度搜索介绍最多的还是让修改TimedWaitDelay
和MaxUserPort这2个值,其中是将TimedWaitDelay修改的相对小点,可以根据实际情况来定,
同时将MaxUserPort这个值修改大些,但是修改完并重启机器后,该问题仍然存在,通过多方查资料,然后对一些注册表进行修改:
[HKEY_LOCAL_MACHINE
\System
\CurrentControlSet
\Services
\Tcpip
\Parameters]
TcpNumConnections
=
0x00fffffe
(Default
=
16,777,214)
以上注册表信息配置单机的最大允许的TCP连接数,默认为
16M。这个数值看似很大,这个并不是*最大连接数的唯一条件,还有其他条件会*到TCP
连接的最大连接数。
最大动态端口数
TCP客户端和服务器连接时,客户端必须分配一个动态端口,默认情况下这个动态端口的分配范围为
1024-5000
,也就是说默认情况下,客户端最多可以同时发起3977
个Socket
连接。我们可以修改如下注册表来调整这个动态端口的范围
[HKEY_LOCAL_MACHINE
\System
\CurrentControlSet
\Services
\Tcpip
\Parameters]
MaxUserPort
=
5000
(Default
=
5000,
Max
=
65534)
最大TCB
数量
系统为每个TCP
连接分配一个TCP
控制块(TCP
control
block
or
TCB),这个控制块用于缓存TCP连接的一些参数,每个TCB需要分配
0.5
KB的pagepool
和
0.5KB
的Non-pagepool,也就说,每个TCP连接会占用
1KB
的系统内存。
系统的最大TCB数量由如下注册表设置决定
[HKEY_LOCAL_MACHINE
\System
\CurrentControlSet
\Services
\Tcpip
\Parameters]
MaxFreeTcbs
=
2000
(Default
=
RAM
dependent,
but
usual
Pro
=
1000,
Srv=2000)
非Server版本,MaxFreeTcbs
的默认值为1000
(64M
以上物理内存)
Server
版本,这个的默认值为
2000。
也就是说,默认情况下,Server
版本最多同时可以建立并保持2000个TCP
连接。
最大TCB
Hash
table
数量
TCB
是通过Hash
table
来管理的,下面注册表设置决定了这个Hash
table
的大小
HKEY_LOCAL_MACHINE
\System
\CurrentControlSet
\services
\Tcpip
\Parameters]
MaxHashTableSize
=
512
(Default
=
512,
Range
=
64-65536)
这个值指明分配
pagepool
内存的数量,也就是说,如果MaxFreeTcbs
=
1000
,
则
pagepool
的内存数量为
500KB
那么
MaxHashTableSize
应大于
500
才行。这个数量越大,则Hash
table
的冗余度就越高,每次分配和查找
TCP
连接用时就越少。这个值必须是2的幂,且最大为65536.
MaxUserPort
=
65534
(Decimal)
MaxHashTableSize
=
65536
(Decimal)
MaxFreeTcbs
=
16000
(Decimal)
这里我们可以看到
MaxHashTableSize
被配置为比MaxFreeTcbs
大4倍,这样可以大大增加TCP建立的速度。