the write strategy of the client implement affects the set performance dramatically?

Dean Harding dean.harding at
Wed Mar 5 01:54:44 UTC 2008

Maxim Dounin wrote:
> You may note that first packet was ack'ed after 100ms - default delayed 
> ack timeout in FreeBSD.  Since your next packet is small - OS waits 
> before sending it, and sends only after previous packet was ack'ed.  And 
> since memcached don't get the whole request, it has nothing to answer - 
> so ack was sent only after timeout.
> Setting net.inet.tcp.delayed_ack to 0 makes times much more real:

I would suggest that you simply send the packet in one write() call, 
rather than setting TCP_NODELAY. Since memcache has a maximum size of 
1MB anyway, you're not going to be creating impossibly big memory 
buffers (hopefully).


More information about the memcached mailing list