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

From: Gonzalo Arana <garana@dont-contact.us>
Date: Fri, 10 Dec 2004 13:57:14 -0300

On Thu, Dec 09, 2004 at 10:45:58PM +0530, Muthukumar wrote:
>
>
> hai gonzalo arana,
>
> Thanks again for detailed reply.
>
>
> > Could you send the results? It shouln't be too hard to tell
> > if squid3 can be optimized some way to enhance the number of requests
> > per second.
> > cpu usage is mostly user-mode, so --enable-cpu-profiling/-pg results should
> > be meaningful.
>
> Attachment contains cpu_profiling for 160 req / sec of squid-3.0 with epoll().

From these results, it seems that you have reached the maximum request
rate possible (bounded by CPU usage). Hard to tell actually, since there is too
much PROF_UNACCOUNTED :(.

>
> Is there any tool available to detect NETWORK SATURATION / failure detection ?

Difficult to answer since there are a number of possible limits in network bandwidth,
such as:

1) PCI controller (server motherboards have a much better PCI controller than
workstatsion motherboards),

2) If your network adapter driver uses DMA or interrupt based
communication, and if it supports 'queueing' packets, or reading
multiple packets per interrupt

3) Switching capability of your ehternet switch.

It is good to check the histogram of packet sizes (at least in
ethernet networks), and iptraf tool gives a nice and quick snapshot of
this. If there are too many small packets, your server will have too
many context switches, and that may starve your CPU. This is just a
thought.

>
>
> > In linux, I prefer to use iptables. ifconfig provides some numbers, but
> > some processing is needed. I was curious about throughput on epoll vs
> > poll/select. Never mind.
>
> Through put for epoll() - 180 rep / sec
> poll() - 165 rep / sec
>
> >> I have tuned sysctl -w net.ipv4.tcp_syncookies=1, ulimit -HSn there. But I am getting same error reply as,
> >> Connection.cc:485: error: 1/1 (s110) Connection timed out
> >
> > This may be caused by some resource exaustion (probably file
> > descritors). You may use cache_mgr to find out what's the
> > problem here (dmesg may give some useful tips as well).
>
> I have tuned parameters list on polyclt, polyserver and squid server as,
>
> echo 1 > /proc/sys/net/ipv4/tcp_timestamps

In production servers, I preffer to disable tcp timestamps. There seems
to be some kind of incompatibility between linux implementation of tcp
timestamps and some other OS's.

> snip...
>
> thanks
> Muthukumar

Regards,

G.
Received on Fri Dec 10 2004 - 06:59:22 MST

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