【问题标题】:Does a webapplication run faster when Maximum Worker Processes is more than one?当Maximum Worker Processes 超过一个时,Web 应用程序是否运行得更快?
【发布时间】:2011-04-07 15:19:34
【问题描述】:

对于 IIS7 当Maximum Worker Processes 超过一个时,Web 应用程序是否运行得更快?

【问题讨论】:

    标签: iis-7


    【解决方案1】:

    通过将最大工作进程数增加到 1 以上,您正在创建一个 Web Garden。所以简短的回答是:可能不会……除非:

    引用Chris Adams前IIS PM的文章I have flowers... should I get a Web Garden?

    Web Gardens 的设计只有一个原因 - 为不受 CPU 限制但执行长时间运行请求的应用程序提供扩展能力,并且不会耗尽工作进程中的所有可用线程。
    示例可能类似于 -
    发出长时间运行的数据库请求的应用程序(例如高计算数据库事务)
    线程被长时间运行的同步和网络密集型事务占用的应用程序
    你必须问自己的问题 -
    服务器当前的 CPU 使用率是多少?
    应用程序的线程在执行什么,它们是什么类型的请求?
    根据上述标准,您应该更好地了解何时使用 Web Gardens。如果您不使用用户界面来配置此功能,则元数据库中的 Web Gardens 等于 MaxProcesses 元数据库属性。
    cscript adsutil.vbs 设置 w3svc/apppools/defaultapppool/maxprocesses 4
    我希望我能从这个博客中获得一些收获,更重要的是,我希望它能帮助你更好地理解这一点……

    您可能想查看“什么是 Web Garden?”来自Deploying ASP.NET Websites on IIS 7.0 [codeproject.com] 说:

    默认情况下,每个应用程序池都使用单个工作进程 (W3Wp.exe) 运行。我们可以使用单个应用程序池分配多个工作进程。具有多个 Worker 进程的应用程序池称为“Web Gardens”。许多具有相同应用程序池的工作进程有时可以提供更好的吞吐量性能和应用程序响应时间。每个工作进程都应该有自己的线程和自己的内存空间。

    【讨论】:

    • 那么具体来说,如果我增加工作进程的数量并使用分布式缓存,它会以一般方式提高我网站的性能吗?
    • @Christophe Debouve:仅在“不受 CPU 限制但执行长时间运行请求的应用程序能够扩展而不用尽工作进程中所有可用线程的情况下”。 ...例如,例如,如果您的服务器旨在接受非常大的文件上传。否则,我不会碰它。您目前是否面临特定的可扩展性问题?
    • 不,我只是想知道我是否应该在我的服务器上应用它,但从你所说的我不需要。谢谢你
    • @Aaron-SolutionEvangelist 我有一个网站生成 RDLC 报告(int .aspx 页面),在某些情况下需要大约 20 秒才能呈现。增加 Max Worker Processes 会提高我的应用性能吗?
    【解决方案2】:

    如果应用程序包含阻止其并行化的锁,WebGarden 比单个工作进程更快。例如,基于 GDI+ 的图像处理。

    有关更多信息,请参阅thisthis 问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 2012-08-12
      • 2016-07-26
      • 1970-01-01
      • 2011-05-12
      • 1970-01-01
      • 2017-03-01
      相关资源
      最近更新 更多