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