Intro

When mounting a windows share from a Linux machine, you are using a CIFS client. (Common Internet File System). Desktop versions of Ubuntu have 2 CIFS clients. The high performance CIFS client that's built into the Linux kernel, and the high convenience FUSE CIFS client that runs in user land.

If you want convenience

If you are using a graphical environment such as Gnome, KDE, or XFCE, you can mount windows shares from the file manager that is included with your environment, such as nautilus, caja, or thunar. This will utilize the FUSE CIFS client to create a mount that will be conveniently accessible from the file manager.

If you want performance

If you are running a server without a graphical environment or you just want the best performance, you should use the kernel's CIFS client as discussed in MountCifsFstab.

A real world benchmark

What you see below is a speed comparison between the kernel's CIFS client and the FUSE CIFS client. The first command creates a 1GB file of random data. The next command uses gio to copy the file. The gio command uses the FUSE CIFS client, which is what the graphical file managers use. The next command uses the kernel's CIFS client because the /mnt/benchmark folder was mounted with the kernel's CIFS client. The kernel's CIFS client gets the job done in less than half the time!

john@dev:/mnt/benchmark/$ head -c 1G </dev/urandom >1.txt

john@dev:/mnt/benchmark/$ time gio copy smb://john@10.0.0.7/benchmark/1.txt smb://john@10.0.0.7/benchmark/2.txt

real 0m50.173s user 0m0.218s sys 0m0.913s

john@dev:/mnt/benchmark$ time cp 1.txt 2.txt

real 0m18.197s user 0m0.000s sys 0m1.261s

MountCifsFstabBenchmark (last edited 2020-08-04 02:05:57 by shippj)