V7.90.007:rpi2:Abmysal NFS read performance RPi2

  • pi 2 - Abmysal NFS read performance RPi2 - Raspberry Pi Stack Exchange
    7. alpha 7 (kodi 17b3)
    Im having a hard time pinpointing why my RPi2 have such a terrible NFS read performance. Background: Using openelec or Libreelec i cannot read large BD-rips file structures without having heavy framejumping/freezes etc.. So i started the investigation.

    • RPi2 is running 4.7.6 Linux Kernel
    • Via ethtool i have confirmed that it has infact negotiated it self to 100mbps against my switch port
    • My Synology NAS 414j can easily pump out 40-70mbps depending on the client
    • All my switches are 1gig
    • Using dd=file.foo from the nas to my RPi2 of=/dev/null gives me consistant NFS read performance at around 700KB/s
    • Using iostat iowait is hovering around 22-30% during the dd transfer and as well as under BD file views.
    • Ive overclocked all parts on the RPi2 to see if that would help... it doesnt..
    • Using these mount options doesnt fix it either:


    mount -t nfs 10.100.10.91:/volume1/Video /storage/MOVIES2 -o udp,noatime,rsize=32768,wsize=32768,nolock,nfsvers=3Linux LibreELEC 4.7.6 #1 SMP Fri Oct 7 18:36:25 BST 2016 armv7l GNU/Linux

    • The strange thing is that it worked a few months ago and on my other mediaboxes with better HW, this aint an issue...


    Soo..... anyone have any idea what can be the culprit?UPDATE: I installed the latest fedora 25beta for Arm on another SD, rebooted and redid the tests... and with standard mount default parameters.. guess what: 10,7MB/S with 15% iowait... I redid the tests 5 times.. all with the same result.. so the conlusion is: LibreELECs busybox OS disto is fuubar.. no idea where tho..br TE

    Edited once, last by dragmore (October 22, 2016 at 10:33 PM).


  • I wonder if the smsc95xx.turbo_mode or smsc95xx.packetsize settings of the ethernet driver may help. Have a read here:
    Frequent buffering, high bitrate video playback from SMB share to RPi3 with OSMC

    and then try adjusting the settings. I believe 4.7.6 kernel will default to "smsc95xx.turbo_mode=Y smsc95xx.packetsize=2560".
    Might be interesting to try disabling turbo_mode and/or changing the packetsize value.

    hmm.. do i have to rebuild the kernel?
    or is this a userspace parameter?

  • Yes, add it to the end of cmdline.txt (on same line). E.g.

    Code
    boot=/dev/mmcblk0p1 disk=/dev/mmcblk0p2 quiet nosplash smsc95xx.turbo_mode=Y smsc95xx.packetsize=2560

    You can edid cmdline.txt either from a windows PC (it is in the FAT partition that shows up) or from the pi in /flash/cmdline.txt.
    If editing on the Pi run "mount -o remount,rw /flash" to make /flash directory writeable.