Jing Zhang

« Previous day (Nov 9, 2008) | Main | Next day (Nov 11, 2008) »

http://blogs.sun.com/jingzhang/date/20081110 Monday November 10, 2008

Performance Improvements Using Read Optimized Solid State Disks

The Sun Storage 7000 Unified Storage Systems can use fast storage devices - such as flash memory based SSDs (solid state disks) to extend the main memory cache.  There are two types of SSDs: read optimized and write optimized. In this blog, we will show the performance improvements by using the read optimized SSDs when running simulated applications on file systems. ZFS has a new feature - the second level ARC or L2ARC - to allow people adding read optimized SSDs to file system stack. Brendan has a blog about ZFS L2ARC, including examples and block comments on L2ARC internals; for more background, check it out.

Test Configuration

We deploy a Sun Storage 7000, a 2 socket/quad core system configured with 16GB DRAM, one Sun Storage J4400 (24 disks), four read optimized SSDs (350GB), one Sun Multithreaded 10 GigE card. This appliance is connected to 10 Sun x86 clients via a switch - five of them are 2 socket/quad core with 8GB DRAM and five of them are 2 socket/dual core with 8GB DRAM. All clients have a 1 GigE interface. 

Random Read Testing using Single SSD

We start by enabling one SSD as L2ARC in the storage pool. 8 clients access the server over NFSv4, and execute a random read workload with an 8 or 32 KB record size across 50 GB of file (which is also its working set). The table below shows the file system throughput improvements (MB/s, reported on the clients) using SSD vs. without it under different configurations.  

Please note that we warmed up the L2ARC before the test. The fourth column in the table below shows how long it takes for the warm up.

 Record Size
Disk Config  Direct I/O  SSD Warmup Time   With SSD MB/s
W/o SSD MB/s  Improved By 
 8KB Striped  4 hours  44.3  30.4  40% 
 8KB Raid-z  4 hours  41.3  7.4  5.6X 
 32KB Raid-z  2 hours  282.4  51.4  5.4X
 32KB Raid-z  2 hours  304.9  147.8  2X 

Filebench Testing using Four SSDs

We then enable all four SSDs and run Filebench test - an open-source framework for simulating applications on file systems. 10 clients access the server over NFSv4, and execute Filebench with an 8 KB record size across 300 GB of file. The test is composed of multiple 300-second small runs without warming up the L2ARC beforehand. Using Analytics, we can easily track how the appliance is behaving when the test is going on. Below are some screen shots from Analytics.

The charts below show how the L2ARC size is increased in about two and half hours to 167GB and how the hit to L2ARC grows during the same period.



The charts below show how the disk I/O operations per second changes with the growth of L2ARC size. From the pie chart, we can see L2ARC already serves 54.7% of the requests while only about 55.7% of the working set has been warmed up (167GB vs. 300GB).


Using Analytics, one can easily get other statistics like NFSv4 operations per second, CPU utilization per second, and disk I/O operations per second broken down by type of operations, etc. And also save worksheets for future reference.

To summarize, the read optimized SSDs enabled by the ZFS L2ARC feature can deliver impressive performance improvements over NFS. And these SSDs can be used to achieve the best price/performance for certain workloads on the Sun Storage 7000 series.


Valid HTML! Valid CSS!

This is a personal weblog, I do not speak for my employer.