缓存功能分析

缓存功能分析

ID:33736906

大小:167.00 KB

页数:16页

时间:2019-02-28

缓存功能分析_第1页
缓存功能分析_第2页
缓存功能分析_第3页
缓存功能分析_第4页
缓存功能分析_第5页
资源描述:

《缓存功能分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、缓存功能分析1.缓存功能:21.1.cachehit21.2.cachemiss21.3・cache的使用场景21.3.1.随机读21.3.2.顺序读31.3.3.随机写31.3.4.顺序写42.缓存算法42.1.LeastFrequentlyUsed(LFU):42.2.LeastRecentlyUser(LRU):42.3.LeastRecentlyUsed2(LRU2):52.4.TwoQueues(2Q):52.5.AdaptiveReplacementCache(ARC):52.6.MostR

2、ecentlyUsed(MRU):62.7.FirstinFirstout(FIFO):62.8.SecondChance:62.9.CLock62.10.Simpletime-based:72.11.Extendedtime-basedexpiration:72.12.Slidingtime-basedexpiration:72.13.缓存策略其他考虑点:73.缓存镜像73.1.缓存镜像内容:83.2.缓存镜像一致性:93.2.1.镜像写9322.镜像删除104.缓存掉电保护104.1.持续供电方法:

3、104.2.写入芯片方法:1143数据保险箱技术:115.磁盘缓存掉电保护:126.大容量缓存+多层cache的缺点:127.附录137.1.存储成本:137.2.失效:137.3.替代策略:131.1.最有替代策略:131•缓存功能:缓存的主要用途,是隐蔽由于磁盘存取的机械性质而产生的较长的服务时间。当前磁盘驱动器的平均存取时I'可以亳秒计,而高性能控制器的缓存存取时间一般小于200微秒。由于磁盘存取花费的时间要比缓存存取多30到40倍,因此高效的缓存算法nJ•以对总体的存储性能产生显著的影响。其次,

4、缓存可以将经常会被访问的数据存储到缓存中,当服务器访问该数据时可以直接进行交互,不必要经过后端复杂传输、查找,提高1效率。1.1.cachehitcachehit也就是指命中数据。如果在缓存中,一个条目通过一个标记被找到了,这个条目就会被使用,我们就叫它缓存命中。所以,命中率也就不难理解了。1.2.cachemisscachemiss就是指错过缓存,也就是需要交互的数据不存在缓存川。这里需要注意两点:1.如果还有缓存的空间,那么,没有命中的对象会被存储到缓存中来。2.如果缓存慢了,而又没有命屮缓存,

5、那么就会按照某-•种策略,把缓存屮的I口对象踢出,而把新的对象加入缓存池。而这些策略统称为替代策略(缓存算法,见2.),这些策略会决定到底应该踢出哪些对象。1.3.cache的使用场景根据I/O的工作负荷,缓存的使用场景可以分为四个方面:随机读,顺序读,随机写,顺序写。良好的缓存性能不仅取决于缓存数量,还包括是否有针对其中每个方面的算法,以及这些算法的设计和执行的优秀程度。1.3.1.随机读读缓存可以减少重复访问相同数据的磁盘存取。在访问磁盘存储块时,假定(或者希望)会再次访问相同的数据,因此将数据置于

6、缓存屮。如果主机再次访问该数据,则数据可以直接从缓存返回,从而避免磁盘访问。但是,除了小区域内重复访问数据的I/O之外,通常其它磁盘上还进行其它完全随机的I/O操作。如果其它的这些访问发生速率比较高,并且被读入缓存,那么它们就有可能将数据从热点区域置换,其结果就是热点数据错过(miss)缓存。第一种常用方法,是简单地增加缓存数量,期待足够大量的缓存能够使热点数据保留在缓存中,这种方法既成本高昂,又效率不高,最终结果可能是为了保证数十MB热点数据的缓存击中率,需要数十GB的高速缓存。第二种方法是在不会缓存

7、命屮的LUN上禁用读缓存,从而避免其中的数据污染缓存。第三种方法:内置监测缓存命中(cachehit)情况的代码,如果某个LUN的命中率低于某个水平,就会自动禁止该LUN使用读缓存。因此随机访问流不会被读入缓存屮,也不会置换其它数据。但通过数据结构继续监测该LUN的访问,如果缓存能够为访问模式提供帮助,就会重新启用该LUN的读缓存。1.3.2.顺序读一种简单化的处理方法是对每一个请求都提取大量的数据,它背后的想法(或者其中缺少的东西)是读入比被请求更多的数据,这样对数据的下一个顺序请求就已经在缓存中。这

8、种想法有双重谬误。首先,实际上只有很小比例的请求是顺序的,因此读入“额外数据”所花费的附加时间会大大降低所有访问的性能,不管是否是顺序访问。其次,这些不需要的数据保存在缓存屮,再一次导致将其它数据从缓存屮清除。一般来说,这种不必要的缓存清除要再次通过增加大量(不必要的)缓存来处理。另一种算法是采用预取pre-fetch算法。首先不断监测I/O流,搜索顺序访问模式。即使插入非顺序的I/O,也可以检测到顺序I/O流。检测到顺序流,并且在原先请求

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。