I have a server running Linux (kernel 2.6.18) which is dropping incoming network packets drastically. I thought it is suffering from this because the length of the receive queue of that interface is too small (1000 by default). I wanted to enlarge this queue by modifying the value of /proc/sys/net/core/netdev_max_backlog
(to 3000). But it did not seem to work. I googled it and found someone say this value only applies to non-NAPI devices which I did not think my device is as NAPI had been introduced since kernel 2.4.20. I did not know whether this is true and turned to the kernel doc installed on the that server, but that doc had not been updated since kernel 2.2.
So I wonder whether this is true, if it is, how can I change that queue length for a NAPI device?
Thanks. Feng
/proc/sys/net/core/rmem_default
. Normally the device backlog should have no meaning at all nowadays since normally the kernel will get an interrupt for every packet, copy the data to its buffers, and continue. Of course, if a lot of data arrives and the buffer becomes full, there's not much to do but drop the packet. The receive queue length only really has a meaning when polling, afaik.interrupt coalescence
mentioned here http://datatag.web.cern.ch/datatag/howto/tcp.html is what you are talking about.