使用IIS express的machine.config和processmodel

时间:2011-01-21 18:05:54

标签: asp.net iis iis-7.5 webmatrix iis-express

我想知道修改machine.config中的processModel是否会对IIS Express集成模式应用程序产生任何影响?

我正在尝试将maxWorkerThreads修改为至少100,因为我在Windows 7上使用WCAT比较正常的IIS与IIS express,看看scott是否正确,他说IIS express没有连接限制。

虽然IIS express确实显示30个请求同时执行,而正常的IIS限制为10,但实际的每秒请求总数在两者之间是可比较的,IIS表示cpu使用率更高,平均70个请求排队对0个请求等待正常的IIS!而四核i7的CPU仅为70%左右。肯定还有优化的空间吗?

其他详细信息

我已经在Windows 7(相同的脚本)上运行了WCAT结果 http://d1yb9lkqglrfzu.cloudfront.net/IISExpress-100VU-MachineConfig.zip

  1. IIS Express每秒的请求数量略高,并且提供的事务总数比普通IIS高。
  2. IIS Express一次最多执行50个请求,而Windows 7上的普通IIS按设计限制为10个。
  3. IIS express使用高出30%的cpu,可能是因为它一次处理的额外请求。
  4. 但平均而言,Express请求需要更长时间 才能完成。请参阅请求执行时间性能计数器和时间分析(第一个和最后一个字节)。 Express只能在服务的总请求中击败IIS,因为它可以一次处理更多请求!
  5. 理论

    1. 即使设置了跟踪设置,IIS express也可以将每个请求打印到命令行窗口,但这样做会减慢它的速度。

    2. 我还注意到在IIS express applicationhost.config中注册了很多其他模块,这些模块不在IIS applicationhost.config中。然后额外的调试/跟踪模块可能导致问题。

    3. 我注意到IIS express没有FileCache和HTTPCache模块。这可能是为什么?

    4. 我希望asp.net专家可以澄清如果IIS express不受限制,这些结果是如何实现的。

1 个答案:

答案 0 :(得分:6)

Machine.config设置适用于在IISExpress中运行的asp.net应用程序。只需确保匹配.Net版本和位数(iisexpress仅在32位模式下运行,所以

  • %windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config
  • %windir%\Microsoft.NET\Framework\v4.0.30319\CONFIG\machine.config 对于基于CLR版本的文件是正确的。不要编辑Framework64目录中的那个。

IIS Express不会限制连接,但操作系统本身可能存在一些限制。 性能不是iis express的首要任务。 IIS Express不会故意限制执行,但不会完全利用CPU。 您的性能开销观察很有趣。我将探讨可能导致它的原因。您是否尝试在循环中运行单线程客户端应用程序以查看IIS与IIS Express的比较。