Forum Discussion
XuYang1795
Jan 27, 2022Copper Contributor
IIS ARR healthcheck not sent to all the configured host
We have a IIS RP configured for 50+ target servers. some of the servers shutdown when they are not used. After RP restarted, health check try to reach all the servers, but after a while, RP doesn't even send healthcheck to some servers. (this was confirmed by using wireshark on the target host, no traffic come in from the RP). Using netstat, I saw mulitple healthcheck send to the same down servers with SYN_SENT state. But some servers do not have any healthcheck request sent.
There is no iis log or trace to help us find when those servers stop receiving healthcheck and if there is any limitation on the total pending healthcheck.
The health test interval for these servers varies between 5~30 sec, while the timeout between 10~30.
Any suggestion on what to do to make health check hit all servers?
Thanks,
Xu
- XuYang1795Copper ContributorThe problem is identified and workarounded:
IIS app pool has a default idle timeout set to 20min. When the healthcheck is sent to the target which is shutdown, no response will get back to IIS. After 20min, the idle timeout will kick in, and stop sending healthcheck to everyone (even those healthy ones). I think this is a design flaw: why would one server down would cause IIS not sending healthcheck to others?
After setting the idletimeout to 0, the problem was "fixed".
Xu