IIS、多CPU核心、应用程序池和工作进程:单个站点的最佳配置?

10
我们使用Kentico CMS,并与他们交换了有关Web Garden部署的电子邮件。
我们在一台具有8个CPU核心的服务器上运行单个站点。根据Kentico的建议,我们没有改变应用程序池Web Garden设置,即将最大工作进程数设置为1。
我们的经验是该站点仅使用一个CPU内核-其他内核则处于空闲状态。当我发邮件询问他们时,他们的回复是操作系统/IIS会处理这个问题并在必要时使用其他内核,尽管应用程序池只有一个工作进程。
现在,我非常尊重Kentico团队,但这对我来说似乎不正确?
显然,如果我们想要使用所有内核,我们需要允许8个工作进程(并在SQL服务器中实现会话状态存储)。
谢谢
托尼

我尝试运行了一个测试,向Web应用程序池发送多个请求,是的,所有CPU核心都被使用,最大工作进程= 1。我在资源监视器中观察到了这一点。 - mjb
@mjb 你测试过ASP.NET还是经典的asp了吗?我有12个核心,但IIS只使用了1个。我的应用程序池设置为.NET CLR版本v4.0,托管管道模式设置为Classic。 - MeSo2
2个回答

5

我建议运行perfmon 24小时,看看你能否确定正在使用哪些资源。实际上它们可能已经在所有核心上运行了...此外,如果他们的Web应用程序是一个高度线程化的系统,那么它将充分利用多个核心(至少我们的应用程序是这样)。线程而不是工作进程是实际计算处理器利用率的因素。


我已经尝试了一项测试,通过监视资源监视器中的CPU负载。然后我运行多个请求到Web,我可以看到所有CPU都在使用,应用程序池设置为使用最大工作进程= 1。 - mjb

2

不确定您是否在ServerFault上得到了答案,但无论如何ASP.NET是多线程的,在单个工作进程中有几个线程,每个线程为一个请求提供服务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接