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).

Dean.

Reply via email to