Forum Discussion

Puli's avatar
Puli
Icon for Nimbostratus rankNimbostratus
Dec 13, 2011

performance and impact of STREAM Expression

We created a new iRule, which will replace links from one doamin to another in page content.

 

Below is the iRule

 

 

if {[HTTP::header vaule Content-Type] contains "text"}{

 

STREAM::expression {@http://doaminA@http://doaminB@}

 

STREAM::enable

 

}

 

}

 

Need clarification on performance.

 

1) What is the performance impact of using STREAM profile, i understand bigip will look at page content but is it detrimental for the bigip for a website that gets 2 pageviews per seconds. Does it impact bigip ?

 

 

2) Does bigip consume more memory with STREAM processing ?

 

What the impact on memory utilization.

 

The size of the pages mostly ranges from 1-1.5MB

 

 

Would appreciate if anyone is using in production with lot more pageviews.

 

 

Appreciate feedback and comments.

 

thanks,

 

Puli.

 

  • Puli's avatar
    Puli
    Icon for Nimbostratus rankNimbostratus
    Any thoughts ? appreciate any thoughts and feedback.

     

    Our BigIP LTM admin is concerned about performance using the STREAM profile.

     

    Wanted if other people have used it sucessfully without issues.
  • Hi Puli,

    I haven't done or seen any stream specific performance testing. I've implemented it at a number of customer sites though. I wouldn't add the iRule to a unit which is already at 80 or 90%. But I'd be confident in using it on a lower unit with lower utilization.

    Make sure to disable the stream filter in HTTP_REQUEST in your rule though:

    
    when HTTP_REQUEST {
        Disable the stream filter by default on all requests
       STREAM::disable
    }
    when HTTP_RESPONSE {
        Check if response is text
       if {[HTTP::header value Content-Type] contains "text"}{
    
           Set expression to find/replace and enable the stream filter
          STREAM::expression {@http://domainA@http://domainB@}
          STREAM::enable
       }
    }
    

    If you want to get estimates before putting it into production, you could enable timing on the iRule and test it on a test virtual server or test LTM:

    http://devcentral.f5.com/wiki/iRules.timing.ashx

    Aaron
  • Puli's avatar
    Puli
    Icon for Nimbostratus rankNimbostratus
    thanks very much Aaron. appreciate your time.