FancyCache Benchmark with Iometer (1) Defer-Write

Iometer (website) is an I/O subsystem measurement and characterization tool and is widely used within the storage industry. Here we use it to test the performance of the FancyCache product.

Hardware Platform:
   Motherboard: ASUS P6T SE
   CPU: Intel i7-950 3.06GHz
   RAM: 4GB x2 = 8GB, DDR3-1600
   Hard disk #1: ST31000528AS (in which OS was installed)
   Hard disk #2: OCZSSD2-2VTX40G (target drive)
   SATA mode: ACHI

Software Version:
   OS: Microsoft Windows 7 Ultimate (64bit)
   Iometer: 2008-06-22-rc2
   FancyCache: Disk Edition, 0.5.0

File System (Target Drive):
   Cluster Size: 4KB
   1 partition only, aligned for SSD

Defer-Write Performance Testing

Testing Preparations

Testing Items:
   Transfer Size (bytes): 1M, 512K, 256K, 128K, 64K, 32K, 16K, 8K, 4K, 2K, 1K, 512
   100% Write
   100% Random & 100% Sequential
   32 Outstanding IOs & 1 Outstanding IO

Other Iometer Specifications:
   Run time: 5 minutes per item
   No I/O alignment (Align IOs on Sector Boundaries)

Below is an example of Access Specification,

FancyCache Testing: An Example of Iometer Access Specification

Sequence of Testing Items in One Batch Run:
   1MB 100% random
   512KB 100% random
   512B 100% random
   1MB 100% sequential
   512KB 100% sequential
   512B 100% sequential

FancyCache Testing: Sequence of Testing Items in One Batch Run

Total time in one batch run: 24 * 5 Minutes = 2 Hours

Secure-erase drive after batch run testing to ensure performance consistency. (Specific to Solid-State Drives)

FancyCache Settings:
   Block Size: 4KB & 16KB
   Cache Size: 1024MB
   Algorithm: LFU-R
   Caching Strategy: Read/Write
   Defer-Write on: latency 10 sec
   L2 Caching: off

Testing Results

Scenario #1: Full range testing, covering the whole drive (drive size 40GB >> 1GB Cache Size)

FancyCache Testing Results: Defer Write, 100% Random Write, full range
FancyCache Testing Results: Defer Write, 100% Sequential Write, full range

Scenario #2: limited range testing, less than cache size
(Specify Maximum Disk Size in Iometer: 2,000,000 Sectors, ~976MB < 1024MB Cache Size)

FancyCache Testing Results: Defer Write, 100% Random Write, limited range FancyCache Testing Results: Defer Write, 100% Sequential Write, limited range

FC050(4KB): FancyCache 0.5.0, Block Size: 4KB
FC050(16KB): FancyCache 0.5.0, Block Size: 16KB


1. In scenario #1, Iometer writes a large test file (about 40GB) which covers the whole drive when preparing the testing, leading to the full comsumption of the cache. When the cache is full, FancyCache is busy emptying cache and writing data back to the drive. This is the worst case. In scenario #2, the whole test file prepared by Iometer is about 976MB which less than cache size. All testing data can be hold in cache. This is the best case and the performance is surprisingly great.

2. From the testing results, we can see that generally the performance of Defer-Write is greater than that of SSD itself, whether it is under the worst case or not. We also see the great performance boost in “1 Outstanding IO” testing even FancyCache works under the worst case.

3. With Defer-Write, FancyCache can combine neighbouring small writes into one large write and align writes with SSD’s erase block boundary. This feature brings the performance boost: Performance of sequential write (512B~8KB) is improved greatly, even 5 times greater than the original performance.