On Mon, Oct 10, 2011 at 10:32 PM, Ricky Boone <ricky.bo...@gmail.com> wrote:

> I am trying to troubleshoot an issue with our load balancer, and how it
> considers a backend server alive or dead.
>
> The servers are running IIS 6 (Win2K3), running an ASP.NET web service in
> its own application pool.  The pool is set with multiple (4, at the moment)
> worker processes.
>
> The problem occurs when the worker processes are starting, or when they
> recycle/refresh due to memory or other thresholds set in the application
> pool.  The load balancer keeps throwing traffic at the server, even though
> it isn't ready.  It shows as an increasing number of Current Connections on
> the backend server.  Where the count normally never exceeds 10-15, it
> usually increases to a few dozen trough a couple hundred before the worker
> processes finally warm up on their own.
>
> I'm aware of ASP.NET and how it caches on the first hit (per worker). We
> have a process (using ApacheBench) to warm-up the worker processes, however
> if there are unexpected refresh/recycle events, we have to disable the
> backend server, manually warm-up the worker processes, then add it back.
>  Quite hectic.
>
> The issues with the application cannot be resolved (not our application).
>  We want the load balancer to stop sending traffic to a server that is not
> responding to requests promptly, but still provide a way for the load
> balancer to assist with the warm-up process.
>


 I am new to haproxy, But i think I can help you here.

You can use a custom health check aspx page and make haproxy do health
checks within certain interval of time using "http-check expect". Haproxy
will take the node down if, reply is not returned within specified period.


Ex :

         backend web-backend
        balance leastconn
        option httpchk GET /check.aspx HTTP/1.0
        http-check expect string Success
        server node1 192.168.8.1:80 check inter 3000 rise 2 fall 3 maxconn
250

- Karthik Iyer

Reply via email to