Re: [squid-users] Multi thread or Not multi thread processor

From: Chris Woodfield <rekoil_at_semihuman.com>
Date: Mon, 1 Sep 2008 22:29:04 -0400

Personally, I think 8 cores is most likely overkill unless you've got
some seriously cpu-intensive helper apps - squid on its own tends to
block on I/O far earlier than it blocks on CPU. You're more likely to
get more bang for the buck by going with 4 cores and extra RAM which
the kernel will use for page cache.

-C

On Sep 1, 2008, at 8:08 PM, Haytham Khouja wrote:

> I use 8 cores CPU for ISP level Squids. Squid's external apps like DNS
> resolvers, I/O (especially if you use aufs/diskd/coss), logging, it's
> always a good idea to get more than 4 cores so Squid wouldn't lock for
> long on these external apps to reply back to the main process.
>
> On Mon, Sep 1, 2008 at 1:11 PM, Michael Alger <squid_at_mm.quex.org>
> wrote:
>> On Mon, Sep 01, 2008 at 02:20:47AM -0700, elsergio wrote:
>>> Which option is better for using Squid as a Load Balancer?
>>>
>>> a) Multi thread processor.
>>> b) Non Multi thread processor.
>>
>> Non multi-thread/core processor is only to be preferred if you can
>> get a faster processor at the same price, i.e. if you can trade
>> processor pipelines for raw speed. Even then, you'd probably only
>> want to do that if you're gaining quite a bit of speed.
>>
>> Squid itself is a single-process, single-threaded application, so
>> cannot take advantage of more than one processor pipeline.
>> Theoretically then, a faster CPU that can only run one
>> thread/process at a time is better than a slower one which can run 2
>> or more threads at the same time simply because squid itself can
>> only make use of a single pipeline.
>>
>> However: many (most?) squid configurations make use of external
>> processes, such as URL rewriters and authentication helpers. Since
>> they're separate programs they can take advantage of parallel
>> execution provided by the CPU. You can also use diskd or aufs to
>> move the disk access to another process (though that's more I/O
>> intensive than CPU intensive).
>>
>> In addition, even a dedicated server will have some background
>> processes happening (time sync, admin logins, logging, etc.).
>> Therefore, you're almost guaranteed to have other processes that
>> would like to run at the same time as squid regardless of your
>> squid configuration.
>>
>> Therefore, my best guess is that dual-core CPUs are the way to go.
>> Additional cores will probably only be helpful if you have lots of
>> additional helper processes running simultaneously, or if the server
>> is doing things besides running squid.
>>
>> Another thing to consider is running multiple squid instances on the
>> same server. In that case, more cores (or physical CPUs) will
>> definitely help, but whether or not it's feasible depends on what
>> you want to do and how you want to do it.
>>
>> Okay, after having written all that I managed to find the recent
>> thread which discussed this in some detail, so you might find this
>> to be worth a read:
>>
>> http://www.archivum.info/squid-users@squid-cache.org/2008-07/threads.html#00454
>>
>
>
>
> --
> Sincerely,
> Haytham EL-KHOUJA
> haytham_at_khouja.net
>
Received on Tue Sep 02 2008 - 02:29:17 MDT

This archive was generated by hypermail 2.2.0 : Tue Sep 02 2008 - 12:00:02 MDT