Heath Check Spamming Server [Answered]RSS

3 replies

Last post Jun 18, 2020 09:40 AM by Elendil Zheng

  • Heath Check Spamming Server

    Jun 15, 2020 10:09 PM|carlsonad|LINK

    We've got a web farm setup with the following heath check configuration:

    <healthCheck url="http://localhost/HealthTest.html" interval="00:00:30" timeout="00:00:30" liveTrafficFailureCodes="502-" maxLiveTrafficFailures="2" liveTrafficFailurePeriod="00:00:05" />

    We've noticed recently that the health check url is being called more frequently than the 2 requests per minute that we expected. 

    Here's some data from the IIS logs:

      Time Url Requests Per Minute
      3:56:00 PM /HealthTest.html 64
      4:21:00 PM /HealthTest.html 54
      4:22:00 PM /HealthTest.html 46
      4:23:00 PM /HealthTest.html 82
      4:24:00 PM /HealthTest.html 58
      4:25:00 PM /HealthTest.html 72
      4:26:00 PM /HealthTest.html 46
      4:27:00 PM /HealthTest.html 82
      4:28:00 PM /HealthTest.html 48
      4:29:00 PM /HealthTest.html 62
      4:30:00 PM /HealthTest.html 64

    I found this youtube video that mentioned that a request will be made for each application pool that exists on the server that is hosting ARR.  We do have many application pools on that server.  

    Is that how it works?  If so, is there anyway to change the behavior so only a single application pool makes the health check?

  • Rovastar Rovastar

    5468 Posts

    MVP

    Moderator

    Re: Heath Check Spamming Server

    Jun 15, 2020 11:14 PM|Rovastar|LINK

    Health check are a bit of a pain. They run for each check for every worker process that is running. So if you have multiple app polls/ worker processes you will get a load of duplicated checks.

    The workaround solution is to have put many of your applications running just under 1 pool.
    Troubleshoot IIS in style
    https://www.leansentry.com/
  • Re: Heath Check Spamming Server

    Jun 17, 2020 03:58 PM|carlsonad|LINK

    Thank you Rovastar.

    I'm hoping someone from Microsoft can confirm there is no way to work around this besides having to reduce the number of application pools on the server running ARR.

  • Re: Heath Check Spamming Server

    Jun 18, 2020 09:40 AM|Elendil Zheng|LINK

    Hi carlsonad

    There is no built in work around in ARR. 

    According to https://weblogs.asp.net/owscott/arr-health-checks-week-34#comment-374

    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 resolve that is to consolidate your app pools on your ARR server, or to live with the heavy testing pattern.

    Otherwise you'll have to implement health check by yourself, something like creating a windows service that visit the health check page every 30 secs, and shutdown application when health check failed(Use IIS API). If the health check is critical for your business I suggest you can write your own health check component. It's not that difficult.

    MSDN Community Support
    Please remember to "Mark as Answer" the responses that resolved your issue.