Re: tcp/ip performance problem

From: Pekka Savola
Date: Wed Oct 01 2008 - 09:56:09 EST


On Wed, 1 Oct 2008, Vitaly Ivanov wrote:
We have solved this problem. We had tuned TCP/IP stack in Linux Kernel
but it hadn't helped us because there was very law value backlog in
listen function
int listen(int sockfd, int backlog);
This function is used in nginx and lighttp demons. In nginx this value
had been set to 511 and in lighttp to 1024. We set both value to 65535
or -1 and solve our problem. Now we have about 700Mbit per second
instead 70.

Good catch. I wonder if there is any way to figure out the listen backlog (except using strace) for a socket, e.g. using a system level tool?

But now we got another trouble - our server under heavily load because
ksoftirqd use 100% CPU. We suppose that this process is "bottle-neck".
Can we tune this process?

It smells like you're getting so many packets the CPU is filled by IRQs. Take a look at this and maybe google around for "polling" and "NAPI":

http://kb.pert.geant2.net/PERTKB/InterruptCoalescence


--
Pekka Savola "You each name yourselves king, yet the
Netcore Oy kingdom bleeds."
Systems. Networks. Security. -- George R.R. Martin: A Clash of Kings
--
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html