《第二讲:高速缓存技术.ppt》由会员分享,可在线阅读,更多相关《第二讲:高速缓存技术.ppt(38页珍藏版)》请在三一文库上搜索。
1、上一讲要点:存储需求与解决途径,1.容量问题 海量存储 2.效率问题 高性能计算 3.意外灾害问题 容灾技术 4.管理问题 存储管理技术 5.不间断工作问题 高可用性 6. 能源消耗问题 绿色存储,第二讲 高速缓存技术,在计算机主机与外存储器之间存在巨大的速度不匹配的矛盾 如: 一般内存速度: 7ns左右 硬盘平均访问时间: 10ms左右(512字节) ( I/O总线: 133MB/s) 对于此类问题,常采用缓存技术来解决。,1.高速缓存技术 缓存技术是改善I/O性能的一项基本技术。本课讨论的磁盘缓存方法不仅适合传统的存储总线,也适合于新发展的存储网络。 只要系统带多个设备,且性能不同,就存在
2、从慢速设备到快速设备不断更换工作地点以改善系统性能的可能性。 缓存的基本思想:将数据从一个地点拷贝到另一个地点,使之检索起来更快。,访问请求,快速提交,慢速提交,缓存存储,常规存储,1.1 缓存的命中率,缓存命中率 =,由缓存完成的I/O请求次数,I/O请求总数,1.2 缓存与缓冲间的差异,对于开放系统,Unix,NT等,通常的命中率不超过50%。大型机系统的命中率可高达90%。,缓冲(buffer)只起临时存放数据的作用,控制算法简单; 缓存 (cache) 与上相反。,3 2 1 ,1,2,3,图2-1 主机控制器管理的多设备重叠操作,主机I/O控制器,重叠的请求,缓冲内存,存储设备,存储
3、总线,存储设备,缓冲内存,存储设备,设备中的缓冲存储器用于减少访问延迟,以适应主机控制器的性能,缓存内存,缓存总线,缓存 控制器,到磁盘系统,I/O,图2-2 带有一个缓冲控制器和缓冲内存的磁盘缓冲,缓存算法既可以在主机软件中实现,也可以在存储子系统或在主机控制器中实现,2 磁盘缓存的算法,磁盘缓存并不是使设备运行的速度加快,而是缩短了I/O路径的距离,尽可能地用内存的性能代替设备的性能。 磁盘缓存算法中,对应读和写的算法差异很大。 2.1读算法(常用两种) 最近使用(LRU:least recently used)缓存 预先读缓存,图2-3 LRU装入数据的过程,缓存内存,在I/O操作期间,
4、读磁盘数据的同时,数据也拷贝到缓存,响应,请求,响应,请求,存储设备或子系统,LRU算法的缓存控制器,LRU的基本思想:最近读过的数据不久将再次被读。,图2-4 关系数据库的LRU缓存,缓存内存,数据库存储子系统,数据库服务器,LAN,缓存命中,LRU缓存,缓存未命中数据被读入缓存内存,响应,请求,缓存未命中,请求,响应,LRU缓存控制器,3,5,6,1,2,4,1. 发送到缓存内存的缓存命中 3. 发送到存储子系统的缓存未 命中 5. 装入缓存的读缓存未命中,2 .从缓存内存到服务器读的缓存命中 4. 从存储子系统到缓存控制器的读缓 存未命中 6. 到服务器的读缓存未命中,LRU缓存的应用过
5、程,LRU算法适用的数据范围,ERP和MRP系统 Internet电子商务服务器 事物处理系统 顾客服务和支持系统 其他多用户数据库应用,不适用类型: 顺序访问的数据,包括数据仓库,多媒体数据等。,预先读缓存,预先读缓存的基本思想: 已读入的数据将不在需要,而依次需要的是即 将读入的数据块 。,适用范围:文件服务、备份、数据仓库及多媒体等顺序I/O模式的应用。,图2-5 预先读的过程,缓存内存,缓存命中,缓存控制器发出预取请求,将数据写入缓存内存,预读取,I/O请求+响应,缓存未命中,采用预先读算法的缓存控制器,存储设备或子系统,图2-6 文件服务器的预先读缓存,缓存内存,文件存储 子系统,文
6、件 服务器,LAN,缓存命中,预先读缓存,缓存装入预取数据,响应,请求,(缓存未命中),请求,响应,LRU缓存控制器,3,5,1,2,4,1. 缓存命中 3.缓存未命中 5. 从存储子系统预读取,2 . 从缓存的读缓存命中数据 4. 从存储子系统读缓存未命中数据 6. 缓存装入预取数据,预取I/O,6,2.2 写数据到缓存设备或子系统,缓存写与缓存读技术有很大的不同,它更侧重数据的安全性,如断电时的保证数据不丢失;一致性等问题。,用LRU方法为例:如某个应用正在更新存储子系统的数据,由于在缓存中可能存了过时的数据,当应用修改数据时,缓存中的过时数据也必须修改。否则,LRU方法将读到过时数据。,
7、两种基本的写缓存技术: 透写缓存:把数据写入缓存后,立即写入非易失存储器(磁盘) 回写缓存:为了提供更快的响应,将把缓存中的几个I/O写操作集中起来,然后一次性地把它们写入非易失性存储器。,图 2.7 缓存未命中和缓存命中的写请求,过时数据,缓存内存,写I/O请求,可选的写I/O请求,写I/O请求,过时数据,缓存命中,I/O请求修改过的数据,缓存控制器,缓存未命中,非易失存储,透写缓存,图 2.8 缓存命中时的透写缓存过程,写I/O请求,到缓存内存,写I/O请求,缓存命中,写I/O请求,非易失存储,使用透写算法的缓存控制器,写I/O请求,到缓存内存,写I/O请求,缓存命中,写I/O请求,非易失
8、存储,使用回写算法的缓存控制器,图2.9 缓存命中时的回写缓存过程,注:回写缓存决不能在没有UPS的情况下使用,回写缓存,3 磁盘缓存的位置与优化,主机系统内存 设备或子系统 主机I/O控制器 存储网络中的独立缓存,磁盘缓存可能处于不同I/O路径的位置,对系统产生的影响也不同,一般有以下四种情况:,3.1 在主机内存中实现磁盘缓存 用主机内存(或位于系统内存总线的缓存)实现,是访问速度最快的一种方式。 缺点:占用CPU时间和主机内存,在主机使用频率超过75%时,不适合选用。,1)主机系统的LRU缓存 在传输数据并将其装入主机内存的过程中,LRU对系统性能影响 很小。在主机内存中实现LRU效率很
9、高。 2)主机系统的预先缓存 要消耗更多的CPU周期、存储路径、系统I/O总线和系统存储总线的带宽。 3)主机系统中的透写缓存 并可避免数据数据的不一致。 4)主机系统中的回写缓存 效率远高于透写,易产生数据不一致。需要UPS支持。,对于随机事物处理,LRU与回写缓存 可能是最优的组合,图2.10 服务器基本缓存,服务器系统,磁盘缓存,桥控制器,主机I/O总线,主机I/O控制器,存储总线/网络,存储设备/子系统,图 2.11 位于内存总线的缓存,文件系统接口,系统环境,文件系统,卷处理器,磁盘缓存,设备接口,到非易失存储的设备驱动程序,缓存进程,系统内存总线,分配给磁盘缓存的系统内存,图 2.
10、12 设备/子系统中的缓存实现,服务器,桥控制器,主机I/O总线,主机I/O控制器,存储总线/网络,存储设备/子系统,磁盘缓存,3.2 在磁盘子系统中实现缓存,特点:主机CPU不受缓存操作影响,适用于主机负荷重的系统。 因为每个请求都要通过整个I/O路径,所以它比基于主机的缓存操作要慢。,1)设备/子系统中的LRU缓存效率不如在主机内的缓存系统,但它适用主机负荷重的场合(超过75%),或没有适当内存建缓存。 2)设备/子系统中的预先读缓存与在主机内实现不同,它不额外增加主机CPU的负担,及降低竞争主机资源进程的干扰。 3)设备/子系统中透写缓存 对I/O吞吐量要求不高,写操作较少的应用时,透写
11、缓存的效果较好。 4)设备/子系统中的回写缓存 在存储子系统中最常用的方法。,图2.13 使用位于主机I/O控制器上的缓存控制器实现磁盘缓存,服务器,桥控制器,主机I/O总线,主机I/O控制器,存储总线/网络,存储设备/子系统,磁盘缓存,3.3 在主机I/O控制器中实现磁盘缓存,两种实现方法:主机驱动程序;主机I/O控制器上的缓存控制器。后一种方法可减轻主机负担,为大部分系统所采用。特点介于前两者的综合(4种读写操作)。,图 2.14 存储网络中的缓存,存储网络,存储网络,端口 端口 端口 端口 A B C D,到系统 A,到系统 B,到目标设备/子系统C,到目标设备/子系统D,端口/缓存交叉
12、连线,目标控制器+虚拟化,缓存控制+操作,缓存内存池B,缓存内存池A,4 存储网络中的独立缓存,提供多端口、多主机、多目标缓存的能力,5 配置缓存,缓存的大小 :一般而言,对于带有缓存的磁盘子系统,合理的缓存应占总 存储量的0.1%。 多级缓存:为了使某些类型的数据和应用达到更好的工作状态,可以同时使用多级缓存。例如,同时使用LRU和预先读两种缓存。 一般而言,多级缓存应串接在I/O路径上,并行连接方式所产生连贯性问题,仍然是今天存储领域所面临的难题。 应将I/O路径上负担最小的缓存组件放在靠近CPU的位置,如LRU缓存。I/O路径上负担最重的缓存组件应放在离存储子系统的地方。,缓存读1,I/
13、O请求,缓存控制器1:,缓存控制器2:,非易失存储,缓存 1,缓存 2,缓存写1,缓存读2,缓存写2,图 2.15 多级磁盘缓存,正常I/O操作期间装入的缓存,I/O请求,缓存控制器1: LRU+回写,缓存控制器2: 预先读+透写,非易失存储,缓存内存 1,缓存内存 2,收集并发送到非 易失存储的写,有控制器中的预取执行的缓存装入,立即发送到非易失存储的写,图 2.16 SSD在I/O路径上的位置,服务器,桥控制器,主机I/O总线,主机I/O控制器,存储总线/网络,固态磁盘(SSD),6 固态磁盘(SSD),用半导体存储器代替慢速的机电设备 特点:速度快,价格贵。 非易失SSD:带后备电池的D
14、RAM,闪存(读操作快,写操作与磁盘差不多)。,图 2.17 带有一个内部磁盘驱动器的SSD,SSD,I/O写入,内存存储,内部磁盘驱动器,镜像控制器,图2.18 标记命令排队的实现,主机I/O控制器,设备/子系统命令队列,目标设备/子系统,7 标记命令排队,图 2.19 使用标记命令排队的排序命令序列,接收的请求队列 I/O序列号 块序列,排序,10 - 8 9 - 2 8 - 3 7 - 6 6 - 2 5 - 1 4 - 7 3 - 4 2 - 8 1 - 1,重排的请求(在排序后) I/O序列号 块序列,10-8 2-8 4-7 7-6 3-4 8-3 9-2 6-2 5-1 1-1,
15、为了最优设备性能而重新排序I/O请求,8 I/O路径与系统性能,平衡CPU与I/O的性能 8.1 分析CPU和I/O性能提高的影响 例,一进程原来的运行时间为10秒钟,其中5秒钟为CPU花费的时间,5秒钟为I/O操作花费的时间。现安装新CPU,其速度是原来的4倍,系统CPU升级后,新CPU花费时间为原来的1/4,即1.25秒。 新进程时间 = 改善的CPU性能 + I/O性能 = 1.25 + 5 = 6.25 原进程时间 / 新进程时间 = 10 / 6.25 = 1.6倍 假如,再用磁盘缓存技术使I/O性能提高一倍,即2.5秒 则,系统总性能的改善为: 原进程时间 / 新进程时间 = 10
16、 / 3.75 = 2.7倍 通过例子可以看出提高I/O性能对系统的整体性能影响很大.,8.3 从CPU最大值推测主机I/O总线性能,根据1983年以来的PC发展历史,可以推测系统I/O总线性能的最大值约为CPU吞吐量的5%。 随着千兆的64位处理器的出现,可期望系统I/O总线的速度能达到400M/s,但常用的64位PCI总线只有256M/s的速度。 1999年10月30日新发布的InfiniBand规范的双向I/O传输速度达到500M/s。,8.4 配置系统使I/O性能最优,8.2 I/O性能与CPU速度的关联,表 CPU最大的吞吐量,时钟速度(MHz) 数据宽度 理论吞吐量 8MHz 8位
17、 8MB/s 16MHz 16位 16MB/s 33MHz 32位 132MB/s 120MHz 32位 480MB/s 200MHz 64位 1.6GB/s 400MHz 64位 3.2GB/s,表 作为CPU吞吐量的函数估计的主机I/O总线性能,时钟速度 数据宽度 估计的I/O性能 8MHz 8位 0.4MB/s 16MHz 16位 1.5MB/s 33MHz 32位 6.5MB/s 120MHz 32位 24MB/s 200MHz 64位 80MB/s 400MHz 64位 160MB/s,磁盘缓存的结构分类与工作原理 主机软件控制 存储子系统 主机I/O控制器 对缓存的几种基本读写算法与特点 LRU缓存算法 预先读缓存算法 透写缓存算法 回写缓存算法 多级缓存结构与算法的综合,小 结,网上市场调研 销售存储产品的公司有哪些(按市场规模国内外各选三家); 存储产品的主要分类和所占比例; 存储产品的应用发展趋势; 存储产品的技术发展趋势。 (自由组合,每4人一组,交一份报告),作 业,
链接地址:https://www.31doc.com/p-2122018.html