我正在开展一个项目,将 Web 服务器从 2008 升级到 2012。我已经构建了 2012 机器,并准备好使用从当前生产的 2008 机器克隆的站点代码,但在负载测试时,我发现新机器的出站带宽比旧机器高得多。我仔细研究了所有能想到的可以解释这一问题的方法,但还是陷入了困境。(压缩设置,甚至对 apphost.config web.config machine.config 等进行了头对头比较)这些服务器运行相同的代码、相同版本的 .NET,当然最大的区别是操作系统版本 - 但除此之外,它们是相同的。
示例:我现在有一台旧服务器和一台新服务器,负载相同,每台服务器有 100 个用户,通过负载均衡器路由,因此流量应该大致相等。
- 2008 字节输入:平均 90kbps
- 2012 字节输入:平均 86kbps
(非常接近,反映了它们具有相同数量的连接,对吗?) - •2008 字节输出:平均 64kpbs
- •2012 字节输出:平均 136kbps
在这个规模上,这不是什么大问题,但这只有 100 个用户。将其乘以我们服务器池中的 40-50k 个用户,这个出站带宽就会成为一个巨大的问题。我们想在下周上线新服务器 - 帮帮我!??
更新:我正在向它们两个投放更多流量。以下是带宽不均衡的示意图。目标是让底部图表看起来像顶部图表。
更新 2:我刚刚克隆了一台现有的 2008 机器,并进行了 2012 升级。带宽比例看起来不错,与 2008 机器大致相同。我仍然找不到我的新服务器有什么不同。
答案1
事实证明这是某种压缩问题。这些服务器的压缩缓存不同,因此一些本应压缩的文件没有被提供,因此占用了更多带宽。我最终将压缩缓存从一台服务器复制到另一台服务器,出站带宽匹配得很好。
我原本期望当用户从服务器请求尚未压缩的文件时,服务器会压缩文件并构建缓存,但显然这并没有发生。