Re: high system load on tcp_poll and tcp_sock in 2.6 caused bysquid

From: Patrick R. McManus
Date: Tue Jan 03 2006 - 12:07:07 EST


On Tue, 2006-01-03 at 17:43 +0100, Ian Blanes wrote:
> Hi,
>
> I'm getting this report from oprofile from a squid server with about 2000
> clients. I'm not sure if this is normal... any idea on where to look?
>
> thanks
> ian
>
> Cpu0 : 20.0% us, 43.3% sy, 0.0% ni, 20.1% id, 15.8% wa, 0.9% hi, 0.0%
> si

oh that's going to be quite normal for any poll driven application with
a lot of concurrent connections.. think about what poll() does - it
scans all 2000 sockets and returns to you the set of ones that have
something to do.. assuming a small fraction of them meet that criteria
it does just a little work to satisfy their needs and then repeats the
process..

the epoll() style interface that is also in the kernel lets the
application essentially get change events instead of doing that big
repeated scan.. its much more efficient but it needs to be supported by
the application.



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/