Re: squid benchmarking results - squid-3.0 + epoll()

From: Gonzalo Arana <garana@dont-contact.us>
Date: Wed, 8 Dec 2004 16:55:51 -0300

Hi Muthukumar,

On Wed, Dec 08, 2004 at 04:49:40PM +0530, Muthukumar wrote:
>
> Hello Development Team,

(I'm not a core squid developer).

>
> We had a benchmark and got results for the hardware setup,
>
> model name : Pentium III (Coppermine)
> cpu MHz : 927.753
> RAM size : 512
>
> I like to have your review on this. can we get more req / sec satisfaction on this setup?
>
> -------
>
> squid 3.0 without epoll():
> Squid Cache: Version 3.0-PRE3
> configure options: '--prefix=/usr/local/squid3pre' '--with-aufs-threads=32' '--with-descriptors=32768' '--with-pthreads'
> '--enable-storeio=null,ufs,aufs' '--enable-debug-cbdata'
>
> cache_mem 200MB
> cache_dir null /dev/null
>
> top output:
>
> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
> 6428 squid 25 0 336m 322m 3276 R 99.9 63.8 3:05.54 squid
>
>
> Results:
> req.rate: 167.50
> rep.rate: 167.17
>

Looks like you are running into a CPU bottleneck. Perhaps you may want
to add --enable-cpu-profiling to configure, and check cpu usage data
with cache manager, or compile and link with -pg and check results with
gprof.

Also, verify whether CPU usage is in kernel-mode or user-mode with vmstat
during the test (sar gives this information as well).

> ----
>
> squid 3.0 with epoll():
> Squid Cache: Version 3.0-PRE3
> configure options: '--prefix=/home/muthu/squidepoll' '--enable-epoll' '--with-aufs-threads=32' '--with-descriptors=32768'
> '--with-pthreads' '--enable-storeio=null,ufs,aufs' '--disable-poll' '--disable-select' '--disable-kqueue' '--disable-optimizations'
> '--enable-debug-cbdata'
>
> cache_mem 200MB
> cache_dir null /dev/null
>
> top output:
>
> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
> 8358 squid 16 0 425m 407m 3428 R 81.2 90.6 1:46.13 squid
>
> Results:
> req.rate: 182.35
> rep.rate: 180.20
>
>
> I want to have your analysis on this. I am getting errors,

Looks like you are running with (the same?) CPU bottleneck.

epoll's advantage is that CPU usage does not grow with the number of
idle TCP connections. If the number of concurrent connections is large,
and there are no idle connections, epoll should only give a small
increase in throughput (no cpu is used for traversing the list of fds).

Is, by any chance, throughput (in bps) slightly larger with epoll?

> 008.75| Connection.cc:485: error: 1/1 (s110) Connection timed out
> 008.75| error: raw write after connect failed
> after these req / sec configuration setting.

Try enabling SYN cookies, and running squid with ulimit -HSn 131072.

>
> Regards,
> Muthukumar.
>

Hope this helps,

Gonzalo
Received on Wed Dec 08 2004 - 09:58:02 MST

This archive was generated by hypermail pre-2.1.9 : Fri Dec 31 2004 - 12:00:04 MST