Archive for the ‘Solaris’ Category

Squid-2 /dev/poll update

June 9, 2007

I’ve some feedback from another beta tester of my Solaris /dev/poll support in Squid-2. Quoting his latest email:

“With Squid 2.5-STABLE14, I was seeing 100% CPU on both machines during peak times of the day (mostly pollsys calls), and I couldn’t get more than about 5Mbps of throughput through the infrastructure. This was with approximately 400 users and 10-20 hits/sec.”
“Using 2.HEAD-20070604 with /dev/poll enabled, my internal proxy has dropped to 20% CPU utilization and the external is under 10%, and I can easily get nearly the full throughput of our 45Mbps connection.”

I’ve no idea of the hardware he’s using to achieve this – when I find out I’ll post it here – but thats a definite improvement.

Squid updates

May 27, 2007

A few updates, as we’ve all been busy:

  • Amos is pushing forward his IPv6 work slowly; its probably going to wait for Squid-3.0 to be released and made stable but its making progress
  • I’ve done some profiling on Squid-3’s performance and I’m working on a few cheap methods to gain a few percent by not zero’ing buffers that don’t need zero’ing – another possible Squid-3.1 candidate
  • We learnt how C++ will “upgrade” types where the correct constructor is available – part of some performance regressions in Squid-3 (and the more noticable crashes!) popped up after some changes were made to neaten the code up…
  • Duane and Alex are still working hard to bring Squid-3’s behaviour close to stable as they can – hopefully a Squid-3.0 STABLE release will occur soon!
  • I’ve been working a little on /dev/poll (Solaris, IRIX) support for Squid-2 and I think I’ve finally solved the behaviour issues. This should drastically improve Squid’s performance under Solaris and IRIX.

Solaris improvements to Squid-2.

May 21, 2007

I’ve begun coding up some improvements to Squid-2 – support for /dev/poll – which should dramatically drop CPU usage for those busy Squids running under Solaris. Its a sort of “beta” at the moment so please test carefully.

Solaris has had /dev/poll since Solaris 2.7. I thought about coding up an event ports version instead of /dev/poll, but then those running Squid on older platforms/hardware couldn’t benefit, and Squid wouldn’t really take advantage of the benefits the Solaris event ports give over /dev/poll.

The Squid-2 snapshots can be nabbed from . Compile with


; /dev/poll should be listed as the IO loop in cache.log as Squid starts up.

I’d appreciate feedback.