For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

rsacheen's avatar
rsacheen
Icon for Nimbostratus rankNimbostratus
Apr 25, 2018

HTTP::collect performance impact

Does Collecting of HTTP request payload effect the performance of LTM?

Suppose if I collect 10K of data every request. Do I have to take any caution reagrding the performance in the case of iRule mentioned below?

Is it necessary to use HTTP::release in my case? I read somewhere that data is implicitly released.

Are there any suggestions/advice for the iRule below, so that it runs better performance wise.

when HTTP_REQUEST {
        if { [HTTP::host] contains "test-main" } {
           pool pool_test-main
           return
        } elseif { [HTTP::host] contains "test01" } {
                 pool pool_test01
                 return
        } else {
                pool pool_test02
                
                if {[HTTP::uri] contains "web_dummy"} {
                         collect
                        HTTP::collect [HTTP::header Content-Length]
                } 
                return
        }
}

when HTTP_REQUEST_DATA {
       foreach x [split [HTTP::payload] "&"] {
       if { $x starts_with "user_ref=" } {
            set user_ref [lindex [split $x "="] 1]
            if { [matchclass $user_ref equals CX_SERVICE_ID] }{
               HTTP::uri [string map {"/web_dummy" "/notify_dummy"} [HTTP::uri]]
               pool pool_test00
               return
               }
           }
       }
    HTTP::release
    return
}

1 Reply

  • Tough to answer as the impact depends on existing resource consumption on the device. I have utilized it for multiple customers with varying configuration complexity without any noticeable impact, if it helps.