> > I'm at a loss. Here's the situation. We have a couple hundred squid > clients forced (using never-direct allow all) to run through > a parent proxy > array. On occasion (no discernable pattern) the squid process on the > clients uses all the available CPU cycles, and tailing the > access log shows > that nothing is being served. Attempting to use the > cachemgr.cgi (from a > different box) or the squidclient (on the client proxy) > returns no results > while the CPU usage is running wild. Once the CPU usage > slows down, results > are returned. Running a squid -k debug (for the usual 2 seconds) and > tailing the cache.log seems to show acls being processed. Often in > conjunction with these CPU spikes I'll see "TCP connection to > [parent-proxy] > failed", but not always. Sometimes these connection failed > messages appear > in the cache log without a CPU spike. > > There are two round-robin parent proxies, which peer (using > ICP) and a third > "master" parent (also peering with ICP) which is running two > squid processes > (one per CPU) due to some sites not handling "sessions" > changing IPs. All > three are on the same network switch. They are being > monitored with MRTG > (http://mrtg.schoolaccess.net/squid/) and never seem to slow down. > > The connection failed messages don't favor one server over the other. > > Most of the clients are accessing the internet over > satellite, but some are > on terrestrial links. The problem does not occur more often > with either > connection method. > > I thought that I had found the problem when I read about the > half_closed_clients bug, but after patching, compiling and installing > SQUID2.5-STABLE7 on a couple of sites, the problem persists > (though perhaps > less often). Disabling half-closed-clients in the squid.conf, > unsurprisingly had no noticeable effect. > > The version I replaced for testing is SQUID2.5-STABLE4. > > STABLE7 was compiled with --bindir=/home/squid2/bin > --sbindir=/home/squid2/bin --libexecdir=/home/squid2/bin > --datadir=/home/squid2/etc --sysconfdir=/etc/squid > --localstatedir=/home/squid2 --mandir=/usr/man --enable-ssl > --enable-err-languages=English --disable-ident-lookups --with-pthreads > --enable-storeio=ufs,aufs,diskd --enable-snmp > --enable-async-io --with-aio > > STABLE4 was compiled with --bindir=/home/squid2/bin > --sbindir=/home/squid2/bin --libexecdir=/home/squid2/bin > --datadir=/home/squid2/etc --sysconfdir=/etc/squid > --localstatedir=/home/squid2 --mandir=/usr/man > --enable-xmalloc-statistics > --enable-useragent-log --enable-referer-log > --enable-err-languages=English > --disable-ident-lookups --with-pthreads > --enable-storeio=ufs,aufs,diskd > > In the interest of preventing this message from becoming too > long, I have > posted the conf files at http://mrtg.schoolaccess.net/squidconf/. The > -sparse files have all comments and blank lines stripped out. > > What further tools can I use (on a Linux 2.2 kernel) to > figure out what > squid is doing when the CPU usage spikes? What information > did I leave out > that might be relevant?
You may issue : % squid -k debug ; sleep 2 ; squid -k debug during this high CPU usage. Check cache.log afterwards. M.