NFS performance issue

  • the Ethernet interface is not the issue

    using Samba everything works fine

    Hi JurKub - agree - I don't think it is the ethernet card / cabling / ... itself either. Just trying to isolate the Kernel Settings / Drivers / ....
    Given the number of changes all happening - think that "a regression" may be a possibility. I just don't know where to look as such. E.G is it sending / receiving / window size / UDP / TCP / ....
    what does

    ``time cp /nfs/abc /ramdisk/

    take ... etc

  • Guys thx for your passion :)

    I believe it's an rsize / wsize issue of the Raspi NFS Server

    Nevertheless what I enter on client site using mount for rsize and wsize the value don't change :(

    For me it looks like it is hard coded into the Raspi NFS Server or I'm to stupid to find the way to change it :cry:

    NFS mount (rsize=131072,wsize=131072)

    Code
    10.0.0.53:/srv/vdr/video on /storage/videos type nfs (rw,relatime,vers=3,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.0.0.53,mountvers=3,mountproto=tcp,local_lock=none,addr=10.0.0.53)

    Samba mount (rsize=1048576,wsize=1048576)

    Code
    //10.0.0.53/recordings on /storage/recordings type cifs (rw,relatime,vers=2.1,cache=strict,username=vdr,uid=0,noforceuid,gid=0,noforcegid,addr=10.0.0.53,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,bsize=1048576,echo_interval=60,actimeo=1)
  • I believe it's an rsize / wsize issue of the Raspi NFS Server


    Nevertheless what I enter on client site using mount for rsize and wsize the value don't change

    did you read in the link to nfs from comment #15 the chapter "Transport Methodes" ?

    to it seems UDP, TCP, wsize, rsize, MTU are depending on each other...

    maybe a stupid hint: changing the the config file on the server needs a restart of the server

    some more links:

    NFS — Performance Tuning on Linux
    How to optimize NFS performance on Linux with kernel tuning and appropriate mount and service options on the server and clients.
    cromwell-intl.com

    Optimizing NFS Performance

  • some questions:

    1. did your lan setup ever run or is it a regression ( I esp. mean: simultaneous recording and replaying) ?

    2. you said running SMB is fine, why don't run SMB [3.1 ?!] only ?

    3. why are you shoveling big data through an LAN ?

    I esp. mean when all 4 satellites on the intel box are recording

    why not store the data where they first appear (at the intel box) ?

    4. what does the network traffic and the CPU load on an PI look like when doing 4x recording *and* 4x replaying concurrently (!) ?

    did you checked it with htop, etc. ?

    - I've no idea from PI or FHEM or VDR) -

    5. but isn't the intel box a lot more potent then the PI and wouldn't it make more sense to run a NFS server on the intel box too and in the dependence of what OS is currently running on the intel to maybe use a newer version of NFS (4.x) / kernel ? [1]

    [1]

    newer mostly means "better", but the opposite might also be true (sometimes it is, but sometimes only !)

    I guess you're nailed with an aged kernel on the PI ?

    I've read newer kernels benefiting from more throughput ...

    I've currently also no idea if NFS 4.x provides any benefit over 3.x, but usually a newer version fixes the bugs/shortcommings in an elder version ... (sometimes :saint: )


    or I'm to stupid to find the way to change it

    /etc/nfsmount.conf

    see:

    https://linux.die.net/man/5/nfsmount.conf

    clear (?): adjusting {r,w}size => no need to provide them as mount option (client) - I would like to say - dito: Proto, etc.

    ===

    btw.: google is also a search engine :cool:

    Edited 3 times, last by GDPR-7: Merged a post created by JoeAverage into this post. (November 23, 2021 at 6:51 PM).

  • fhemraspi:~ # cat /proc/sys/net/ipv4/tcp_wmem

    4096 16384 4194304

    fhemraspi:~ # cat /proc/sys/net/ipv4/tcp_rmem

    4096 131072 6291456

    fhemraspi:~ # cat /proc/sys/net/ipv4/tcp_window_scaling

    1