Chris Robertson wrote:
I have not tried compiling Squid 3, so this I'm going to be of little help,
but I thought that I would point out that Squid 3 is not production ready...
---
Yes....but it's been fairly stable in day-to-day use for over a year.
I forget the exact reasons, but once I upgraded to 3.0 a year or two back, I
didn't want to go back.
I wanted to try some of the other features than the standard "SuSE 9.1"
version -- things like delay pools...also wanted to compile a version to allow
transparent proxying through a 2.6 based kernel. These have been "back burner"
projects I delve into for a while, but them drop when they start getting too
messy.
In any case, I think more information is probably needed. What OS are you
compiling Squid on? What were the parameters you gave the configure
command? What version of Samba do you have installed?
---
samba 3.0.9-2.6 (SuSE made). I likely didn't have the correct headers
installed, to get around it I just lopped off samba authentication as don't have
a need for authentication, anyway. Another reason to recompile it, I suppose --
get rid of the stuff I don't need -- and wanted to try non-blocking IO with
aufs instead of ufs which SuSE doesn't compile support for.
Of some cause for impediment is the dearth of documentation or
more recent metrics. For example, on cache replacement, there is talk of
looking at GDSF and LFUDA documentation from, what would appear to be docs
from 1998-1999. I an enable various helper methods, replacement algorithms,
Diskio methods, etc, but there doesn't seem to be much written about trade-offs,
whether or not they work "reliably", etc.
Seems a bit non-obvious, to me anyway, why one would want to use blocking-IO
when writing to the cache, for example, or why one would want the
main process to block on deletions. These items are especially true as the
industry moves toward increased parallelism with multi-threaded and multi-core
machines (in addition to existing SMP machines). Yet, use of these
old-technologies seems to be the standard-product offered with some releases.
Certainly, on an SMP, multi-core or perhaps even hyper-threaded machine,
some of these optimizations would buy performance improvements.
Also, of note, are optimizations that are done or not done. Does anyone
use -O3? I generally try to recompile utils at O3, -march=pentium3 and
-fomit-frame-pointers, even stripping the binary can result in small savings in
time to read and page binaries off disk. With squid, there are many more
opportunities for parallelism, though it isn't alway clear where bottlenecks
are. For example, (these would be along the lines of feature requests) there
doesn't seem to be any easy way to request metrics, like:
* Time spent idle: (no requests outstanding for >=
<config idle timeout, in deciseconds: (1-100) [7]> )
* Time spent not idle (active):
Request time:
* Time spent waiting for DNS lookup/request, min,ave,max: 1ms, 10ms, 150ms
* Time waiting for a free DNS lookup thread: (total seconds) 0 (or 10 or 1200),
* Average DNS lookup thread queue depth during active times...
* Time spent waiting for initial responses from server, min, ave, max (I believe
these can be gleaned from the existing logs).
* Time spent waiting on disk cache (read, write, remove(delete)).
* Time spent waiting on log-writes (non-buffered,synchronous): 10ms?
* Average request queue length during active times.
Is there a squid-developers list where developers talk about what they
are working on/doing/fixing or does that get discussed here on squid-users?
Seems like a high volume list for that purpose.
-linda