F5 Network Latency Issue

Summary

In a recent engagement with a customer in the Seattle labs, a customer desired app performance tuning to handle higher loads with lower latencies. As part of the work, they were receptive to the idea of throwing a load balancer into the mix to help distribute the WCF web traffic between their Web Servers. However introducing the load balancer with default settings introduced negative effects in terms of network latency communicating between the client machines and the web server. The reason was that the default settings in the F5 load balancer used has “Nagles Algorithm” turned on by default. Nagles Algorithm has unintended effects when requests and responses require small TCP packets. The load balancer was inserted between the load generation servers and the web servers.

Symptoms

Immediately after setting up the Big-IP F5 balancer we noticed that there was a much larger latency on network request response times (about 2-3 orders of magnitude) compared to direct traffic to the Web server. After looking a little closer, it was observed that the latency was much larger only for smaller TCP Packets, while large ones didn’t have that much of a latency.

 

Solution Details

The solution for unblocking the testing involved making configuration updates to F5.
In the example below, we were using the tcp optimized protocol profile. To find it select, Local Traffic ->Protocol, TCP.

 

Select the tcp optimized profile

 

Turn off Slow Start and especially turn off Nagle’s Algorithm. Nagles algorithm attempts to reduce network congestion by aggregating smaller TCP packets into larger ones. In the customers case, most of their requests sent small packets and Nagle added millisecond delays to communication.

 

Don’t forget to set the profile to the modified one.

 

Credits and Acknowledgements

Many thanks to:
Darren Rich. Senior Test Consultant. Microsoft Testing Services Labs
Ifeanyi Echeruo. Test Consultant. Microsoft Testing Services Labs

Comments

  • Anonymous
    April 09, 2013
    The comment has been removed