Hello! I'm seeing seeing a very small (but significant) percentage of our memcache get() requests taking just over 3 seconds to execute (about 3.001-3.015 seconds).
It seems to happen pretty randomly--and all the other requests take under a millisecond. Whether or not the get request hits or misses seems to make no difference. Some googling suggests that this delay might correspond to TCP SYN packets being dropped and then resent. If that's the case, is there a way to time out more quickly and either retry or fail (and hit the database)? Here's what we're running: CentOS 5.6 Memcached server: 1.4.5 (five 4GB instances on 5 web servers all on a private network on the same rack) Client: PECL Memcached PHP extension 1.0.2 (libmemcached 0.31) Web server: Nginx 1.0.2 with php-fpm We're setting the following options: $mc->setOption(Memcached::OPT_NO_BLOCK, true); $mc->setOption(Memcached::OPT_TCP_NODELAY, true); $mc->setOption(Memcached::OPT_POLL_TIMEOUT, 100); $mc->setOption(Memcached::OPT_RETRY_TIMEOUT, 1); $mc->setOption(Memcached::OPT_CONNECT_TIMEOUT, 100); $mc->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true); $mc->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT); Any ideas or insight would be much appreciated. Thanks, Antonio
