Bad performance while transfer large block size through NFS.

hshh hunreal at gmail.com
Fri Jun 1 10:38:44 UTC 2007


I set up one NFS server, and mounted on other server by TCP. Servers
connected with Giga network, and running 6.2-RELEASE.

But I found the performance is very bad while transfering large block size data.
For example, I use dd on NFS client to test the speed.

# dd if=/dev/zero of=/mnt/test bs=16k count=20k
20480+0 records in
20480+0 records out
335544320 bytes transferred in 6.172289 secs (54363027 bytes/sec)

# dd if=/dev/zero of=/mnt/test bs=32k count=10k
10240+0 records in
10240+0 records out
335544320 bytes transferred in 6.481602 secs (51768733 bytes/sec)

# dd if=/dev/zero of=/mnt/test bs=512k count=1k
1024+0 records in
1024+0 records out
536870912 bytes transferred in 11.859133 secs (45270671 bytes/sec)

# dd if=/dev/zero of=/mnt/test bs=1m count=512
512+0 records in
512+0 records out
536870912 bytes transferred in 11.963019 secs (44877544 bytes/sec)

# dd if=/dev/zero of=/mnt/test bs=1651k count=200
200+0 records in
200+0 records out
338124800 bytes transferred in 7.431332 secs (45499891 bytes/sec)

# dd if=/dev/zero of=/mnt/test bs=1652k count=50
50+0 records in
50+0 records out
84582400 bytes transferred in 22.319528 secs (3789614 bytes/sec)

----Test End---
As test result, while block size smaller than 1652k, it's fast. But
speed drop to only 3.6M/s while block size bigger or equal 1652k.

And ``systat -vm 1'' is displayed HDD is most busy,
Disks   da0
KB/t  16.00
tps     239
MB/s   3.73
% busy   91


Can I do some tuning to improve large block size transfer over NFS?


More information about the freebsd-performance mailing list