Speed difference under load
marc at corky.net
marc at corky.net
Sat Oct 27 16:24:57 UTC 2007
The best and easiest thing to do is to run your php script via php-cli
and strace the php-cli process as it runs, you'll then figure out what
time is being spent on.
K J wrote:
>
> The default connection timeout in pecl/memcache is 1 second, and when
> using Memcache::addServer() the connection isn't established until the
> first command is sent (ie. the "get" in your example). Perhaps you
> have
> added several servers, one of which is unreachable, and thus the
> client
> will stall 1 second before flagging that server as down and trying the
> next one. If you're using persistent connections, that server will
> still
> be flagged as down on subsequent requests and will be skipped
> immediately.
>
> Or as Marc said, the client might indeed be waiting for a DNS
> response..
>
>
> I've used IPs, not hostnames, so unless memcache is doing a reverse
> DNS lookup, I doubt that's the cause.
>
> As for servers, I do have 2 memcache servers, but they are both up and
> running.
>
> Any other ideas, or ways I can go about hunting this thing down?
>
>
>
>
>
>
> On 10/27/07, *Mikael Johansson* <mikael at synd.info
> <mailto:mikael at synd.info>> wrote:
>
> Hi,
>
> The default connection timeout in pecl/memcache is 1 second, and when
> using Memcache::addServer() the connection isn't established until
> the
> first command is sent (ie. the "get" in your example). Perhaps you
> have
> added several servers, one of which is unreachable, and thus the
> client
> will stall 1 second before flagging that server as down and trying
> the
> next one. If you're using persistent connections, that server will
> still
> be flagged as down on subsequent requests and will be skipped
> immediately.
>
> Or as Marc said, the client might indeed be waiting for a DNS
> response..
>
> //Mikael
>
> K J wrote:
> > The slowdown is almost certainly in your client library. The
> server, on
> > our systems, takes about 1.5 milliseconds to start up, and a
> > fraction of
> > a millisecond to answer the first request. But your client
> might be
> > doing a lot of work the first time it executes. You didn't
> say what your
> > client language and environment is, so it's kind of hard to
> even take a
> > useful guess.
> >
> >
> > The app is running on PHP and is using the PHP memcache library:
> > http://cn2.php.net/manual/en/ref.memcache.php
> >
> > I record the time it takes to render a page, and every page ends up
> > taking 1 second or so. Most of that 1 second is due to the very
> first
> > memcache get request. It happens at every page that uses
> memcache. The
> > only time this problem goes away is when I run a load testing
> tool and
> > start having multiple users hit the system constantly.
> >
> >
> >
> >
> > On 10/27/07, *Steven Grimm* <sgrimm at facebook.com
> <mailto:sgrimm at facebook.com>
> > <mailto: sgrimm at facebook.com <mailto:sgrimm at facebook.com>>> wrote:
> >
> > K J wrote:
> > > So it's normal to have Memcache's response time be 1
> second, if the
> > > system is relatively idle? This happens when I'm
> basically the only
> > > user on the system, logging in, checking pages, etc.
> >
> > The slowdown is almost certainly in your client library. The
> server, on
> > our systems, takes about 1.5 milliseconds to start up, and a
> fraction of
> > a millisecond to answer the first request. But your client
> might be
> > doing a lot of work the first time it executes. You didn't
> say what your
> > client language and environment is, so it's kind of hard to
> even take a
> > useful guess.
> >
> > -Steve
> >
> >
>
>
>
> !DSPAM:47234410137066856617375!
More information about the memcached
mailing list