IIS 6.0通配符映射基准测试?

时间:2008-11-27 09:38:37

标签: asp.net asp.net-mvc iis-6

我很快就爱上了ASP.NET MVC beta,我决定在部署到我的IIS 6托管环境时不会牺牲的一件事就是无扩展的URL。因此,我正在考虑添加通配符映射,但我读到的所有内容都表明在使用此方法时可能会遇到性能损失。但是,我找不到任何实际的基准!

这个问题的第一部分是,你知道我在哪里找到这样的基准,还是只是一个未经测试的假设?

问题的第二部分是关于我在我们的开发服务器上通过100Mbs连接使用jMeter运行的2个负载测试。

背景资讯

我们的托管服务提供商拥有4Gbs可突发的互联网管道,我们的VLAN拥有1Gb主干网,因此我可以通过办公室局域网生成的任何东西都可以很好地转换为托管环境。

测试场景是加载了几个图像/ css文件,因为假设性能点击来自请求现在通过ASP.NET ISAPI过滤器传递的文件,而这些文件通常不会通过它。每个测试包含50个运行请求脚本的线程(模拟用户),每个线程1000次迭代。每项测试的结果发布在下面。

测试结果

没有通配符映射:

Samples: 50,000
Average response time: 428ms
Number of errors: 0
Requests per second: 110.1
Kilobytes per second: 11,543

使用通配符映射:

Samples: 50,000
Average response time: 429ms
Number of errors: 0
Requests per second: 109.9
Kilobytes per second: 11,534

两个测试都运行温暖(一切都在内存中,没有初始负载偏差),从我的角度来看,性能差不多。在两次测试期间,CPU使用率约为60%,内存很好,网络利用率稳定在90-95%左右。

这是否足以证明通过ASP.NET过滤器为所有内容传递的通配符映射不会真正影响性能,或者我错过了什么?

编辑:11小时而不是一条评论?我希望更多..大声笑

5 个答案:

答案 0 :(得分:6)

克里斯,非常方便。

许多建议性能劣势的人推断,在Web应用程序中处理的代码与标准工作流中处理的代码有些不同/差。基本代码类型可能不同,并确定您将需要MSIL解释器,但MS在许多情况下显示您实际上会看到.NET运行时的性能比原生代更高。

考虑IIS如何成为“所有交易的杰出”也是明智的 - 允许各种配置和覆盖即使在静态文件。其中一些是为性能提升(缓存,压缩)而设计的 - 实际上 - 除非您在代码中重新实现它们,否则将丢失,但其中许多用于其他目的,可能永远不会被使用。如果你的构建满足了你的需求(只)你可以忽略那些其他的部分,并且应该实现某种性能优势,即使ASP.NET存在潜在的劣势。

在我的(非.NET)MVC测试中,我看到了相对于webforms的相当大(10倍或更多)的性能优势。即使静态内容受到轻微打击 - 这也不是一个难以吞咽的药丸。

我并不感到惊讶,你的测试中差异几乎可以忽略不计,但我很高兴看到它备份。

注意:您可以在IIS中禁用静态目录中的通配符映射(我将所有静态文件保存在/ static /(pics | styles | ...)中)。将文件夹切换到应用程序,删除通配符映射,然后从应用程序切换回来 - 静态文件由IIS处理,而不会破坏ASP.NET。

答案 1 :(得分:4)

我认为还有其他一些问题需要检查:

  • 由于我们使用的是.Net ISAPI过滤器,我们可能会使用用于运行应用程序的线程来提供静态资产。我会在审查线程的性能计数器时运行相同的负载测试 - Review this link
  • 我会在运行Microsoft Performance Analyzer时运行相同的负载测试并比较报告。

答案 2 :(得分:1)

我很长时间都在寻找这样的基准测试。感谢名单!

在我的公司,我们在几个网站(标准网络表单,.net1.1和2,iis6)上进行了通配符映射,系统管理员告诉我他们没有注意到任何性能问题。

但是,似乎你强调网络,而不是服务器。那么分数是如此相似可能因为网络瓶颈?只是想......

答案 3 :(得分:0)

那里的帖子非常令人印象深刻,非常感谢。

我们还在评估安全性和性能方面的问题,删除一直用于过滤掉不需要的流量的软件。

您是否会有进一步的基准测试?

干杯,

卡尔。

答案 4 :(得分:0)

似乎测试中的瓶颈是网络利用率。如果性能下降预计会影响CPU使用率(我不确定它是否合理),那么你就不会注意到它的测试结果。

由于这是一个复杂的系统,有许多变量 - 并不意味着没有性能下降。这意味着在您的场景中 - 性能下降可能微不足道。