Re: Large file copy to NFS mounted directory causes delay in otherapplication packets

From: Eric Dumazet
Date: Wed Nov 09 2011 - 03:59:15 EST


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)



--
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/