Discussion:
Untarring on NFS
Joel Carnat
2008-11-22 22:52:14 UTC
Permalink
Hello,

When running a cvs up from a NFS client to the NFS server, I found that it
really took ages to complete. So I started a little bench on my
client/server to try to understand the problem.

I've tried setting net.inet.tcp.sendspace and net.inet.tcp.recvspace to
32K and 64K (on both sides), using TCP or UDP and using NFSv3.

Here is what I found (from my client to the server):
- "cp /tmp/firefox-3.0.3-source.tar.bz2 /mnt/TEST/" took 3sec, running at
11M according to the server's systat output.
- "tar xzf firefox-3.0.3-source.tar.bz2 -C /mnt/TEST/" takes minutes,
running at between 1300K and 600K according to the server's systat output.
- netio says:
TCP connection established.
Packet size 1k bytes: 11509 KByte/s Tx, 11227 KByte/s Rx.
Packet size 2k bytes: 11511 KByte/s Tx, 10881 KByte/s Rx.
Packet size 4k bytes: 11512 KByte/s Tx, 11314 KByte/s Rx.
Packet size 8k bytes: 11514 KByte/s Tx, 11308 KByte/s Rx.
Packet size 16k bytes: 11460 KByte/s Tx, 11302 KByte/s Rx.
Packet size 32k bytes: 11513 KByte/s Tx, 11296 KByte/s Rx.
Done.

On the server side, the filesystem is mounted as follow:
/dev/wd0e on /home type ffs (noatime, nodevmtime, log, NFS exported,
local, fsid: 0xa04/0x78b, reads: sync 223275455 async 5906, writes: sync 0
async 1657555)

On the client side, the filesystem is mounted as follow:
guarana:/home on /mnt type nfs (fsid: 0xb07/0x70b, reads: sync 0 async 0,
writes: sync 0 async 0, [nfs: sotype=1, proto=0, fhsize=0,
flags=0x8200<nfsv3,resvport>, wsize=32768, rsize=32768, readdirsize=8192,
timeo=300, retrans=10, maxgrouplist=16, readahead=2, leaseterm=0,
deadthresh=9])

I tried setting rsize/wsize to 64K but I couldn't. I guessed 32K was the
max allowed.

Is there anything I can do to improve those kind of transfer ?

TIA,
Jo

PS: please, keep me CCed as I've not subscribed to this list.

Loading...