Forum Discussion

Travis_Hysuick_'s avatar
Travis_Hysuick_
Icon for Nimbostratus rankNimbostratus
Jul 08, 2013

iRules vs Policies for Pool Selection?

Hi all,

 

I hope this is the appropriate forum for the topic, I'm just looking for some info / guidance regarding the use of an iRule versus an LTM Policy for pool selection.

 

We have several WebSphere-based applications that are currently behind our LTMs. While the hostname portion of the URI is common across the WAS implementation, the URI path changes for each app, so instead of assigning a default pool to the vs, I've written an iRule to send the user to the appropriate pool in a dynamic fashion. This works as expected.

 

In 11.4, LTM HTTP classes have been deprecated and in their place, LTM Policies have been introduced, which are another way to accomplish the same task (and doesn't require any 'handiness' with TCL). My question to the forum folks is which method would be recommended based on concepts such as performance and / or overhead.

 

Will a class/policy yield better performance than an iRule or vice versa?

 

Thanks in advance for any feedback you can provide.

 

 

3 Replies

  • i understand generally native configuration (i.e. configurable via webui) gives better performance than irule.

     

     

    just my 2 cents
  • I think you'd be hard pressed to see any significant performance differences between an LTM policy and a simple but comparable iRule. The real differences come at the expense of complexity, but then iRules will always offer greater flexibility.
  • Thanks for the feedback guys.

     

    The iRule I've written is intended to perform dynamic pool selection based on the URI path and it works pretty slick without being complex (it's just a simple switch with 4 cases).

     

    The alternative that I've tested an verified with an LTM policy is doing a first match on the URI path, and a corresponding rule for each pool, but based on the testing I've done so far I don't see any real performance difference.

     

    When it comes to doing something a little more in depth (like doing a stream iRule with find/replace functionality) I would imaging based on the amount of traffic hitting that virtual server, that the 'penalty' would be a little more significant.