Michael van Elst a écrit :
> joel.bertrand%systella.fr@localhost (=?UTF-8?Q?BERTRAND_Jo=c3=abl?=) writes:
>
>> 4/ make -j1 kicad (9.0), sources on a Raid5 volume shows a nfs mean
>> throughput around 40 Mbps. nfs process eats 1 to 2 % od server CPU.
>
> Averages can be misleading. NFS is very slow for metadata operations
> because of network latency and a build (in particular pkgsrc) does
> a huge amount of metadata operations.
>
>
>
>
>> 6/ dd if=3D/dev/zero of=3Dtest.dd count=3D10 bs=3D100M
>> nfs throughput rises until 850 Mbps (iftop)
>> but load average on server side until 56 !
>
> That looks ok. The server load comes from the number of NFS processes.
>
>
>> hilbert:[~] > dd if=3D/dev/zero of=3Dtest.dd count=3D10 bs=3D100M
>> 10+0=C2=A0enregistrements lus
>> 10+0=C2=A0enregistrements =C3=A9crits
>> 1048576000=C2=A0octets (1,0 GB, 1000 MiB) copi=C3=A9s, 69,9613 s, 15,0 MB=
>> /s
>
> That doesn't correspond to the 850 Mbps number.
Of course. The throughput starts at 850 Mbps and subsequently drops to
a few Mbps. I suppose a cache limit is reached somewhere (or a buffer is
full).
> Repeating the test here (with RPI4 client against Atom N3150 server)
> gets me about 50MByte/s.
>
> Do you use any special NFS mount options ? The command 'mount -vv' on
> a NetBSD client (FreeBSD too?) will dump the mount options in use, e.g.:
>
> fud.local:/d/2 on /a/data type nfs (automounted, nosuid, fsid: 0xb0c/0x70b, reads: sync 0 async 0, writes: sync 0 async 0, [nfs: addr=x.x.x.x, port=2049, addrlen=16, sotype=1, proto=0, fhsize=0, flags=0x8240<intr,nfsv3,resvport>, wsize=32768, rsize=32768, readdirsize=8192, timeo=300, retrans=10, maxgrouplist=16, readahead=2, leaseterm=0, deadthresh=9])
>
> On a Linux client the mount command is already verbose by default.
192.168.10.128:/home on /home type nfs
(rw,relatime,vers=3,rsize=65536,wsize=65536,namlen=255,hard,nolock,fatal_neterrors=none,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.10.128,mountvers=3,mountport=1020,mountproto=tcp,local_lock=all,addr=192.168.10.128)
> Th nfsstat command may also reveal some information. On the server,
> look for 'Server Errors'. On a NetBSD client (maybe FreeBSD too)
> look for timeouts and retries under 'RPC Info'.
Server :
RPC errors faults
4549883 0
Client (Linux) :
Server rpc stats:
calls badcalls badfmt badauth badclnt
0 0 0 0 0
Client rpc stats:
calls retrans authrefrsh
26296714 259 26320477
Client nfs v3:
null getattr setattr lookup
access
2 0% 13917803 52% 347999 1% 1103492 4%
576725 2%
readlink read write create
mkdir
29080 0% 4232358 16% 4420473 16% 229685 0% 2655
0%
symlink mknod remove rmdir
rename
725 0% 49 0% 168636 0% 2265 0%
49811 0%
link readdir readdirplus fsstat
fsinfo
3458 0% 7255 0% 15369 0% 933868 3% 9
0%
pathconf commit
2 0% 255157 0%
Client (FreeBSD) :
Rpc Counts:
Getattr Setattr Lookup Readlink Read
Write Create Remove
17936637 140075 4572193 5439 2160045
1941829 43639 42646
Rename Link Symlink Mkdir Rmdir
Readdir RdirPlus Access
31446 882 5222 655 696
7791 0 748498
Mknod Fsstat Fsinfo PathConf Commit
3 354788 3 352520 4
Rpc Info:
TimedOut Invalid X Replies Retries Requests
0 0 0 0 28344975
Cache Info:
Attr Hits Attr Misses Lkup Hits Lkup Misses BioR Hits BioR
Misses BioW Hits BioW Misses
494956849 17936939 150541515 4571948 192760156
2160474 12282935 932741
BioRL Hits BioRL Misses BioD Hits BioD Misses DirE Hits DirE
Misses Accs Hits Accs Misses
447382 5439 59391149 7622 29183
3 168677760 748579
Server Info:
Getattr Setattr Lookup Readlink Read
Write Create Remove
0 0 0 0 0
0 0 0
Rename Link Symlink Mkdir Rmdir
Readdir RdirPlus Access
0 0 0 0 0
0 0 0
Mknod Fsstat Fsinfo PathConf Commit
0 0 0 0 0
Server Write
WriteOps WriteRPC Opsaved
0 0 0
Server Cache
Inprog Non-Idem Misses
0 0 0
> Linux also has a nfsstat command that shows equivalent numbers.
Attachment:
signature.asc
Description: OpenPGP digital signature