我们有一些 Windows 服务器(2008 R2),我们遇到了一个奇怪的网络问题。我能描述的最佳方式是,只有在互联网延迟(20ms 或更长)的网络上运行时,我们才会遇到低吞吐量(但高带宽)。
症状:
1.) 有问题的服务器位于两个一级数据中心,拥有良好、宽阔的互联网管道。
2.)如果我们使用 RDP 连接到数据中心 #1 中的服务器,我们可以运行 SpeedTest.NET 测试并获得数百兆的下载/上传速度
3.) 如果我们在服务器上下载 CentOS ISO 映像(基本上是一个大文件),我们可以获得 6 - 20 兆字节/秒的带宽
4.) 如果我们从另一个数据中心连接到在 FreeBSD 9.0 服务器(也在数据中心)上运行的 Web 服务器(因此,dc #1 中的 freebsd,dc #2 中的 windows 服务器)并下载一个大文件(100 MB),我们也会获得出色的性能。(同样,每秒几兆字节)
5.) 如果我们从 DC #1 中的一台服务器连接到 DC #1 中的另一台 Windows 服务器,我们会获得非常棒的性能(接近 1gb/秒)。
6.) 如果我们从 DC#1 中的 Windows 服务器盒连接到 DC#2 中的 Windows 服务器盒,我们会得到~450 千字节/秒(吞吐量真的很差)。 但我们可以打开多个浏览器/窗口并根据需要(同时)下载任意多次,并且仍然可以确切地相同的450 kb/秒。
- 我们在 DC#1 和 DC#2 中的 Windows 服务器之间运行了 NTTTCP 和 netperf 的 Windows 端口,在我们发现的每种情况下,每次下载的吞吐量都相同(~450 kb/秒)。
8.) 我们进行了一系列其他测试,这些测试使我们能够最终排除防火墙等作为问题的根源(另请参阅测试 4,因为 FreeBSD 服务器通过与 Windows 服务器相同的 [硬件] 堆栈进行通信...)
我们尝试禁用一对 Windows 服务器上的 TCP 窗口缩放,但没有效果。
因此 ServerFault 社区:这似乎一定是某种 Windows TCP 设置——是什么导致了这种问题?
编辑
1.)我们安装了 VMWare/CentOS在出现此问题的 Windows Server 2008R2 机器上,通过桥接网络,你猜怎么了吞吐量很大!所以,Windows 主机上的 VMWare 映像性能很好,想想看!
答案1
尝试禁用 TCP 烟囱和自动调节:
netsh int tcp set global chimney=disabled
netsh int tcp set global autotuninglevel=disabled