我应该对我的生产服务器使用 processModel autoConfig="true" 还是应该为 processmodel 自定义值?
编辑我确实遇到了速度变慢的问题。CPU 已达到最大值。应用程序本身并不占用太多 CPU。但我们确实将 EF 与 SQL Server 结合使用。
答案1
嗯,默认值还不错。可能需要检查 minFreeThreads 和 minLocalRequestFreeThreads:这两个都设置为“8”,而大多数其他参数则根据核心数量进行缩放。
最后,这取决于您的应用程序。服务器不会考虑您的代码对处理器的占用程度,因此如果您有一个真正占用大量处理器/内存的页面,您可能需要进入并调整默认值,以便同时运行更少的进程。
相反,如果您的页面资源确实很少,您可能能够调整默认值。
这些都是微调。如果您设置了 autoConfig="true" 并且没有发现任何问题,那么一切正常。如果出现速度减慢和错误,则需要重新检查配置。
答案2
我会把它留给真的。您还可以使用其他值,因为自动配置通常没问题。
微软知识库中有一篇文章,其中几乎包含您可能需要的所有信息:
*从 ASP.NET 应用程序发出 Web 服务请求时出现争用、性能不佳和死锁
我将向您介绍我针对上述文章中处理的一些具体项目所做的研究。以下信息适用于 IIS6,注释适用于 IIS7(如适用)。
将处理器工作线程池从 25 增加到至少 100
线程池大小的默认值为 100,因为自动配置是真的。
涵盖的价值观自动配置是
- 最大工作线程数
- 最大 IoThreads
- 最大连接数
有一个值仍然是 25,必须更改,即 –ASPProcessorThreadMax,这只能在 IIS 元数据库中设置(通过广告工具工具)在 IIS6 中可用。[IIS7 的等效工具是处理器线程最大数价值]
所以我选择不改变机器配置设置,因为它们很好,并且还有其他参数会因关闭而受到影响自动配置而是改变ASPProcessorThreadMax通过 IIS 元数据库将其从 25 更改为 100(这是更改此值的唯一方法)。
例如
cscript %SYSTEMDRIVE%\Inetpub\AdminScripts\<nowiki>adsutil.vb</nowiki>s SET W3SVC/AspRequestQueueMax 100
每台服务器的最大连接数
最大连接数 这自动配置将此值设置为 12*CPU 数量,这就是您一次连接的每个地址可以建立的连接数。