Windows操作系统error10048端口释放问题TIME_WAIT状态的TCP连接快速回收时间

Posted wj12312

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows操作系统error10048端口释放问题TIME_WAIT状态的TCP连接快速回收时间相关的知识,希望对你有一定的参考价值。

本文来自于https://blog.csdn.net/stillfantasy1988/article/details/43196627?tdsourcetag=s_pcqq_aiomsg、http://www.huawei.com/ecommunity/bbs/10221255.html

 

1.问题

大规模Windows环境下,采用nginx反向代理服务后,操作系统会产生较多TIME_WAIT的TCP(Transmission Control Protocol)连接,操作系统默认TIME_WAIT的TCP连接回收时间是4分钟,TCP默认动态端口范围为开始端口49152,结束端口65535。这样会使回收TCP过慢导致系统吞吐量下降,甚至出现502访问失败问题。如何修改操作系统内核参数来缩短TIME_WAIT状态TCP连接回收时间和添加TCP动态端口范围,保证在大并发场景下操作系统的端口资源可用?

2.解决办法

  1. 以Administrator用户登录Windows操作系统。
  2. 修改TCP回收时间。
    1. 在Windows开始菜单中,单击“运行”。
    2. 在“运行”对话框中,输入“regedit”后按“Enter”打开注册表编辑器。
    3. 在“注册表编辑器”中打开“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters”路径。
    4. 在“编辑”菜单中,选择“新建 > DWORD (32-位)值”,输入名称“TcpTimedWaitDelay”。
    5. 右键单击TcpTimedWaitDelay,选择“修改”。
    6. 在“编辑 DWORD(32位)值”对话框的“基数”区域中,选择十进制值为“30”,并“确定”。
    7. 关闭注册表编辑器。
  3. 修改端口范围。
    1. 在Windows开始菜单中,单击“运行”。
    2. 输入“cmd”并按“Enter”打开命令执行窗口。
    3. 执行如下命令修改端口范围。

      netsh int ipv4 set dynamicportrange tcp startport=5000 numberofports=60000

  4. 重启操作系统。

以上是关于Windows操作系统error10048端口释放问题TIME_WAIT状态的TCP连接快速回收时间的主要内容,如果未能解决你的问题,请参考以下文章

socket.error: [Errno 10048]

windows 不能在本地计算机启动SqlServer. 参考特定服务错误代码10048

(OS 10048) 每个套接字地址(协议/网络地址/端口)通常只允许使用一次。视窗阿帕奇

解决 2003 Can’t connect to MySQL server on ‘localhost’ (10048)

无法绑定地址 [10048]:每个套接字地址(协议/网络地址/端口)通常只允许使用一次

Python随心记--python之错误:OSError: [WinError 10048]