Client has to wait long for its answer after many queries served,although server is still fast

Discussion in 'Linux Networking' started by Holger Bast, Dec 24, 2007.

  1. Holger Bast

    Holger Bast Guest

    Dear all,

    I have the following setup (OS is Linux, Debian

    1. A server written in C++: It waits for a request on a given port
    (using accept), reads whatever is sent (using read), computes an
    answer string, sends it back (using write), then closes the connection
    (using close).

    2. A client written in PHP: It opens the connection (using fsockopen),
    sends the request string (using fwrite), reads the data (using fgets),
    then closes the connection (using fclose).

    Queries come in at an average rate of about one query per second. The
    server needs a few milliseconds to compute the answer string

    The whole thing works fine for the first, say, 10,000 queries.

    Then, for some reason that I don't understand, it happens more and
    more often that the client has to wait several hundred milliseconds
    before it receives the first data.

    Everything is still fine on the server side: computing and sending
    still just takes a few milliseconds.

    When I restart the server everything is back to normal again. The
    phenomenon also happens when only few queries have been processed, but
    rarely. After the aforementioned 10,000 queries it becomes the rule
    rather than the exception, but there are still queries for which
    everything is fine then.

    Any ideas what might be happening here?

    thanks for your help,

    Holger Bast, Dec 24, 2007
    1. Advertisements

  2. Did you 100% confirm that this delay is *after* it sends the data but
    *before* it receives it? Or are you just guessing that the delay is
    waiting to receive data?

    David Schwartz, Dec 27, 2007
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.