1 / 15
文档名称:

缓存功能分析.doc

格式:doc   大小:411KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

缓存功能分析.doc

上传人:63229029 2017/11/11 文件大小:411 KB

下载得到文件列表

缓存功能分析.doc

相关文档

文档介绍

文档介绍:缓存功能分析
1. 缓存功能: 2
. cache hit 2
. cache miss 2
. cache的使用场景 2
. 随机读 2
. 顺序读 3
. 随机写 3
. 顺序写 4
2. 缓存算法 4
. Least Frequently Used(LFU): 4
. Least Recently User(LRU): 4
. Least Recently Used 2(LRU2): 5
. Two Queues(2Q): 5
. Adaptive Replacement Cache(ARC): 5
. Most Recently Used(MRU): 6
. First in First out(FIFO): 6
. Second Chance: 6
. CLock 7
. Simple time-based: 7
. Extended time-based expiration: 7
. Sliding time-based expiration: 7
. 缓存策略其他考虑点: 7
3. 缓存镜像 8
. 缓存镜像内容: 8
. 缓存镜像一致性: 9
. 镜像写 10
. 镜像删除 10
4. 缓存掉电保护 11
. 持续供电方法: 11
. 写入芯片方法: 11
. 数据保险箱技术: 12
5. 磁盘缓存掉电保护: 13
6. 大容量缓存+多层cache的缺点: 13
7. 附录 14
. 存储成本: 14
. 失效: 14
. 替代策略: 14
. 最有替代策略: 14
缓存功能:
缓存的主要用途,是隐蔽由于磁盘存取的机械性质而产生的较长的服务时间。当前磁盘驱动器的平均存取时间以毫秒计,而高性能控制器的缓存存取时间一般小于200微秒。由于磁盘存取花费的时间要比缓存存取多30到40倍,因此高效的缓存算法可以对总体的存储性能产生显著的影响。
其次,缓存可以将经常会被访问的数据存储到缓存中,当服务器访问该数据时可以直接进行交互,不必要经过后端复杂传输、查找,提高I\O效率。
cache hit
cache hit也就是指命中数据。如果在缓存中,一个条目通过一个标记被找到了,这个条目就会被使用,我们就叫它缓存命中。所以,命中率也就不难理解了。
cache miss
cache miss就是指错过缓存,也就是需要交互的数据不存在缓存中。这里需要注意两点:
1. 如果还有缓存的空间,那么,没有命中的对象会被存储到缓存中来。
2. 如果缓存慢了,而又没有命中缓存,那么就会按照某一种策略,把缓存中的旧对象踢出,而把新的对象加入缓存池。而这些策略统称为替代策略(缓存算法,见2.),这些策略会决定到底应该踢出哪些对象。
cache的使用场景
根据I/O的工作负荷,缓存的使用场景可以分为四个方面:随机读,顺序读,随机写,顺序写。良好的缓存性能不仅取决于缓存数量,还包括是否有针对其中每个方面的算法,以及这些算法的设计和执行的优秀程度。
随机读
读缓存可以减少重复访问相同数据的磁盘存取。在访问磁盘存储块时,假定(或者希望)会再次访问相同的数据,因此将数据置于缓存中。如果主机再次访问该数据,则数据可以直接从缓存返回,从而避免磁盘访问。
但是,除了小区域内重复访问数据的I/O之外,通常其它磁盘上还进行其它完全随机的
I/O操作。如果其它的这些访问发生速率比较高,并且被读入缓存,那么它们就有可能将数据从热点区域置换,其结果就是热点数据错过(miss)缓存。
第一种常用方法,是简单地增加缓存数量,期待足够大量的缓存能够使热点数据保留在缓存中,这种方法既成本高昂,又效率不高,最终结果可能是为了保证数十MB热点数据的缓存击中率,需要数十GB的高速缓存。
第二种方法是在不会缓存命中的LUN上禁用读缓存,从而避免其中的数据污染缓存。
第三种方法:
内置监测缓存命中(cache hit)情况的代码,如果某个LUN的命中率低于某个水平,就会自动禁止该LUN使用读缓存。因此随机访问流不会被读入缓存中,也不会置换其它数据。但通过数据结构继续监测该LUN的访问,如果缓存能够为访问模式提供帮助,就会重新启用该LUN的读缓存。
顺序读
一种简单化的处理方法是对每一个请求都提取大量的数据,它背后的想法(或者其中缺少的东西)是读入比被请求更多的数据,这样对数据的下一个顺序请求就已经在缓存中。
这种想法有双重谬误