NetBSD-Users archive

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

Re: Very poor NFS I/O



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



Home | Main Index | Thread Index | Old Index