In your case, TCP_NODELAY should be set in your windows memcache client, rather than in memcache server.
在 2014年9月12日星期五UTC+8下午4时48分42秒,[email protected]写道: > > Status: New > Owner: ---- > Labels: Type-Defect Priority-Medium > > New issue 377 by [email protected]: The TCP_NODELAY is not set at the > accepted socket > https://code.google.com/p/memcached/issues/detail?id=377 > > The TCP_NODELAY is only set at the listening socket, and not set at the > accepted socket. In Linux machine I tested, the TCP_NODELAY on listening > socket cannot be inherited by the accepted socket. > > There is a serious performance problem when TCP_NODELAY is not set on > memcached server and when the client machine has delayed ack enabled (like > > default in windows, the delayed ACK can be 200ms) > > A test case: > client on windows get an item from a linux memcached server. The response > > item size should be >1400 and <2800 (including all parameters) > 1. the first 1400 bytes will be sent immediately. and the remaining bytes > > are kept in buffer without sending > 2. windows client received the first 1400 bytes and the delay acks take > effect. > 3. widows client wait 200ms when the delay ack time out happens. Then the > > ack is sent. > 4. memcached receives the ack and then the remaining bytes is sent > 5. windows client receives the remainning bytes > > Result: > The windows client got the item with a delay of 200ms unnecessarily. > > > -- > You received this message because this project is configured to send all > issue notifications to this address. > You may adjust your notification preferences at: > https://code.google.com/hosting/settings > -- --- You received this message because you are subscribed to the Google Groups "memcached" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
