On Wed, Mar 05, 2008 at 16:13:45 +0300, Maxim Dounin wrote: > Consider the following scenario: > > 1. Client sents several 'noreply' commands. > 2. Then normal command. > 3. Repeat from 1. > > This way without TCP_NODELAY you have to wait for delayed ack timeout on > every iteration.
I'm convinced. I added this very sequence to benchmark script of C::M::F. The problem is reproducible, and TCP_NODELAY helps. C::M::F 0.09 will manage TCP_NODELAY. But not TCP_CORK/TCP_NOPUSH: I still wasn't able to measure any significant saving with them to justify additional setsockopt() call. Plus it may actually be better to steadily send the requests rather than to accumulate several of them, and then post the whole load to the server. -- Tomash Brechko
