IIS 2016 上传速度慢

IIS 2016 上传速度慢

我在安装了 IIS 的两台虚拟机上运行 Server2016,使用 NLB 平衡流量和共享配置/ssl。我的上传速度似乎被限制在 256KB/s (2Mb)。我的互联网连接是千兆光纤。

我进行了一些测试,试图找出问题所在。我创建了一个带有上传和提交按钮的简单 .net web 应用程序,并上传了一个 28MB 的文件。

  • 当我把应用程序放在我的IIS框上时https://domain.tld/upload,根据 chrome dev tools 来看,耗时 1.9 分钟,大约又是 256KB。

  • 我使用 Visual Studio 来制作它,所以我只需通过 IIS Express 在我的桌面 Win10 机器上运行该应用程序,并通过我的路由器打开随机端口,上传花费了 761 毫秒,大约为 37MB/s

我重复了几次这些测试,得到了几乎相同的结果。考虑到我是从同一个盒子上传和下载的,它实际上使用了大约 74MB/s,或者说我理论上的千兆位上传和下载速度的 30%。所以我觉得这不是 ISP 的问题。

我也尝试过打破 NLB 群集并将所有流量路由到一个框,结果相同。

关于 IIS 为何这么慢,您有什么想法吗?

答案1

发布此信息以防其他人好奇......问题出在 NLB。

https://blogs.technet.microsoft.com/netgeeks/2017/07/13/the-nlb-deployment-reference-all-you-need-to-know-to-implement-and-deploy-microsoft-network-load-balancing/

对于出站流量来说,这没什么大不了的,但您需要做一些网络调整才能使其“正常”工作。

  • 单播:由于两个节点的 MAC 都被替换为相同的“集群”MAC 地址,您的网络交换机将无法正常工作,因为它无法正确更新其路由表并淹没所有端口。解决方案是使用集线器或使用单独的 VLAN。
  • 多播:每个节点保留其 MAC 地址并获得额外的多播 MAC。交换机无法“学习”MAC,因为它未连接到物理 NIC,因此它们要么丢弃数据包,要么像单播一样泛洪。解决方案是在您的网络中添加静态 ARP 和 MAC 条目。
  • 多播 IGMP:与多播相同,但它需要具有 IGMP 功能的交换机,以便它们可以“了解”您的多播应该如何工作。所以没有解决方案,它要么有效,要么无效。

经过进一步测试,当将大文件上传到我们的 IIS 集群时,我们会看到同一交换机上的其他机器/虚拟机上的网络性能非常糟糕,所以这似乎证实了洪水问题。

就我的具体情况而言,在我的工作环境中,网络人员对任何网络基础设施更改都说“不”,包括启用 IGMP。

我们只想使用两台服务器来实现高可用性,因此我们决定创建一个双节点故障转移群集,其中一个共享磁盘用于见证,另一个共享磁盘用于 IIS 共享配置和集中式 SSL。它不是主动-主动的,但我们可以在修补等情况下保持正常运行时间。我知道不建议 IIS 进行群集,但在没有硬件负载平衡器或可以正确配置的网络的情况下,这必须这样做 :)

相关内容