欢迎来到天天文库
浏览记录
ID:43603053
大小:378.36 KB
页数:16页
时间:2019-10-11
《【精品】缓存功能分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、缓存功能分析■缓存功能:2cachehit2cachemiss2cache的使用场景2随机读2顺序读3随机写31.3.4・顺序写4■缓存算法4LeastFrequentlyUsed(LFU):4LeastRecentlyUser(LRU):423LeastRecentlyUsed2(LRU2):5321.TwoQueues(2Q):5322.AdaptiveReplacementCache(ARC):5323.MostRecentlyUsed(MRU):6324.FirstinFirstout(FIFO):6325.
2、SecondChance:6326.CLock6327.Simpletime-based:7328.Extendedtime-basedexpiration:7329.Slidingtime-basedexpiration:7330.缓存策略其他考虑点:7■缓存镜像7缓存镜像内容:8缓存镜像一致性:9镜像写9镜像删除10■缓存掉电保护10持续供电方法:10写入芯片方法:11数据保险箱技术:11■磁盘缓存掉电保护:12■大容量缓存+多层cache的缺点:12■附录13存储成本:13失效:1373替代策略:132.12.
3、最有替代策略:131.缓存功能:缓存的主要用途,是隐蔽山于磁盘存取的机械性质而产生的较长的服务时间。当前磁盘驱动器的平均存取时间以毫秒计,而高性能控制器的缓存存取时间一般小于200微秒。山于磁盘存取花费的时间要比缓存存取多30到40倍,因此窩效的缓存算法可以对总体的存储性能产牛显著的影响。其次,缓存可以将经常会被访问的数据存储到缓存中,当服务器访问该数据时可以直接迹行交互,不必要经过后端复杂传输、査找,提高1 效率。1.1.cachehitcachehit也就是指命中数据。如果在缓存中,一个条tl通过一个标记被找到
4、了,这个条廿就会被使用,我们就叫它缓存命中。所以,命中率也就不难理解了。1・2.cachemisscachemiss就是指错过缓存,也就是需要交互的数据不存在缓存中。这里需要注意两点:如果还有缓存的空间,那么,没有命中的对象会被存储到缓存中来。如果缓存慢了,而又没有命中缓存,那么就会按照某一种策略,把缓存中的旧对彖踢出,而把新的对彖加入缓存池。而这些策略统称为替代策略(缓存算法,见2.),这些策略会决定到底应该踢出哪些对象。1.3.cache的使用场景根据I/O的工作负荷,缓存的使川场景可以分为四个方面:随机读,顺序
5、读,随机写,顺序写。良好的缓存性能不仅取决于缓存数量,还包括是否有针对其屮每个方面的算法,以及这些算法的设计和执行的优秀程度。1.3.1.随机读读缓存可以减少重复访问相同数据的磁盘存取。在访问磁盘存储块时,假定(或者希望)会再次访问相同的数据,因此将数据置于缓存屮。如果主机再次访问该数据,则数据可以直接从缓存返回,从而避免磁盘访问。但是,除了小区域内重复访问数据的I/O之外,通常其它磁盘上还进行其它完全随机的I/O操作。如果其它的这些访问发生速率比较高,并且被渎入缓存,那么它们就有可能将数据从热点区域置换,其结果就是
6、热点数据错过(miss)缓存。第一种常用方法,是简单地增加缓存数量,期待足够大量的缓存能够使热点数据保留在缓存中,这种方法既成本高昂,又效率不高,瑕终结果可能是为了保证数十MB热点数据的缓存击中率,需要数十GB的高速缓存。第二种方法是在不会缓存命中的LUN上禁用读缓存,从而避免其中的数据污染缓存。第三种方法:内置监测缓存命中(cachehit)情况的代码,如果某个LUN的命中率低于某个水平,就会自动禁止该LUN使用读缓存。因此随机访问流不会被读入缓存中,也不会置换其它数据。但通过数据结构继续监测该LUN的访问,如果缓
7、存能够为访问模式提供帮助,就会重新启川该LUN的读缓存。1.3.2.顺序读-•种简单化的处理方法是对每一个请求都提取大量的数据,它背后的想法(或者其中缺少的东西)是读入比被请求更多的数据,这样对数据的下一个顺序请求就已经在缓存中。这种想法有双重谬误。首先,实际上只有很小比例的请求是顺序的,因此读入“额外数据”所花费的附加时间会大大降低所有访问的性能,不管是否是顺序访问。其次,这些不需要的数据保存在缓存中,再一次导致将其它数据从缓存中清除。一般来说,这种不必要的缓存清除要再次通过增加人量(不必要的)缓存來处理。另一种算
8、法是采用预取pre-fetch算法。首先不断监测I/O流,搜索顺序访问模式。即使插入非顺序的I/O,也可以检测到顺序I/O流。检测到顺序流,并且在原先请求的数据返冋主机Z后,将向LUN请求额外的数据,其次,将数据返回主机后,我们可以决定是否将从缓存中清除这些数据,因为即使有,也很少会有再次请求被顺序访问过的数据。1.3.3.随机写对于随机写,通
此文档下载收益归作者所有