使用定位方式优化磁盘缓存
2013-12-17 23:05:08 来源:华军科技数据恢复
1)主机系统的LRU缓存
当应用请求数据时,数据传入LRU缓存。为处理而恢复的数据也由缓存数据装入器拷贝到缓存存储。在传输数据并将其装入主机内存的过程中,LRU很少影响系统的性能。从这个意义上说,在主机内存中实现LRU缓存是极端有效的。
2)主机系统中的预先读缓存
与LRU相比,预先读要求更多的系统内存资源和消耗更多的CPU周期。由于数据装入器独立于任何应用的I/O请求,所以缓存数据的装入需要花费大量的系统资源,包括CPU周期和存储路径、系统I/O总线以及系统存储总线的带宽。
3)主机系统中的透写缓存
除了效果很好外,对于基于主机的透写缓存勿须多说。虽然性能优势不如回写缓存好,但是透写缓存能够避免回写缓存引起的数据一致性问题。
4)主机系统中的回写缓存
系统内存中的回写缓存速度非常之快,这是因为缓存写和随后的I/O请求确认都是即时的。对于诸如事务处理系统这样的高吞吐量环境,系统内存的回写缓存将提供最快的总体性能。注意,确保I/O路径上的所有组件都要使用UPS保护,以使在电源断电后,能即时把脏块写入非易失存储。
注意对于随机访问和事务处理应用,主机系统的磁盘缓存能够提供很大的性能优势。这
些应用的最优组合可能是LRU缓存与回写缓存的组合。
5)设备/子系统中的LRU缓存
LRU缓存可以成功地在设备/子系统中实现,但这种LRU缓存的实现并没有内在的优势。事实上,当在主机内存中实现LRU缓存时,其性能可能会更好。然而,LRU放在子系统中也没有任何错,且可以获得很大的性能改善。如前所述,假如服务器的CPU使用率已经很高(超过75%),或没有适当的内存来建立缓存,那么,在存储子系统中实现缓存则更有意义。
6)主机I/O控制器中的LRU缓存
LRU在主机I/O控制器中也能很好地工作,正像在存储子系统中一样。主机I/O控制器的缓存比子系统中的缓存更快,但不如主机内存缓存速度快。像LRU其他的实现方案一样,将数据装入缓存所花费的额外开销很少。
7)主机I/O控制器中的预先读缓存
在主机控制器中,效率最高的缓存控制器实现是使用缓存控制器电路,就像存储子系统中的缓存控制器一样。同时,这个方法还减轻了系统CPU的负荷。为了将数据传送到缓存,主机控制器必须通过存储路径发出I/O请求给子系统。因为预先读缓存通常用于大量流式数据的应用,且应用的I/O请求和预先读缓存在同一I/O路径上传输,所以可能产生存储路径的拥挤现象。
8)主机I/O中的透写缓存
主机I/O控制器既能实现透写缓存,也能实现回写缓存。像其他透写缓存的实现方案一样,主机I/O中实现的透写缓存也是最保守的方法,它丢失数据的可能性比主机内存中实现的透写缓存更小,但比存储子系统中实现的缓存稍微大一些。与主机内存缓存实现相同,为了防止断电时的数据丢失,需要使用主机系统的UPS。
9)主机I/O控制器中的回写缓存
主机I/O控制器也能够实现回写缓存。类似于主机内存回写缓存,这种回写缓存需要由系统的UPS保护,这样当累积在缓存中的数据被刷新到非易失存储时,仍然保持缓存的数据可访问性。