我想知道在 machine.config 中修改 processModel 是否会对 IIS express 集成模式应用程序产生任何影响?
我正在尝试将 maxWorkerThreads 修改为至少 100,因为我正在使用 WCAT 比较 Windows 7 上的普通 IIS 与 IIS express,以查看 scott 说 IIS express 没有连接限制时是否正确。
尽管 IIS express 确实显示了 30+ 个请求同时执行,而正常的 IIS 限制为 10,但两者之间的实际每秒请求总数相当,并且 IIS express 具有更高的 CPU 使用率,平均 70 个请求排队,而 0 个请求等待正常IIS!而四核 i7 的 CPU 仅占 70% 左右。肯定有优化的空间吗?
额外细节
我已将在 Windows 7 上运行的 WCAT 结果(相同的脚本)上传到 http://d1yb9lkqglrfzu.cloudfront.net/IISExpress-100VU-MachineConfig.zip
- 与普通 IIS 相比,IIS Express 的每秒请求数和处理的总事务数略高。
- IIS Express 一次最多执行 50 个请求,而 Windows 7 上的普通 IIS 按照设计限制为 10 个。
- IIS express 使用了 30% 以上的 cpu,可能是因为它一次处理了额外的请求。
- 但平均而言,Express 请求需要更长的时间才能完成。请参阅请求执行时间性能计数器和时间分析(第一个和最后一个字节)。Express 只能在总请求数上击败 IIS,因为它一次可以处理更多请求!
理论
即使没有设置跟踪,IIS express 也会将每个请求打印到命令行窗口这一事实是否会减慢它的速度。
我还注意到在 IIS express applicationhost.config 中注册的许多附加模块不在 IIS applicationhost.config 中。那么额外的调试/跟踪模块可能会导致问题。
我注意到 IIS express 没有 FileCache 和 HTTPCache 模块。这可能是为什么?
如果 IIS express 不受限制,我希望 asp.net 专家能够阐明这些结果是如何可能的。