Re: Large file copy to NFS mounted directory causes delay in other application packets
From: Eric Dumazet <hidden>
Date: 2011-11-09 08:59:16
Also in:
lkml
Please dont top post on these lists, thanks. Le mercredi 09 novembre 2011 à 00:13 -0800, Manavalan Krishnan a écrit :
(1) NFS is using TCP (2) yes eth0 is dedicated to heartbeat and eth1 is dedicated to NFS (3) I notice the following at the system where file copy is occuring The kernel Recv-Q of the heartbeat application socket grows but not delivered to the socket recv call. Here is the netstat output. Proto Recv-Q Send-Q Local Address Foreign Address udp 11522 0 *:23435 *:*
OK so the sending side is OK : The delay is at receiver side. Note that since netstat shows receive queue has some skbs, it should be available to heartbeat daemon immediately.
As soon as I stop the file transfer, the socket recv call receives the packets and Recv-Q goes 0. (4) The server has 4 cpu cores and 25G RAM
1) How many nfsd threads are running ? grep th /proc/net/rpc/nfsd 2) WHat kind of NIC do you use ? lsmod , lspci 3) Hmm, are IRQ to eth0/eth1 handled by same cpu ? grep eth /proc/interrupts 4) You could try to cpu affine all nfsd to cpu0,cpu1,cpu2 and heartbeat daemon to cpu3. man taskset 5) You could 'strace -ttt' heartbeat daemon to check if it is not blocked on some local disk access (it competes with all nfsd threads)