How to count dropped connections

How to count dropped connections

shimi linux-il at shimi.net
Tue Jun 9 14:31:41 IDT 2009


On Tue, Jun 9, 2009 at 2:21 PM, Amos Shapira <amos.shapira at gmail.com> wrote:

> 2009/6/9 shimi <linux-il at shimi.net>:
> > At what layer do you define "dropping a request" ? Not accepting a TCP
> > connection (4) ? Failure to  complete the request from the reverse proxy
> to
> > the backend servers (HTTP error) (assuming you have backend servers - the
> > network structure is not obvious from your original message)?
>
> We use Linux Virtual Server (LVS) in DR mode (i.e. packets come in to
> a virtual IP through the LVS, outgoing replies are sent directly from
> the Real Servers) in load-balancing (i.e. multiple servers accept and
> handle requests in parallel).
>
> Some of the Real Servers are configured as "persistent", i.e. all
> requests from same client within a two-minute period will be handled
> by the same Real Server, due to functional requirements, others don't
> have this requirement.
>
> >
> > What answers the TCP requests to port 80?
>
> All requests are handled by Apache 2.2 modules written in C++.
>
> >
> > Do you use efficient HTTP handlers already, e.g. Lighttpd or even better,
> > nginx? :)
>
> We looked at it (lighttpd) and back then didn't see a justification to
> make the switch (already had in-house knowledge to write Apache
> modules vs. another learning period to take with lighttpd, plus
> Apache's flexibility back when we didn't know what we'll need was a
> factor, e.g. we also had php, perl and CGI code running around at the
> beginning).
>
> As far as we can tell the bulk of the load is inside our own
> home-grown module, not inside Apache.
>
> What I'd like to know is how many failed connections clients receive,
> be it "connection refused" or time outs.
>

Look,

Basically, if your HTTP connection handler handles many connections well -
your module (backend) processing would become the bottleneck. That's how it
usually happens. So if you wrap the requests by a frontend proxy (again, I
recommend nginx) - and just put an error log for the relevant vhosts there,
every time nginx cannot pass a request to backend processing, would be
logged. Then you only need to look at the log, and that's it!

-- Shimi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.cs.huji.ac.il/pipermail/linux-il/attachments/20090609/32887fd6/attachment-0001.html>


More information about the Linux-il mailing list