tech-perform archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Untarring on NFS



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.



Home | Main Index | Thread Index | Old Index