- 15 Non-Certified IT Skills Growing in Demand
- How 19 Tech Titans Target Healthcare
- Twitter Suffering From Growing Pains (and Facebook Comparisons)
- Agile Comes to Data Integration
Page 3 of 5
Storage performance benchmarking is a complex topic, with many variables involved. To determine how FreeNAS would handle the most common types of operations, we set up a 10-gigabit test bed and used the open-source iozone benchmarking tool.
The key variables in I/O performance involve the kinds of operations a storage device will handle. Devices may move data in small or large blocks - think of a database handling small transactions, vs. a file manager moving large virtual machine images around. The type of operation also is important; writing to a disk tends to take longer than reading from it. Due to caching, an initial read or write operation probably will take longer than a re-read or re-write. And operations that use sequential blocks on a disk will outperform random reads and writes, since in the latter case, the disk head moves around a lot.
We configured the iozone tool to measure I/O performance for six test cases, each with the FreeNAS appliance acting as a Network File System (NFS) server for two NFS clients, also equipped with 10-gigabit Ethernet adapters. We ran all six sets of tests twice, using small and large record sizes.
One thing we did not do was allow FreeNAS to use all 48 Gbytes of the RAM in the server supplied by iXsystems. Like any modern operating system, FreeBSD puts as much data as possible into RAM before having to swap out to disk. Serving data from RAM means much higher performance for relatively small reads and writes, but it's not representative of the performance users would see in production. This is especially true when many users are involved; then, reading and writing from disk becomes inevitable.
To ensure a balance of disk I/O and caching performance, we configured the FreeNAS server to use only 6GB of RAM, the minimum supported with ZFS, and then we read or wrote 64GB in each test - well in excess of the available RAM. We also configured both NFS client machines to use 6GB of RAM, even though both had 16GB available.
FreeNAS performance is fast, especially with sequential reads and re-reads (see the figure, below). Storage performance tests usually measure I/O in bytes per second; when expressed in bits, FreeNAS read and re-read data at rates at or above 6Gbps.
That 6Gbps top speed also includes several other factors: The 6Gbps speed limit of SATA3 disks; the overhead added by the NFS protocol; the contention among multiple TCP flows (there were 16 threads active during these tests); and the amount of disk I/O relative to data read from RAM. The top speeds achieved here are about as fast as the hardware could possibly go under these test conditions.
Write and rewrite performance was slower than reads, as usual in I/O benchmarking. With sequential rewrites, FreeNAS moved traffic at rates of around 280MBps. Curiously, sequential rewrites went twice as fast with 4-kbyte records than with 64-kbyte ones. The most likely explanation is that the time involved in writing the larger amount of data to disk favored the smaller record size.