smp_86112
Aug 30, 2008Cirrostratus
TCP Profile Optimizaiton - Nagle vs Delayed ACKs
In my never-ending quest to reduce the complaints about performance of our HTTP apps hosted by our LTMs, I've been doing a lot of investigation into how to optimize our TCP profile. I ran across an article on the net today about a deadlock situation that can occur between Nagle's algorithm and Delayed Acknowledgements. Both are enabled in our default TCP profile.
I already know that I need to disable Nagle. But after reading the article (http://www.stuartcheshire.org/papers/NagleDelayedAck/) and subsequently others, I am starting to wonder if I shouldn't try disabling both. If I interpret the article correctly, I'm thinking that delays are introduced by Nagle when the LTM is sending HTTP responses, and more delays are introduced by Delayed ACKs when the LTM is receiving data from the client. Obviously both events happen in every HTTP session.
I know in tcpdumps that I've seen the 100ms timer many times. I always attributed this to Nagle. But I never thought to pay more attention to whether the LTM was sending or receiving data when those delays are introduced. Now I'm wondering if I'm seeing the Delayed Acks timer, the Nagle timer, or both.
Does anyone know if both Nagle and Delayed Acks have a 100ms timer built into the LTM TCP stack?
Has anyone ever tweaked their TCP profile to disable both settings? I'd be very interested to learn about your experience.
Thanks.