Re: Help: Squid performance bombs when many sites are unreachable

From: Simon Rainey <>
Date: Tue, 27 Apr 1999 15:27:58 +0100


I tried increasing the number of dnsserver and redirector processes to 24
each before we got Exodus connectivity back but there was only negligible
improvement. As soon as Exodus came bake we were rolling again.

What I'm concerned about is this. Suppose our transatlantic links go down
(we're based in the UK) so we lose all US connectivity. Now maybe 80% of
requests are for US sites. If Squid (or the dnsserver) is going to block
because it can't reach those sites then it will eventually grind to a halt
no matter how many dnsserver / redirector processes I'm running. That
effectively takes out UK and European sites for no good reason. Is there
anything I can do about this?

Is it the dnsserver that blocks or Squid itself? I would have thought that
the results for name lookups of commonly accessed sites (e.g. Hotmail)
would be in our named cache (and I could certainly resolve them while the
problem existed).

Also, if a site is unreachable then Squid eventually times out the request
after some time T. At peak times we see 100 TCP requests per second per
cache. If 80% of the requested sites were unreachable then that's 80 rps.
The number of pending requests that will be unserviceable (ignoring
caching) is then 80T, or 2400 for a 30s timeout. How would Squid's
performance degrade with this many pending requests?

We're running 18 caches and they were all suffering from the same slowdown
... and in the 2+ years we've been running Squid this is the first
significant issue we've seen ... but it caused a major panic here today :-(


>]Apr 27 11:07:17 adder squid[142]: WARNING: All redirector processes are
> ^^^^^^^^^^
>]Apr 27 11:07:17 adder squid[142]: WARNING: 8 pending requests queued
>]Apr 27 11:07:17 adder squid[142]: WARNING: All dnsserver processes are
> ^^^^^^^^^
>]Apr 27 11:07:17 adder squid[142]: WARNING: 5 pending requests queued
>Increase your "dns_children" and your "redirect_children" and retry. If
>you are still suffering, repost.
>The reason for performance degradation is simple: dnsserver children are
>run, because the gethostbyname() call is blocking, but squid needs to run
>on. Thus the servers may safely block, while squid can process other
>things in the meantime. But if you have too few helpful servers (or your
>DNS server is too slow in answering, or your resolv.conf is misconfigured,
>or your nsswitch.conf/host.conf is weird, or some other process steals
>your IO, or ...), squid has to wait for replies before being able to
>proceed processing things. For instance, I have to run 32 dns_children on
>my !.com caches, and that still does not seem sufficient at high noon.
>Le deagh dhùrachd,
>Dipl.-Ing. Jens-S. Vöckler (
>Institute for Computer Networks and Distributed Systems
>University of Hanover, Germany; +49 511 762 4726
Received on Tue Apr 27 1999 - 08:30:11 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:45:58 MST