Example: Improve Disk Read Speed by Level-1 Cache

This document gives an example of testing showing how PrimoCache improves the disk read speed by using memory as level-1 cache.

Testing Platform

Motherboard: ASUS P6T SE (Intel X58 + ICH10R)
CPU: Intel Core i7-950 @ 3.06GHz
RAM: 20GB (4GB x 5, DDR3-1600)
Hard disk: Seagate ST31000528AS(SATA 3Gb/s, 1TB, 7200RPM, 32MB Buffer)
OS: Microsoft Windows 7 Ultimate (x64)
Benchmark Tool: Anvil's Storage Utilities 1.1.0
PrimoCache: version 1.0.1

Disk Read Speed without PrimoCache

Run Anvil's Storage Utilities on a volume to measure the disk read speed without using PrimoCache. Use this result as a baseline to compare the differences in performances when PrimoCache is used. As the figure below shows, the disk read score in this example is 142.99.

Original Disk Speed

Disk Read Speed with PrimoCache

Create a cache task onto the same volume with the following cache configuration.

Level-1 Cache: 9216MB (larger than Test Size)
Block Size: 4KB
Strategy: Read-data & Write-data
Defer-Write: no

Cache Configuration

Run Anvil's Storage Utilities again to measure the disk read speed with level-1 cache. As you can see in the results below, now the disk read score surprisingly increases to 29,454.94, 200 times higher than the baseline.

Cache Read Speed

The reason for this huge improvement on disk read speed is that PrimoCache cached all benchmark testing files into memory and completed all read IO requests in memory. This can be verified with PrimoCache statistics. As the figure below shows, all read data was coming from the cache and PrimoCache reached 100% cache hit rate.

Cache Statistics

Of course, the above benchmark testing only shows the theoretical value at which disk read speed reaches its maximum. In real-world usage, usually there is not enough memory and level-1 cache is too small to store all files. Thus some files or data still need to be read from disk and cache hit rate will be less than 100%.