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

2021-01-26 12:16:05 +08:00
 realskywalker
求教个 windows 问题,win10 的最大连接数 20,是特指共享文件最大连接数 20,还是 tcp 最大连接数 20 ?
2922 次点击
所在节点    Windows
17 条回复
realskywalker
2021-01-26 12:16:39 +08:00
我是在想 win10 上做个网站,能有多大最大连接数?
sun1991
2021-01-26 12:19:25 +08:00
指的是 max incoming tcp connections
rekulas
2021-01-26 12:19:52 +08:00
应该是指共享文件
Mithril
2021-01-26 12:20:24 +08:00
TCP incoming,换个 Windows Server 就行了
realskywalker
2021-01-26 12:25:08 +08:00
@sun1991
@Mithril
那我再请教一下,我用 windows 10 的 hyperv 创建了 ubuntu 虚拟机,这个虚拟机也受 windows 的系统限制吗?
Mithril
2021-01-26 12:43:53 +08:00
@realskywalker 应该不会,我记得这玩意是写在系统 tcp 协议栈里的,你用 hyper v 应该直接通过那个虚拟的 switch 通到 ubuntu 里了。
你可以试试,我也没试过。
realskywalker
2021-01-26 12:50:12 +08:00
@Mithril 我已经装好了 ubuntu,但是不知道怎么测试 ubuntu 能接受的 tcp 连接数。
Mithril
2021-01-26 12:54:21 +08:00
@realskywalker 取决于你的 Hyper V 怎么配置的网络。你可以从 Windows 10 里面直连 ubuntu 测,或者两个虚拟机直接互相测。或者按照你的使用场景,从另外一台机器连过来,但是网络得配好才行。
随便找个 tcp 并发连接测试的软件就行了,github 上一搜一大堆。
snip
2021-01-26 12:56:07 +08:00
xp 是 20 吧,现在都不止了,迅雷下个软件都千八的连接数
realskywalker
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
2021-01-26 13:19:34 +08:00
建议更换为 Windows Server 2016 。
Mithril
2021-01-26 13:38:03 +08:00
@realskywalker 那应该是了,我记得 XP 时期破解这个连接数限制就是用 Server 2003 的 TCP DLL 替换进去。。。
按理说虚拟机那个虚拟网卡的流量从宿主机来看就是一堆 packet,应该也没解析成 tcp 包
ggabc
2021-01-26 13:39:09 +08:00
从哪看的 20 ?
bruce0
2021-01-26 13:43:31 +08:00
win10 tcp 连接数不可能是 20, 我前几天 压测东西, 自己用 go 写的, 目标是 3000 个链接(你没看错,就是 3000 个 tcp 连接)

最后连接数是 2800+ 压测了半个小时左右
opengps
2021-01-26 13:50:26 +08:00
我开发 socket 时候在 xp 下测试 tcp 入链接就可以超过 6 万了
opengps
2021-01-26 13:51:39 +08:00
印象中,20 个链接是共享文件时候默认限制最大 20 个共同访问,然而这个数字可以自己改成不限制
Mithril
2021-01-27 08:34:50 +08:00
@ggabc
@bruce0
@opengps
Windows 的 EULA 里面写的。打开 Windows 10 的 EULA,直接搜 Device Connections 那段。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/748468

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX