V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
realskywalker
V2EX  ›  Windows

求教个 windows 问题, win10 的最大连接数 20,是特指共享文件最大连接数 20,还是 tcp 最大连接数 20?

  •  
  •   realskywalker · 2021-01-26 12:16:05 +08:00 · 2661 次点击
    这是一个创建于 1157 天前的主题,其中的信息可能已经有所发展或是发生改变。
    求教个 windows 问题,win10 的最大连接数 20,是特指共享文件最大连接数 20,还是 tcp 最大连接数 20 ?
    17 条回复    2021-01-27 08:34:50 +08:00
    realskywalker
        1
    realskywalker  
    OP
       2021-01-26 12:16:39 +08:00
    我是在想 win10 上做个网站,能有多大最大连接数?
    sun1991
        2
    sun1991  
       2021-01-26 12:19:25 +08:00
    指的是 max incoming tcp connections
    rekulas
        3
    rekulas  
       2021-01-26 12:19:52 +08:00
    应该是指共享文件
    Mithril
        4
    Mithril  
       2021-01-26 12:20:24 +08:00
    TCP incoming,换个 Windows Server 就行了
    realskywalker
        5
    realskywalker  
    OP
       2021-01-26 12:25:08 +08:00
    @sun1991
    @Mithril
    那我再请教一下,我用 windows 10 的 hyperv 创建了 ubuntu 虚拟机,这个虚拟机也受 windows 的系统限制吗?
    Mithril
        6
    Mithril  
       2021-01-26 12:43:53 +08:00
    @realskywalker 应该不会,我记得这玩意是写在系统 tcp 协议栈里的,你用 hyper v 应该直接通过那个虚拟的 switch 通到 ubuntu 里了。
    你可以试试,我也没试过。
    realskywalker
        7
    realskywalker  
    OP
       2021-01-26 12:50:12 +08:00
    @Mithril 我已经装好了 ubuntu,但是不知道怎么测试 ubuntu 能接受的 tcp 连接数。
    Mithril
        8
    Mithril  
       2021-01-26 12:54:21 +08:00
    @realskywalker 取决于你的 Hyper V 怎么配置的网络。你可以从 Windows 10 里面直连 ubuntu 测,或者两个虚拟机直接互相测。或者按照你的使用场景,从另外一台机器连过来,但是网络得配好才行。
    随便找个 tcp 并发连接测试的软件就行了,github 上一搜一大堆。
    snip
        9
    snip  
       2021-01-26 12:56:07 +08:00
    xp 是 20 吧,现在都不止了,迅雷下个软件都千八的连接数
    realskywalker
        10
    realskywalker  
    OP
       2021-01-26 13:17:39 +08:00
    @Mithril
    我使用 ab 进行了压力测试。测试的机器,ab -c 250 -n 10000,-c 再高我的测试机器会报错,结论是:
    Concurrency Level: 250
    Time taken for tests: 129.699 seconds
    Complete requests: 10000
    Failed requests: 3948
    (Connect: 0, Receive: 0, Length: 3948, Exceptions: 0)
    Total transferred: 165345667 bytes
    HTML transferred: 160705667 bytes
    Requests per second: 77.10 [#/sec] (mean)
    Time per request: 3242.487 [ms] (mean)
    Time per request: 12.970 [ms] (mean, across all concurrent requests)
    Transfer rate: 1244.96 [Kbytes/sec] received

    在被测试机器上使用 netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"t",state[key]}' 查看连接数:
    netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"t",state[key]}'
    ESTABLISHED t 246
    TIME_WAIT t 4522

    其中,ESTABLISHED 稳定在 240 - 250 之间,TIME_WAIT 是逐步上升的。

    所以,win10 机器只有一张网卡,虚拟机使用 HyperV 虚拟交换机的外部网络创建了一个虚拟网卡。在 win10 的 hyperv 上创建的虚拟机,貌似是不受 win10 TCP incoming 限制的?
    laminux29
        11
    laminux29  
       2021-01-26 13:19:34 +08:00
    建议更换为 Windows Server 2016 。
    Mithril
        12
    Mithril  
       2021-01-26 13:38:03 +08:00
    @realskywalker 那应该是了,我记得 XP 时期破解这个连接数限制就是用 Server 2003 的 TCP DLL 替换进去。。。
    按理说虚拟机那个虚拟网卡的流量从宿主机来看就是一堆 packet,应该也没解析成 tcp 包
    ggabc
        13
    ggabc  
       2021-01-26 13:39:09 +08:00 via iPhone
    从哪看的 20 ?
    bruce0
        14
    bruce0  
       2021-01-26 13:43:31 +08:00
    win10 tcp 连接数不可能是 20, 我前几天 压测东西, 自己用 go 写的, 目标是 3000 个链接(你没看错,就是 3000 个 tcp 连接)

    最后连接数是 2800+ 压测了半个小时左右
    opengps
        15
    opengps  
       2021-01-26 13:50:26 +08:00 via Android
    我开发 socket 时候在 xp 下测试 tcp 入链接就可以超过 6 万了
    opengps
        16
    opengps  
       2021-01-26 13:51:39 +08:00 via Android
    印象中,20 个链接是共享文件时候默认限制最大 20 个共同访问,然而这个数字可以自己改成不限制
    Mithril
        17
    Mithril  
       2021-01-27 08:34:50 +08:00
    @ggabc
    @bruce0
    @opengps
    Windows 的 EULA 里面写的。打开 Windows 10 的 EULA,直接搜 Device Connections 那段。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5067 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 09:45 · PVG 17:45 · LAX 02:45 · JFK 05:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.