0

I have an IIS ARR/Web Farm using the Health Test feature (healthcheck). The settings on the test are to check the given url every 30 seconds. It does check every 30 seconds, but it sends hundreds of requests during each check.

Has anyone seen this before? Do you know how to prevent it?

Web Farm Configuration:

<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>

Here is a gist of the IIS log.

Server Info:

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
smaglio81
  • 143
  • 6

1 Answers1

2

According to this comment on Scott Forsyth's blog, this can happen when you have a web farm on a server with multiple app pools:

The problem is that ARR doesn't have a dedicated worker process to do the health testing with, so it just uses ALL of the w3wp.exe worker processes. What that means is that if you have multiple app pools, or a web garden, then you'll have a pretty crazy health testing pattern.

The only way to eliminate it is to scale back on the number of app pools and/or worker processes.