【问题标题】:How do I confirm whether Application Warm-Up plugin works?如何确认应用程序预热插件是否有效?
【发布时间】:2011-01-24 20:02:17
【问题描述】:

我有一个使用 WCF 服务的 Web 应用程序。 IIS 重置或应用程序池回收后,两者的预热速度都很慢。因此,作为一种可能的解决方案,我为 IIS 7.5 安装了 Application Warm-Up 并为网站和 wcf 服务设置了它。 我担心的是,它似乎没有任何区别 - 我第一次访问该站点时仍然需要很长时间才能将其显示出来。我检查了事件日志,没有错误。所以我想知道是否需要为该模块工作做任何特别的事情。

【问题讨论】:

    标签: iis iis-7.5 warm-up


    【解决方案1】:

    在 IIS 管理器中,当您进入站点,然后进入应用程序预热时,右侧有一个“操作”窗格。我认为你需要以下两件事:

    1. 单击添加请求并添加至少一个 URL,例如/YourService.svc

    2. 点击设置,勾选“Start Application Pool 'your pool' when service started”

    这两个你都有吗?如果您没有检查第二个设置,那么我认为在用户点击该网站之前不会发生预热(这可能会破坏您的情况下预热模块的目的)。

    【讨论】:

    • 我确实有一个指向我的服务的请求 url,并且我确实选中了“启动应用程序池”。而且,如果我离开该框几分钟,然后再次尝试访问该站点,则加载第一页或从 WCF 服务获取响应需要很长时间。
    • 我对这个插件有点失望,最终可能会编写一个简单的 Windows 服务,每分钟左右 ping 站点和 wcf 服务。
    • 当我试用它时,我可以看到我的应用程序池的 w3wp.exe 在 IIS 启动后立即出现在任务管理器中。几分钟后,工作进程是否仍在为您运行?在Application Pools -> Advanced Settings中,是否设置了“idle time-out”,或者很短的回收时间间隔?
    【解决方案2】:

    Microsoft 的一个新模块是 IIS 8.0 的一部分,它取代了之前的预热模块。此Application Initialization Module for IIS 7.5 可单独下载。

    该模块将创建一个预热阶段,您可以在其中指定在服务器开始接受请求之前必须完成的请求数量。最重要的是,它将提供重叠的进程,以便新启动的进程在准备好之前不会为用户提供服务。

    我在How to warm up an ASP.NET MVC application on IIS 7.5? 回答了一个类似的问题并提供了更多详细信息。

    【讨论】:

      【解决方案3】:

      After you have fixed possible software/code optimizations 允许我建议每个代码都需要通过硬件 cpu 进行处理。当我们使用多核 cpu 并安装更多 GIGS 的 ram 并将标准 UTP 5e 电缆的 UTP-6 电缆插入到服务器上时,我们的服务器的性能飙升......这并不能解决你的问题,但如果你痴迷于速度和我们一样,那么你会对瓶颈速度的各个维度感兴趣。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-05
        • 2014-01-14
        • 1970-01-01
        • 2018-05-23
        • 1970-01-01
        • 2017-03-22
        • 1970-01-01
        相关资源
        最近更新 更多