示例:使用一级缓存提升硬盘读性能

本测试示例演示了PrimoCache使用内存作为一级缓存后硬盘读性能提升的效果。

测试平台

主板:ASUS P6T SE (Intel X58 + ICH10R)
CPU:Intel Core i7-950 @ 3.06GHz
内存:20GB (4GB x 5, DDR3-1600)
硬盘:Seagate ST31000528AS(SATA 3Gb/s, 1TB, 7200RPM, 32MB Buffer)
操作系统:Microsoft Windows 7 Ultimate (x64)
测试工具:Anvil's Storage Utilities 1.1.0
PrimoCache:版本 1.0.1

未使用PrimoCache的硬盘读速度

不安装PrimoCache,运行Anvil's Storage Utilities,测试硬盘的原始读速度。测试结果如下图所示,其中硬盘读性能得分142.99

Original Disk Speed

使用PrimoCache后的硬盘读速度

安装PrimoCache,并对之前测试的硬盘分区建立缓存,缓存配置如下。

一级缓存:9216MB (大于测试长度1GB)
粒度大小:4KB
缓存策略:读数据 & 写数据
延时写入:关闭

Cache Configuration

再次运行Anvil's Storage Utilities,测试此时的硬盘读速度。测试结果如下图所示,可以看到硬盘读性能得分达到惊人的29454.94,提升了200多倍!

Cache Read Speed

测试结果之所以有如此巨大的提升,是因为PrimoCache将测试文件全部缓存到了内存中,因此测试过程中所有对测试文件的读请求均直接在内存中完成,速度非常快,实际体现的是内存读速度。从下图PrimoCache的缓存性能统计数据中也能看到,所有读数据均是从缓存读取,相应地,缓存命中率也达到100%。

Cache Statistics

当然,为了演示最佳效果,这里的测试是在保证测试文件完全被缓存至内存的前提下进行。在实际应用中,由于缓存空间相对于被缓存盘的容量通常会比较有限,不能保证所有文件都会被缓存,此外根据实际需求,缓存配置也有所不同,因此实际应用中的性能可能和这里的测试结果会有差异。

此外,由于测试时PrimoCache缓存没有开启延时写入,测试过程中所有写入请求仍然需要在硬盘完成,因此写性能得分没有提升。