The 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* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> 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* <[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    > <mailto: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>> 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!

Reply via email to