KDE performance with NFS filesystems

Hi KDE folks,

I wanted see if things have changed, or new info has emerged. For legacy reasons, I’ve been using a NAS box (Terra Master F4-210) over NFS on my LAN.

I know there have been frequent discussions in the past about this not working well if the NFS mount is an important system directory like /home or /tmp, and I never saw a real solution for that issue. In my case, it’s not a system directory, it’s just a place to store KBackup backups and virtual machines.

The problem is similar…KDE performance in file operations is incredibly slow with NFS present, even if the NFS share isn’t being accessed. We’re talking 35+ seconds to change directory in Dolphin or to open a small PNG file in gwenview or to add it to an instagram post. Performance of non-KDE operations is OK, as in using cd in a shell to change to the NFS mount worked just fine - no delays.

As an experiment, I changed to using the same NAS directories mounted as CIFS volumes instead. The performance is just like a local disk, so it appears that NFS with KDE is suspect. Obviously, the fix is to use CIFS mounted as a normal directory, so I’m not looking for any action or fixes by development people.

What I am curious about is…does anyone know why this is? Being a developer, I hate not knowing why something is broken, even when I have a workaround.

Paul

While it’s only via virtual networks with QEMU, I’ve been very happy with the performance of NFSv4. My host runs KDE, as does (4) of my VMS: Arch, Debian, Kubuntu, openSUSE. I have never seen what you’re experiencing.

Maybe when I finally retire my main PC, I can setup a real network and test this.

I believe Dolphin directory “browsing” is still synchronous with the UI, so if the underlying filesystem is slow or unresponsive you may experience sluggish behaviour or freezes.

That said my recent experience with NFS has been relatively smooth, I drag and drop GB-sized files across different shares all the time without issue. This provided I mount NFS from command line / fstab and not use the nfs:// prefix in Dolphin.

How do you access/mount NFS and CIFS?

Hi @mlincett ,

I use the fstab approach for the cifs mount as well. As long as you have the cifs-utils package installed (interestingly, it comes from the SAMBA people), it becomes just another fs type for mount. Then I made a mount point directory at the root level - called it /cifs and then made sub directories for the Terra Master TNAS appliance. They are in a directory under /cifs, called TNAS, and they are public and backups - whatever is exported as shares from the NAS. You need to add a file with the relevant credentials in /etc. It’s called cifs-credentials in my case, and contains just 2 lines…

username=valid-username
password=valid-password

Note that this file should have restrictive permissions, as it contains a password in plain text! Mine is 600, so it can’t be read by anyone who isn’t the owner.

Then they can be mounted with the mount command to test - note that I just used the IP address (10.0.0.15 in my case) on the local lan - rather than a hostname. I have made the IP address a reserved DHCP lease on my router so it doesn’t change on a reboot…

mount -t cifs -o username=root //10.0.0.15/public /cifs/tnas/public/

If that works, you’ll have a directory at /cifs/tnas/public which you can treat like any local filesystem directory.

Once it’s correctly mounted, you can add a line to /etc/fstab like…

//10.0.0.15/public /cifs/tnas/public cifs credentials=/etc/cifs-credentials,file_mode=0755,dir_mode=0755 0 0

and try a sudo mount -a to test it - if it comes back with no messgaes of any kind, it is OK, and will be remounted next time you boot the machine, as long as the mounts are available on the LAN.

Hope this helps - I will happily answer any more questions…if I can!

Paul

Hi @ajgringo619

I use virtual networks on Virtualbox a lot, and they are just fine with NFS. This issue only occurs with NFS on my LAN, and only with KDE…Gnome and other systems like XFCE are just fine, but I love KDE, and won’t easily give it up!

@Paul_Hands:

With this system:

Operating System: openSUSE Leap 15.5
KDE Plasma Version: 5.27.4
KDE Frameworks Version: 5.103.0
Qt Version: 5.15.8
Kernel Version: 5.14.21-150500.55.19-default (64-bit)
Graphics Platform: X11
Processors: 8 × AMD Ryzen 5 3400G with Radeon Vega Graphics
Memory: 29.3 GiB of RAM
Graphics Processor: AMD Radeon Vega 11 Graphics
Manufacturer: ASUS

and a QNAP TS131-P NAS with Firmware version QTS 5.1.0.2444 connected via a 1 Gbps (MTU: 1500) Ethernet LAN, I’m seeing the following time to auto-mount and access a directory on the NAS –

 > time dolphin --select /mnt/ZZZ/NFS/xxx/yyy/home

real    0m4,368s
user    0m0,803s
sys     0m0,238s
 >

The “real” time includes the time to mouse to the Dolphin window and <Ctrl-Q> …
I’m using the systemd Automount service to handle the NFS mounts:

 # systemctl status autofs.service 
● autofs.service - Automounts filesystems on demand
     Loaded: loaded (/usr/lib/systemd/system/autofs.service; enabled; vendor preset: disabled)
     Active: active (running) since Fri 2023-08-18 08:27:50 CEST; 8h ago
       Docs: man:automount(8)
             man:autofs(5)
    Process: 1786 ExecStart=/usr/sbin/automount $AUTOFS_OPTIONS -p /run/automount.pid (code=exited, status=0/SUCCESS)
   Main PID: 1791 (automount)
      Tasks: 4 (limit: 4915)
     CGroup: /system.slice/autofs.service
             └─ 1791 /usr/sbin/automount -p /run/automount.pid

Aug 18 08:27:50 xxx systemd[1]: Starting Automounts filesystems on demand...
Aug 18 08:27:50 xxx automount[1791]: do_init:131: lookup(yp): map auto.master: Local domain name not set
Aug 18 08:27:50 xxx systemd[1]: Started Automounts filesystems on demand.
 #

Yes, simply accessing a file on the NAS is faster than Dolphin – same again – the NAS wasn’t mounted – the time here also includes the time to auto-mount the NAS directory –

 > time file /mnt/ZZZ/NFS/xxx/yyy/home
/mnt/NAS-Bureau-001/NFS/dcu/eck001/home: sticky, directory

real    0m0,068s
user    0m0,003s
sys     0m0,001s
 >

Dropping 11 JPEG files – total of 117.8 MiB – onto the NAS takes less than 2 seconds.
Dropping 153 JPEG files – total of 1.8 GiB – onto the NAS takes about 15 seconds.