Subject: Re: Bad NFS performance
To: Manuel Bouyer <bouyer@antioche.lip6.fr>
From: Dominik Westner <westner@absurd.dnsalias.org>
List: tech-perform
Date: 05/06/2001 14:57:37
Hi,

actually it did not help. I think MOSX uses 8kb and I raised it to 32kb.
I also tried to use TCP and not UDP ... no help either.

here are the results:
[icebox:/tmp] root# mount_nfs -r 32768 -w 32768 boo:/mnt/raid/tmp boo
[icebox:/tmp/boo] root# dd bs=1024k count=32 if=/dev/zero of=tmpfile
32+0 records in
32+0 records out
33554432 bytes transferred in 41 secs (818400 bytes/sec)
[icebox:/tmp/boo] root# dd bs=1024k count=32 of=/dev/null if=tmpfile
32+0 records in
32+0 records out
33554432 bytes transferred in 5 secs (6710886 bytes/sec)

Thanks

Dominik

On Friday, May 4, 2001, at 10:00 PM, Manuel Bouyer wrote:

> On Fri, May 04, 2001 at 08:40:03PM +0200, Dominik Westner wrote:
>> Hi all,
>>
>> I am having problems with the NFS performance between  a NetBSD1.5
>> (server) and a MacOSX10.0.2 (client) machine.
>>
>> While I get about 6,8MB/s between two MacOSX machines both 
>> read/write. I
>> only get below 1MB/s write and about 6,7MB/s read performance between
>> NetBSD and MacOSX.
>>
>> Here are some details: (boo / NetBSD server, icebox / MacOSX client)
>>
>> Local Write / Read on an external RAID on NetBSD server:
>>
>> boo# dd bs=1024k count=128 if=/dev/zero of=tmpfile
>> 128+0 records in
>> 128+0 records out
>> 134217728 bytes transferred in 11 secs (12201611 bytes/sec)
>> boo# dd bs=1024k count=128 if=/dev/zero of=tmpfile
>> 128+0 records in
>> 128+0 records out
>> 134217728 bytes transferred in 9 secs (14913080 bytes/sec)
>> boo# dd bs=1024k count=128 of=/dev/null if=tmpfile
>> 128+0 records in
>> 128+0 records out
>> 134217728 bytes transferred in 7 secs (19173961 bytes/sec)
>> boo# dd bs=1024k count=128 of=/dev/null if=tmpfile
>> 128+0 records in
>> 128+0 records out
>> 134217728 bytes transferred in 7 secs (19173961 bytes/sec)
>>
>> NFS Write / Read between NetBSD server and MacOSX client:
>>
>> [icebox:~/Temp] westner% dd bs=1024k count=32 if=/dev/zero of=tmpfile
>> 32+0 records in
>> 32+0 records out
>> 33554432 bytes transferred in 34 secs (986895 bytes/sec)
>> [icebox:~/Temp] westner% dd bs=1024k count=32 if=/dev/zero of=tmpfile
>> 32+0 records in
>> 32+0 records out
>> 33554432 bytes transferred in 31 secs (1082401 bytes/sec)
>> [icebox:~/Temp] westner% dd bs=1024k count=32 of=/dev/null if=tmpfile
>> 32+0 records in
>> 32+0 records out
>> 33554432 bytes transferred in 5 secs (6710886 bytes/sec)
>> [icebox:~/Temp] westner% dd bs=1024k count=32 of=/dev/null if=tmpfile
>> 32+0 records in
>> 32+0 records out
>>
>> On NetBSD I have built a custom kernel, with
>> options         NMBCLUSTERS=1024
>> maxusers        64              # estimated number of users
>> I also have tried
>> #options        BUFCACHE=20
>> but that made things even worth, so I disabled it again.
>>
>> nfsd consumes a lot of CPU cycles, which is somehow surprising (>90%)
>> systat vm gives me below 5% for the disk
>>
>> [...]
>>
>> Any ideas on how to make this combo rock is very much appreciated. I
>> just can't believe that this is all I can get out on NetBSD.
>
> Any idea what read/write parameter macos uses ? Maybe you could make
> it larger (16k or 32k) ?
> Did you try NFS mounting a single disk instead of the raid array ?
> Maybe this one doesn't like small transactions.
>
> --
> Manuel Bouyer <bouyer@antioche.eu.org>
> --