Forum Discussion

xiangyang_zhang's avatar
xiangyang_zhang
Icon for Nimbostratus rankNimbostratus
Apr 28, 2007

Add delay before sending each packet of HTTP response back

The performance of equipment in client side is poor, if BIGIP sends HTTP response packet too fast, it will result in long hiccup in client equipment. We would like to insert 10ms delay before each packet of HTTP response sending back.

 

 

After searching irule commands, it seems no way to do that. Anybody can share experience on this issue ? Thanks in advance.

 

 

Best Regards,

 

XiangYang

7 Replies

  • Could you use rate limits in iRules or rate classes in the LTM config to throttle the response?

     

     

    Aaron

     

  • Have you tuned the clientside tcp profile yet? I'd recommend working through that before forcing a serverside delay on every response. If you really want to go down that path, you could use a for loop to accomplish this, but I wouldn't recommend that for production scenarios.
  • Thanks for your help !

     

     

    Sorry I didn't tell the situation clearly and entirely. Actually not all of clients have poor performance problem, just some of them which I can use HTTP header to identify them. Even the rate is limited from those clients with poor performance, it doesn't help. I found if I can slow down the response, the situation can be improved. However, I don't want to slow down the response for all of clients, so I would like to use iRule to add delay just for those clients which performed badly.

     

     

    Could you tell me in which event I can add loop ? It seems that event of HTTP_RESPONSE is triggered only for the first packet of HTTP response, not all of packets (response body).
  • Hmm, not sure that can be handled outside of the tcp stack then. Have you tried tuning the tcp profile? The default profile is not condusive to great WAN performance. If you can live without HTTP based rules for a troubleshooting window, you could try the FastL4 profile to see if that helps. If this is not possible, I'd recommend reading solution 4707 on the ask.f5.com website:

     

     

    https://tech.f5.com/home/solutions/sol4707.html Click here
  • the for construct is a native TCL command. The reference is:

     

     

    http://tmml.sourceforge.net/doc/tcl/index.html Click here

     

     

    Here's an example:

     

    for {set delay_count 0} {$delay_count<50000} {incr delay_count} { }