Updated 26 June 2006
When we went in search of a benchmarking tool for Networked Storage (NAS) products, the search was harder than anticipated! Winbench 99 allows selection of a networked drive, but throws an error message when testing is attempted. SiSoftware's SANDRA allows selection and test of networked drives, but is too limiting in how it presents data and allows comparisons to be made.
After downloading and checking out a number of other lesser known programs, we settled on IOzone. IOzone is a filesystem benchmark tool that generates and measures a variety of file operations. It's been ported to many machines and runs under many operating systems, is free and even comes with source code!
If the NAS device has a built-in switch, the computer running IOzone is directly connected to a switch port. Otherwise, the IOzone machine and NAS-under-test are connected via a consumer-grade switch. The IOzone computer and NAS device autonegotiate Ethernet speed and mode, which is usually 100Mbps, full duplex, unless otherwise noted.
Many readers found our 3D iozone plots confusing (see Figure 1) and uninformative, since caching effects from the computer doing the reading and writing tended to dominate the plot. So after some experimentation and consultation with iozone's creator, Don Capps, we've decided to continue using iozone, but change the way we present the data.
Figure 1: IOzone results example
(click on image for a larger view)
According to Don, there are only a few record sizes that are of interest to most Windows applications: 4 K, 8 K and 64 K. 4 K is the memory page size, 8 K is one value that Windows appears to use for network transfers, and 64 K is the typical record size that Windows uses when applications try to transfer blocks of data that are bigger than 64 K.
So, as of June 2006, we're going to show read and write performance plots using a record size of 64 kbytes, and transferred file sizes of 32, 64, 128, 512 and 1024 Mbytes. The iozone command line will usually be similar to this:
iozone -Rab [results file name] -i 0 -i 1 -+u -f [path to directory on NAS device under test] -q 64k -n 32M -g 1G -z
This creates a binary file format file of results in Excel compatible format, with the record and file sizes described above. CPU utilization of the IOzone computer is also logged and checked to ensure that it is not a factor in the test results.
Results comparison charts will be produced by loading the IOzone data into Excel, with the resulting plots looking similar to Figure 2.
Figure 2: Example iozone plot (click to enlarge)
We think this will provide performance information that is easier to understand and more helpful for product comparison. We're also going to include a line on the plots that indicates the theoretical 12,500 kbytes/sec transfer rate of 100 Mbps Ethernet. If any product with a Gigabit Ethernet interface ever starts to approach gigabit Ethernet speeds (125,000 kbytes/sec), we'll also include that line on the applicable plots.
The following equipment is used unless otherwise noted:
- IOzone is run on a 2.4GHz Pentium 4 with 504MB of RAM running Windows XP Home, SP2 with latest updates installed.
- The NIC is an Intel PRO/1000 MT Desktop Adapter w/ Version 184.108.40.206 Driver
- The hard drive is an 80GB Maxtor DiamondMax Plus 9 ATA/133 drive with 2MB buffer and NTFS formatted.