Forum Discussion

Tara_112308's avatar
Tara_112308
Icon for Nimbostratus rankNimbostratus
Aug 22, 2012

LB_FAILED triggered when there are available members in the pool

I pieced together an irule to meet my needs to allow each node in a pool to get to 1000 connections (set on the pools themselves) then when there is no node available (LB_FAILED) the F5 serves up a webpage with the html code put in the irule.

 

 

Before I resorted to an irule, I tried using the priority group method which in theory worked... however we had many complaints of customers getting sent to the lower priority group w/ a splash page when the higher priority group was not full. I had evidence of this in stats & opened a case with F5 which never actually got resolved & my rep suggested I use an irule instead.

 

 

Here is my current iRule:

 

 

 

when RULE_INIT {

 

Set an HTML response to sent to clients who make a request while the VIP is over the max connection count

 

set ::html_content "Insert busy splash page html content here"

 

}

 

when LB_FAILED {

 

HTTP::respond 200 content $::html_content

 

}

 

 

 

 

 

 

 

As a work around I've doubled the allowed connection limits in the pools so the iRule will allow it to get to the actual limits I want, however I don't want it to all of a sudden start allowing the entire 2000 connections in on 1 node. Other than that, the rule works amazing & haven't had any other customer complaints. Any help would be appreciated!

 

  • Richard__Harlan's avatar
    Richard__Harlan
    Historic F5 Account
    If you are running a LTM with CMP you could be running into the issue where connection limits are spread across all the TMM. So for each TMM the connection limit per pool/member is 1/n the total count. There could be cases were if too many connection cluster to one TMM then the TMM in question will run into the connection limit issue. You could also run into this issue if the VIP in question has been demoted from CMP.

     

     

    http://support.f5.com/kb/en-us/solutions/public/8000/400/sol8457.html?sr=23368750

     

  • spark has some suggestion in the following discussion topic. anyway, i am not sure if it is practical in case of http.

     

     

    CMP compatible Connection Limit per pool member (spark's message)

     

    https://devcentral.f5.com/Community/GroupDetails/tabid/1082223/asg/50/aft/1174552/showtab/groupforums/Default.aspx

     

     

    by the way, about ::html_content, i think you may use static global variable instead which is cmp compatible.

     

     

    static wiki

     

    https://devcentral.f5.com/wiki/iRules.static.ashx

     

     

    hope this helps.