I am sorry for not making things more clear. scp was faster then NFS only when NFS server was being hammered by the client nodes. This happens only when number of client nodes increase above a certain number. In my test I was reading files (1-2 MB) from an NFS server from 180 nodes. All the nodes were reading different files from different folders and there was no caching. There was a huge io wait time on the server CPUs.

The setup is like this:

Server exports /data
Clients mount /data and read files from /data/node1, /data/node2 and so on.

While the server is busy, if I try to do

node1:/tmp# scp largefile1 server:/data/node1
node1:/tmp# cp largefile2 /data/node1

Now in this situation scp is faster then the cp. This lead me to believe that NFS is the bottleneck when it hammered by requests from too many nodes.


Amrik


Bogdan Costescu wrote:
On Wed, 25 Apr 2007, Amrik Singh wrote:

I agree that Jumbo Frames would not be a great help with the root file system but we hope to get a better performance from other NFS servers.

I don't quite follow you here: the link that was sent earlier had shown some kernel level autoconfig problem. If this is indeed still the case with newer kernels, this should only affect the root FS - before mounting the other NFS exports, you should have the chance to perform a proper initialization of the network, which would give you the possibility to use a larger MTU.

As all the machines on the same subnet have to be using the jumbo frames,

Why ? The MTU specifies a _maximum_ value; even when using 1500, not all packets are exactly 1500 bytes. The larger MTU _allows_ larger values, but doesn't _force_ them.

Even though NFS is extremely slow, copying files over scp is still very fast between a client and server.

If by this you mean that NFS is slower than scp, then this should be exactly the other way around, because scp needs CPU time for its encryption. I would have said that you have some network problems and use NFS over UDP which leads to high retransmission rates; scp would adapt better to the network problems due to using TCP... but you just mention that you tried switching between TCP and UDP.

We have tried all different ways to tune the NFS for a better performance (increasing NFS deamons on the servers, changing rsize & wsize, using TCP vs UDP, using async vs sync, noatime, timeo).

Could it be that you tried so hard to tune it that you just used too many settings that don't play well together in your particular situation ? I've found the NFS client and server in the kernels of the recent years to perform reasonably well in their default configuration; although they could be further optimized, a NFS transfer in these conditions would always beat a scp one.

initrd=bzImage ramdisk=40960

dhclient could be located in the ramdisk. Actually even a whole root FS could be located in the ramdisk, if there are not too many nodes booting at the same time and leading to UDP packet loss.

... and you already have a rather large ramdisk. Have you created it yourself (and therefore know what's in it and how to add some more) ?


_______________________________________________
Beowulf mailing list, Beowulf@beowulf.org
To change your subscription (digest mode or unsubscribe) visit 
http://www.beowulf.org/mailman/listinfo/beowulf

Reply via email to