ARR Web Farm Health Test 发送数百个请求

ARR Web Farm Health Test 发送数百个请求

我有一个使用健康测试功能 (healthcheck) 的 IIS ARR/Web Farm。测试的设置是每 30 秒检查一次给定的 URL。它确实每 30 秒检查一次,但每次检查都会发送数百个请求。

有人见过这种情况吗?你知道如何预防吗?

Web 场配置:

<webFarm name="wf_site.at.your.domain_webservices_crosscampusenrollment" enabled="true">
    <server address="site1.at.your.domain" enabled="true" />
    <server address="site2.at.your.domain" enabled="true" />
    <applicationRequestRouting>
        <protocol timeout="00:00:30" reverseRewriteHostInResponseHeaders="false">
            <cache enabled="false" queryStringHandling="Accept" />
        </protocol>
        <affinity useCookie="true" cookieName="ARRAffinity_site.at.your.domain_webservices_crosscampusenrollment" />
        <loadBalancing algorithm="WeightedRoundRobin" />
        <healthCheck url="http://site.at.your.domain/webservices/CrossCampusEnrollment/healthcheck" />
    </applicationRequestRouting>
</webFarm>

这里有一个IIS 日志要点

服务器信息:

Windows Server 2012 R2 Standard - Build 9200
IIS 8.5 - 8.5.9600.16384
URL Rewrite Module 2 - 7.2.2
ARR 3.0 - 3.0.1750
WFF - 1.1.1292

答案1

根据Scott Forsyth 博客上的这条评论,当您在具有多个应用程序池的服务器上拥有 Web 场时,可能会发生这种情况:

问题是 ARR 没有专门的工作进程来进行健康测试,所以它只是使用所有的 w3wp.exe 工作进程。这意味着如果你有多个应用程序池或一个网络园,那么你将有一个非常疯狂的健康测试模式。

消除它的唯一方法是减少应用程序池和/或工作进程的数量。

相关内容