Linux Client Performance - CIFS and NFS

A CentOS 6.2 virtual machine was used to evaluate NFS and CIFS performance of the NAS when accessed from a Linux client. We chose IOZone as the benchmark for this case. In order to standardize the testing across multiple NAS units, we mount the CIFS and NFS shares during startup with the following /etc/fstab entries.

//<NAS_IP>/PATH_TO_SMB_SHARE /PATH_TO_LOCAL_MOUNT_FOLDER cifs rw,username=guest,password= 0 0

<NAS_IP>:/PATH_TO_NFS_SHARE /PATH_TO_LOCAL_MOUNT_FOLDER nfs rw,relatime,vers=3,rsize=32768,wsize=32768,namlen=255,hard,proto=tcp,timeo=600,retrans=2, sec=sys,mountaddr <NAS_IP>,mountvers=3,mountproto=udp,local_lock=none,addr=<NAS_IP> 0 0

The following IOZone command was used to benchmark the CIFS share:


IOZone provides benchmark numbers for a multitude of access scenarios with varying file sizes and record lengths. Some of these are very susceptible to caching effects on the client side. This is evident in some of the graphs in the gallery below.

Readers interested in the hard numbers can refer to the CSV program output here.

The NFS share was also benchmarked in a similar manner with the following command:

IOZone -aczR -g 2097152 -U /nfs_test_mount/ -f /nfs_test_mount/testfile -b <NAS_NAME>_NFS_EXCEL_BIN.xls > <NAS_NAME>_NFS_CSV.csv

The IOZone CSV output can be found here for those interested in the exact numbers.

A summary of the bandwidth numbers for various tests averaged across all file and record sizes is provided in the table below. As noted previously, some of these numbers are skewed by caching effects. A reference to the actual CSV outputs linked above make the entries affected by this effect obvious.

QNAP TS-451 - Linux Client Performance (MBps)
Init Write 67 69
Re-Write 69 74
Read 34 125
Re-Read 34 125
Random Read 21 62
Random Write 62 71
Backward Read 21 49
Record Re-Write 788* 1317*
Stride Read 32 106
File Write 68 79
File Re-Write 69 80
File Read 24 89
File Re-Read 24 92
*: Number skewed by caching effect


Single Client Performance - iSCSI on Windows Encryption Support Evaluation


View All Comments

  • DanNeely - Monday, July 28, 2014 - link

    I currently retire my old computers by making an image of their HD and parking it on my NAS so I can recover files and (theoretically) bring the whole system up as a VM or on spare hardware if I needed access to some software on it. As a result, I'd be interested in seeing how well it can run an image of a well used working computer in addition to the standard stripped down OS with a single application setup that a conventional VM hosts. I know Baytrail is much slower than the i7 of my main system; but knowing that all the cruft that accumulates after using a system for a half dozen years won't strangle the NAS would be reassuring. Reply
  • eliluong - Monday, July 28, 2014 - link

    What software do you use to image your old drives? And what VM software do you boot it up in? Is the image usable, given that in the VM all the hardware will be different? Reply
  • Samus - Monday, July 28, 2014 - link

    I just sysprep and capture the image with WDS which can redeploy using WinPE via PXE (network) or USB. I still use a Windows 2008 server for this, but 2012 with Hyper-V gives the flexibility of snapshots before/after sysprepping which helps prevent running into that sealing limitation (3 syspreps before it craps out) of images. I typically refresh my corporate image quarterly with Windows Updates, Office Updates, Adobe Updates, Driver Updates, and profile tweaks.

    Hyper-V definitely has the edge on VMware for imaging because of how easy it is to convert a VXD to a universal image. You can go straight from Hyper-V to WDS, and vice versa (I can turn any PC on the network into a VXD through WDS capture, and virtualize, say, a legacy PC running legacy software that's currently on a KVM and annoying someone as they have to switch between it and their main PC. This is still preferable over XP Mode in Windows 7 because of XP Modes lack of snapshots, poor remote management and inability to backup while the machine is running.
  • eliluong - Monday, July 28, 2014 - link

    Thanks for the informative reply. I'm not in the IT field so this new to me. I've dabbled with virtual machines, but not in this manner. For a home-use case, where I have a 500GB system running XP that I want to have accessible in a virtualized environment, is this something what you described is capable of, or is it intended to just run one or two applications? Reply
  • Samus - Monday, July 28, 2014 - link

    You could use VMware, XP Mode or Hyper-V (Windows 2012 Server) to completely emulate a PC. VMWare and Hyper-V both offer tools to take an image of a physical machine and turn it into a virtual machine. They do this by stripping the HAL (hardware layer) and generalizing the image, so the next time it boots up, whether it be on different physical hardware are emulated virtual hardware, it rebuilds the HAL. In Windows 7, you'll see "detecting hardware" on the first boot, in Windows XP, it actually just goes through the second-phase of the XP setup again.

    Vista and Windows 7 brought Windows PE (preexecution environment) into the picture which makes low-level Windows deployment easier. For example, if your XP machine is running IDE mode (not AHCI) it's pretty tricky to get it to run in a Hyper-V machine, but there is a lengthy process for doing so. Windows Vista and newer can dynamically boot between SATA controllers, command configurations, etc. Windows 8 is even better, having the most feature-rich WinPE environment, with native bare-metal recovery (easily restore any system image to any hardware configuration without generalizing) but Windows 8 is hated on in corporate sectors, so us IT engineers are stuck dealing with Winodws 7's inferior manageability.
  • rufuselder - Thursday, October 9, 2014 - link

    I like it, although I think there are some better storage options out there... /Rufus from Reply
  • blaktron - Tuesday, July 29, 2014 - link

    Hey, if you do this often enough, what you should do is just run your system off a vhdx right from the get go. Its actually pretty good for a couple of reasons if you don't mind losing a % or 2 of random performance and total space.

    Here is a link that explains what I am talking about, but Windows 7 and 8 support this, and it works pretty well:
  • Oyster - Monday, July 28, 2014 - link

    Since you asked for feedback, Ganesh:

    1) It goes without saying that all your reviews focus too heavily on the hardware. You need to dedicate more time to the software/OS and the app ecosystem for these offerings. I personally have a QNAP TS 470, and can't see myself switching to a competitor unless their offerings consist of basic functionality like "ipkg", myQNAPcloud, Qsync, etc. There's no way for me to reach a decision unless you cover these areas :).
    2) For VM performance, I realize that most of the NAS vendors are going to want you to benchmark under ideal conditions (e.g. iSCSI only). But it would be awesome if you can cover non-iSCSI performance.
    3) Please, please add an additional test to cover the effectiveness of these devices to recover from failures. This would allow us to figure out how effective the RAID software implementation is.

  • Kevin G - Monday, July 28, 2014 - link

    I'll second the request for some more attention to software and failure recovery. Reply
  • ganeshts - Monday, July 28, 2014 - link

    I already do testing for RAID rebuild after simulating a drive failure by just yanking out one of the disks at random. Rebuild times as well as power consumption numbers for that operation are reported in the review. In case of any issues, I do make a note of what was encountered (for example, in this review, I noted that reinserting a disk with pre-existing partitions might sometime cause the 'hot-swap' rebuild to not take effect.

    What other 'failure recovery' testing do you want to see?

Log in

Don't have an account? Sign up now