(注意:我浏览了相关问题列表,但找不到可以回答这种情况的问题。)
我遇到了一个很难发现原因但很容易描述的问题:如果 Windows 防火墙和一些相关服务(Windows 防火墙、IKE、IPSec Policyagent、基本过滤引擎)被停止,那么 IIS 性能就会翻倍(从大约 650 到 1300 RPS)。
不用说,停止 Windows 防火墙不是一个选择。
Repro 场景很简单:只需创建一个 IIS 网站并提供一个图像即可。http://服务器:9876/image.png. 无论是否启用防火墙,CPU 的使用率都保持在较低水平,但与用户时间 % 相比,CPU 特权时间 % 有所增加。
有人见过这种情况吗?我们是否缺少配置设置?
环境是 Windows Server Enterprise 2008 SP2、II7。谢谢。
答案1
当然,Windows 防火墙会降低性能。
它必须检查进出服务器的所有数据包。
这需要 CPU。
如果您需要提高服务器的性能,那么您必须关闭 Windows 防火墙并安装硬件防火墙。
答案2
我想问一下,为什么不能关闭 Windows 防火墙?如果您在组织内的计算机上运行 IIS,我认为最好在网络前安装硬件防火墙,而不是依赖 Windows 等软件防火墙。即使这是一台个人计算机,我也不会在没有某种硬件防火墙的情况下将计算机直接连接到网络。
答案3
如果你不针对 Windows 防火墙做任何特定的事情,你可以尝试使用其他防火墙,也许效果会更好。我写这篇文章时使用的是韋普夫心里。
答案4
我想知道是否是因为您使用非标准端口 9876 进行 HTTP 通信。您是否尝试过 IIS 的默认 HTTP 端口 80?结果是否相同?
如果结果相同,那么我怀疑除了关闭 Windows 防火墙之外,您也无能为力。
软件防火墙做承担开销。