当前位置:首页 » 文件管理 » 分层缓存

分层缓存

发布时间: 2022-11-04 23:02:07

❶ 分层存储与虚拟化技术的分层存储

分层存储其实已经不是一个新鲜的概念,而是已经在计算机存储领域应用多年。其与计算机的发明与发展相伴相生。在冯-诺依曼提出计算机的模型“存储程序”时就已经包含了分层存储的概念。“存储程序”原理,是将根据特定问题编写的程序存放在计算机存储器中,然后按存储器中的存储程序的首地址执行程序的第一条指令,以后就按照该程序的规定顺序执行其他指令,直至程序结束执行。在这里的外存储器与内存储器,就是一个分层存储的最初模型。
分层存储(Tiered Storage),也称为层级存储管理(Hierarchical Storage Management),广义上讲,就是将数据存储在不同层级的介质中,并在不同的介质之间进行自动或者手动的数据迁移,复制等操作。同时,分层存储也是信息生命周期管理的一个具体应用和实现。
而实际上,将相同成本及效率的存储介质放在不同层级之间进行数据迁移复制在实用性及成本上并不是有效的数据存储方式。因此,在不同的层级之间使用有差别的存储介质,以期在相同成本下,既满足性能的需要又满足容量的需要。这种存储介质上的差别主要是在存取速度上及容量上。存取速度快的介质通常都是存储单位成本(每单位存储容量成本,如1元/GB)高,而且容量相对来讲比较低。相应的,存取速度慢的介质通常是为了满足容量与成本方面的要求,既在相同的成本下可以得到更大的容量。所以,从这方面来说,分层存储其实是一种在高速小容量层级的介质层与低速大容量层级的介质层之间进行一种自动或者手动数据迁移、复制、管理等操作的一种存储技术及方案。
一般来说,分层存储中,我们将存取速度最快的那一层的介质层称为第0层(Tier 0),依次为第1层,第2层等等。理论上说,层级的划分可以有很多层,但是在实践中,最多的层级在5层左右。过多的层级会增加数据及介质管理的难道及可用性。因此在层级的设置上有一个拐点,即层级达到一个特定的层数时,会导致成本的上升,而使得可用性、可靠性都会相应下降。通常层级的设定在2-4层之间。如下图所示: 在计算机系统中,CPU 的运行速度往往要比内存速度快上好几百倍甚至更多,为了更多地榨取CPU的计算能力,就需要在访问数据的速度上进行提升,否则内存的速度将成为整个系统的性能短板。因此在这样的思想下,CPU慢慢发展出来1级或者2级这样的存储缓存。实际也表明,缓存的存在确实对于系统性能的提升起到了巨大的推动作用。
相应的,内存的访问速度又是硬盘访问速度的几百倍甚至更多,也是基于CPU类似的指导思想,我们能不能在存储之间也进行这样的分层(或者说缓存)以期提高系统的I/O性能,以满足应用对系统提出的更多高I/O的需求呢?
从某种意义上说,内存其实也就是充当了CPU与外部存储之间的另一个级别的缓存。作为用户来讲,我们当然希望所有需要用到的数据都最好是存在最高速的存储当中。但是这样近乎是乌托邦式的理想至少在当前来说是不现实的。在技术上的难度不说,成本的压力就会使得用户喘不过气来,再一个就是有没有必要的问题,因为有的数据根本都不需要一直存于这样的存储中。在计算机界中有一个很有名的理论,就是说,加上一个中间层,就可以解决计算机中许多的问题。而这个“中间层”也正是我们所寻求的,实际也证明这样的中间层确实取得了非常好的效果。
据IDC数据预测,到2012年,信息数据的增长将会达到50%的复合年增长率,这个增长主要源于越来越来多数据内容生成并存储,经济全球化使用商业各个部门及与商业伙伴之间需要保持连接,使得更多的数据被生成,复制及保存。法规遵从及管理,还有容灾与备份都使得数据的增长持续上升。天下没有一劳永逸的解决方案,我们需要根据不同的数据存储需求,设计不同的存储方案。比如归档,我们可以将数据存储在磁带上,比如需要频繁访问的实时数据我们可以放在内存或者SSD(固态硬盘)设备中,对于容灾或者备份,我们可以使用大容量低成本的存储来应对。正所谓好钢用在刀刃上,用户也希望把资金投向更能产生效益的存储上。
除了需要满足不同的存储需求,还有出于对于高性能高吞吐量应用的支持。因为有的应用需要这样存储系统。特别是现在风头正劲的虚拟化技术。为了在一台设备上支持更多的虚拟应用,就需要系统支持更大的吞吐量以及更高的性能。全部采用高速介质在成本上现在依然不是可行的,也不是必须的。因为根据数据局部性原理,往往被频繁访问的数据是局部而有限的。为了应对部份这样的数据而全采用高速存储实在是过于奢侈。如果我们针对这部份数据另开小灶来解决不是更好?所以分层存储在这里就可以大展拳脚。我们把高频率访问的数据放在高速存储介质上,而其他的数据放在速度较慢一些的介质上,这实际上就是提高了系统的吞吐量。 从计算机系统角度来说,最上层的存储层应该是CPU内的各类型寄存器,其次是CPU内的缓存,其次再是系统内存。因为从分层存储的定义上,此类型存储器是符合定义规则的。因为这些存储器速度与容量都有差别,越靠近CPU的存储器成本越高,速度越快,容量越小,并且在CPU的控制下,数据这些不同类型的存储器中间进行自动的转存。比如寄存器通常在16、32、64、128位之间,而缓存则在几十个字节及到几兆字节之间,内存容量当前通常都在几百兆字节以上,服务器级的内存也上几十个吉字节。很有意思的是,这类型的分层也非常符合上图所示的效益成本曲线图。层级过多时,对于CPU的硬件设计及不同层次之间的数据一致性的保证都是一个挑战。所以,现代CPU在寄存器与内存之间的缓存基本在1-3级。而我们通常使用的386平台的CPU(Intel 及 AMD)基本上都只有两级缓存。这类存储都有一个共同的特点,就是系统掉电后数据不复存在。我们将此类型的分层存储称为易失性存储分层,或者内部存储器分层存储。
而另外一种分类,则是非易失性分层存储,或者叫外部分层存储。此类型的存储介质一般包括固态硬盘(SSD)、机械式硬盘、光盘、闪存盘(包括外置硬盘)、磁带库等等。而此类的存储介质分层正是我们所要关注的,如没有特殊的说明情况下,在此文档中所说的分层存储都是指外部分层存储。一般来说,作为第0层的存储介质通常为 RAM 磁盘(随机访问存储磁盘,其速度与内存同速,但是价格昂贵,使用环境基本上是特殊计算环境)以及 SSD,第1层可能有 FC 15K硬盘或者SAS 15K硬盘,或者相应的10K硬盘。第2层可能有其他类型的硬盘及磁盘库等。第3层,可能是如磁带库以及光盘库这样的离线介质。当然这样的分层不是标准,但是一个实践中常用的分层策略。
如 D2D2T 这样的存储方案,其实就是分层存储的一个实践方案。数据从本地的磁盘转存于于另一个远程的磁盘(D2D)。这个磁盘的形式可以是一个JBOD,或者一个虚拟存储设备,然后再通过一定的转存策略将这个磁盘的数据转存于磁带库或者磁带(D2T)。爱数备份存储柜X系列都支持D2D2T这样的应用。 由上一节可知道,外部分层存储只不过是内部分层存储的一个外延。所以,外部分层存储考虑的问题与内部分层存储实际上是大同小异的。
1、 首先是数据一致性的问题。这个问题比较好理解。如果不同的数据在不同的存储层级之间存在时,数据的改写必然导致数据的不致的问题。在内部分层存储时,可以采用通写策略或者回写策略。而不同的方法也有各自优缺点,这里就不再赘述。但是外部分层存储与内部分层存储有一个最大的不同是,内存储最终数据需要写到内存中,而外分层存储中,则不是必须的。当然也可以设计成这样的实现方案,但是这样话,分层存储的性能优势则必定会受到影响。数据在不同层级之间的连续性可以由一个虚拟层来保证。这个我们在谈到虚拟化时会讨论这个问题。
2、 第二个问题就是命中率的问题。如何设计一套算法或者实现策略来提高数据系统的命中率是分层存储中是否能起到其相应作用的关键。这个与CPU的缓存机制是完全一样的。不过,CPU的缓存机制已经有一套非常成熟的算法设计。而外部分层存储与内部分层存储有其不同的特性,因此,CPU中的缓存机制不能全部照拿过来用。特别是CPU的缓存机制还主要是硬件设计上面的问题。而外部存储层可能还与一些逻辑设计相关,比如文件系统,文件等。从这点上说,外部分层存储的软件设计上比起CPU缓存的设计可能要更复杂一些。
3、 第三个问题就是在分层介质的选择上。上面也提过,不同层级之间的介质应该是有差别的,否则就失去了分层的意义。一般来说,高速介质应该是小容量、高成本,随着层级的往下走,其成本容量曲线应该呈现如下的形式:
即容量越大的单位成本越低,速度越慢,因此应该放到更低的层级中,反之亦然。因此,在存储介质的配置上如何找到一个合适的点,使得成本与效益最优化则是在分层介质选择及策略制定上需要考虑的问题。下面的图中给出了一个实际的可能的配置方案:1、 第四个问题就是数据分层的级别。对于数据的描述有字节级,块级(包括扇区及簇),文件级及文件系统级。当然不同的级别有不同的应用场合,并不是哪种级别好于哪个级别。对于文件级的分层,对于归档,法规遵从则比较适合。对于文件系统级的则多用于容灾及备份系统中。对于块级则可能用在虚拟化中较为合适。因此需要根据不同的需求制定不同的分层级别。
2、 第五个问题就是数据的迁移策略的设计。可以根据数据的重要性、访问频度、大小、年龄来制定迁移策略。但是如同第四点所说明的那样,不同的策略是有不同的应用场合的,没有孰优孰劣的问题。好的策略应该是不同最优策略的组合,也就是因“需”制宜地选择合适的迁移算法或者方法。根据年龄进行迁移的策略可以用在归档及容灾备份系统中。根据访问频度则可以用于虚拟化存储系统中等等。类似的方法已经用于计算机软件设计或者硬件设计当中的很多地方,如LRU(最近最少使用)、ARC(自适应交替缓存)都是可以借鉴的。

❷ 分布式存储的优点有哪些

分布式存储的六大优点
分布式存储往往采用分布式的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息。它不但提高了系统的可靠性、可用性和存取效率,还易于扩展,将通用硬件引入的不稳定因素降到最低。优点如下:

1. 高性能

一个具有高性能的分布式存户通常能够高效地管理读缓存和写缓存,并且支持自动的分级存储。分布式存储通过将热点区域内数据映射到高速存储中,来提高系统响应速度;一旦这些区域不再是热点,那么存储系统会将它们移出高速存储。而写缓存技术则可使配合高速存储来明显改变整体存储的性能,按照一定的策略,先将数据写入高速存储,再在适当的时间进行同步落盘。

2. 支持分级存储

由于通过网络进行松耦合链接,分布式存储允许高速存储和低速存储分开部署,或者任意比例混布。在不可预测的业务环境或者敏捷应用情况下,分层存储的优势可以发挥到最佳。解决了目前缓存分层存储最大的问题是当性能池读不命中后,从冷池提取数据的粒度太大,导致延迟高,从而给造成整体的性能的抖动的问题。

3. 一致性

与传统的存储架构使用RAID模式来保证数据的可靠性不同,分布式存储采用了多副本备份机制。在存储数据之前,分布式存储对数据进行了分片,分片后的数据按照一定的规则保存在集群节点上。为了保证多个数据副本之间的一致性,分布式存储通常采用的是一个副本写入,多个副本读取的强一致性技术,使用镜像、条带、分布式校验等方式满足租户对于可靠性不同的需求。在读取数据失败的时候,系统可以通过从其他副本读取数据,重新写入该副本进行恢复,从而保证副本的总数固定;当数据长时间处于不一致状态时,系统会自动数据重建恢复,同时租户可设定数据恢复的带宽规则,最小化对业务的影响。

4. 容灾性

在分布式存储的容灾中,一个重要的手段就是多时间点快照技术,使得用户生产系统能够实现一定时间间隔下的各版本数据的保存。特别值得一提的是,多时间点快照技术支持同时提取多个时间点样本同时恢复,这对于很多逻辑错误的灾难定位十分有用,如果用户有多台服务器或虚拟机可以用作系统恢复,通过比照和分析,可以快速找到哪个时间点才是需要回复的时间点,降低了故障定位的难度,缩短了定位时间。这个功能还非

5. 扩展性

6. 存储系统标准化

❸ hadoop存储方式

传统化集中式存储存在已有一段时间。但大数据并非真的适合集中式存储架构。Hadoop设计用于将计算更接近数据节点,同时采用了HDFS文件系统的大规模横向扩展功能。虽然,通常解决Hadoop管理自身数据低效性的方案是将Hadoop数据存储在SAN上。但这也造成了它自身性能与规模的瓶颈。现在,如果你把所有的数据都通过集中式SAN处理器进行处理,与Hadoop的分布式和并行化特性相悖。你要么针对不同的数据节点管理多个SAN,要么将所有的数据节点都集中到一个SAN。但Hadoop是一个分布式应用,就应该运行在分布式存储上,这样存储就保留了与Hadoop本身同样的灵活性,不过它也要求拥抱一个软件定义存储方案,并在商用服务器上运行,这相比瓶颈化的Hadoop自然更为高效。大数据培训这么火的原因有很多。注意不要混淆超融合与分布式。某些超融合方案是分布式存储,但通常这个术语意味着你的应用和存储都保存在同一计算节点上。这是在试图解决数据本地化的问题,但它会造成太多资源争用。这个Hadoop应用和存储平台会争用相同的内存和CPU。Hadoop运行在专有应用层,分布式存储运行在专有存储层这样会更好。之后,利用缓存和分层来解决数据本地化并补偿网络性能损失。

❹ 地图缓存使用指南

地图缓存是快速访问地图服务的有效方式。目前流行在线地图服务,如 Google Maps,MapBar,BingMaps 等,对浏览速度和并发性要求都比较高,均采用缓存地图的方式满足快速访问地图的需求。

什么是地图缓存?

作为一种改善地图浏览用户体验的优化策略,地图缓存实际上是包含了一系列比例尺一定地图范围内的地图切片文件。在服务端创建地图缓存之后,客户端的地图操作,比如放大、缩小和平移,都会向服务端发送一个 URL 请求,此时,服务端按照请求返回预先生成的地图切片,从而达到降低服务器负担并快速显示地图,提升地图浏览速度。

为什么使用地图缓存?

使用地图缓存时,只需要付出一次生成缓存的代价,就可以提供给客户端地图显示以快速的响应速度。地图缓存是以一系列不同比例尺下地图图片形式提供的,因此不受普通地图显示上的约束,比如地图信息量的大小、地物的复杂程度、是否带有标注、所使用的地图符号等的限制。因为,一般情况下,地图渲染的细节越多,承载的信息量越丰富,同等环境下,绘制矢量地图就越慢,但使用了地图缓存,客户端在获得了同样显示效果的同时,等待时间却大大缩短。特别是对海量数据,使用缓存可以极大地提高浏览速度,加速地图响应时间,最终提升用户体验。

SuperMap产品针对海量数据,在保证客户端高效访问的前提下,提供了一套完备的二三维缓存体系。SuperMap iDesktop 8C 桌面产品支持生成影像缓存、地形缓存、矢量缓存、模型缓存、地图缓存,还可以对场景直接生成场景缓存。生成的缓存数据可以有多种方式在地图窗口或者场景窗口中加载,也可以部署到服务端进行发布,方便客户端进行浏览。

为了帮助用户深入了解SuperMap 的地图缓存技术、有效使用 SuperMap 产品生成和发布地图缓存等,本专题文档就地图缓存的相关内容进行阐述。

1. 地图缓存的目录结构

地图缓存根据缓存版本的不同,生成的缓存目录的层次结构有所不同。SuperMap iDesktop 7C 桌面应用程序目前支持六种不同版本的地图缓存。

地图缓存的目录结构主要采用 iServer6R,iServer 2.0和 IS .NET 三种缓存策略,按照不同比例尺级别进行分层,都是从指定范围的左上角为起点进行分块。其中2.0,2.1版本的地图缓存均采用 IS .NET 缓存策略,3.0,3.1版本的地图缓存均采用 iServer 2.0 缓存策略,4.0和5.0版本的缓存采用 iServer 6R 缓存策略。

下面就这三种缓存版本的目录结构做详细的介绍。

1.1. iServer 6R 缓存目录结构说明

iServer 6R 是针对 UGC(UniversalGIS Class)系列产品的缓存策略。UGC 系列产品包括桌面产品 SuperMap iDesktop 7C,组件式二次开发平台 SuperMap Objects Java/.NET 6R 以及服务器产品 SuperMapiServer 6R 系列产品。

iServer 6R 缓存策略生成的地图缓存目录共分为六个层次,如下图所示:

图:iServer 6R 缓存目录结构说明

第一层:缓存根目录,用来保存不同缓存文件。缓存根目录名称可以为任意名称。在生成缓存时,通过输入缓存名称来指定。

第二层:地图缓存目录。默认名称格式为:MapName_Width×Height。其中MapName

是地图名称,Width 和 Height 是16进制的图片宽高,例如,目录为世界地图_Day_100×100,表示地图缓存的图片大小为256像素×256像素。

第三层:不同比例尺级别缓存目录。分层目录名称为设置的比例尺大小。如15625000文件夹下保存的是比例尺为15625000时的所有地图切片文件。

第四层:不同空间区域行号缓存目录。目录名称以空间区域(缓存范围)行号命名。所谓空间区域指的是将地图按照网格分块算法将一幅地图分为多个块,每一个分块表示一个空间区域。每个空间区域的宽高都是缓存块的整数倍。区域内至少有一张图片,行号就是空间区域在指定范围内的行数,行号从上到下逐渐增大,用十进制表示。范围扩大时行号可以是负值。

第五层:不同空间区域列号缓存目录。目录名称以空间区域(缓存范围)列号命名。列号就是空间区域在指定范围内的列数,列号从左到右逐渐增大,用十进制表示。范围扩大时列号可以是负值。

第六层:缓存图片文件名称。其格式为:RowxCol_MapHashCode.postfix。其中 Row 表示缓存图片按缓存块划分的行号索引,Col 表示缓存图片按缓存分块划分的列号索引,Row 和 Col 都可以是负数。MapHashCode 表示当前比例尺下地图的16位 HashCode 值,postfix 是缓存图片文件的扩展名。如上图中的名称为 0000×0001_108F8B08FIX.png 的图片,0000为行号,0001为列号,108F8B08FIX 为16位的 HashCode,png 为图片的扩展名。

1.2. IS .NET 缓存目录结构说明

IS .NET 缓存策略是SuperMap 最早使用的缓存策略,也是通过分层分块生成切片文件(影像)的思路进行缓存构建,并且从坐标系、地图、图层风格以及数据范围等方面考虑了缓存更新问题。它主要是 SFC(SuperMap Foundation Class)系列产品采用的缓存策略。

IS .NET 缓存策略生成的二维地图缓存目录共分为五个层次,如下图所示:

第一层:缓存根目录,用来保存不同缓存文件。缓存根目录名称可以为任意名称。在生成缓存时,通过输入缓存名称指定。

第二层:地图缓存目录。默认名称格式为:MapName_Width×Height。其中 MapName 是地图名称,Width 和 Height 是16进制的图片宽高,例如,目录为世界地图_Day_100×100,表示地图缓存的图片大小为256像素×256像素。

第三层:不同比例尺级别缓存目录。分层目录名称为设置的比例尺大小。如15625000文件夹下保存的是比例尺为15625000时的地图切片文件。

第四层:图片索引目录。按照网格分块算法将某一比例尺下的地图切割成多个图幅,每一个图幅在整个地图中都有一个索引值对应,形为:X×Y。X,Y 分别表示图幅在地图分块队列中的列号和行号。

第五层:缓存图片文件名称。其格式为:centerIndex_MapHashCode.postfix,其中centerIndex 表示缓存图片的中心点索引,MapHashCode 表示当前比例尺下地图的 HashCode 值,postfix 是缓存图片文件的扩展名。如上图所示,名称为332×7361_108F8BFIX.png 的图片,(332,7361)表示图片中心点的索引值,108F8BFIX 为当前比例尺下地图的 HashCode 值,png 为图片的后缀名。

1.3. iServer 2.0 缓存目录结构说明

iServer 2.0 缓存策略与 IS .NET缓存策略相似,是 SuperMap iServer 2.0 产品的缓存策略。iServer 2.0 缓存策略生成的二维地图缓存目录共分为五个层次,如下图所示:

图:iServer 2.0缓存目录结构说明

第一层:缓存根目录,用来保存不同缓存文件。缓存根目录名称可以为任意名称。在生成缓存时,通过输入缓存名称指定。

第二层:地图缓存目录,文件夹名称格式为:MapName_Width×Height,其中 Width×Height 按照10进制计算,即目录名称为:地图名称_图片的实际宽×高。

第三层:不同比例尺级别缓存目录。分层目录名称为设置的比例尺大小。如15625000文件夹下保存的是比例尺为15625000时的地图切片文件。

第四层:缓存图片索引目录({Index_x})。将地图分块之后,对每一个图片分别建立索引号。对每一副地图,按照要生成的缓存图片大小生成 M×N 个图片,每一列为 Index_x,x 的值从 0 到 N-1,每一行为 Index_y,y 的值从 0 到 M-1。在这一层,目录名为每一列的索引名,即 Index_x,表示每一列图片缓存的目录。

第五层:缓存图片文件名称。其格式为:Index_y.postfix的值。如上图中选中的文件夹,文件夹5表示 X 索引号(Index_x)为5 ,图片名称15表示 Y 索引号(Index_y)为15,则此图片位于地图目录的第5行第15列。

2. 地图缓存存储类型

SuperMap 缓存有两种存储类型,即原始型与紧凑型。

2.1. 原始型

当缓存储存类型为原始型,切片文件以单独的图片文件格式存放在磁盘上,不对数据进行压缩,能够直接读取。地图缓存数据直观地表现为多个文件夹下的原始图片。

原始型存储方式具有以下特点:

l 可以直接读取,比较直观。

l 占用磁盘空间大,不太易于管理,拷贝和迁移不太方便。

l 对密级较高的数据,不能设置密码

2.2. 紧凑型

当缓存储存类型为紧凑型时,对原始的切片文件采用一定的压缩和加密机制,在结构上采用一组文件替代原始的图片格式的缓存机制。此时,不同比例尺文件夹下的缓存数据将表现为一组文件,该组文件包括两个部分:索引文件(.sc)、一组数据文件(.sc00和*.lock)。如下图所示,为世界地图_Day 生成的紧凑型缓存文件。

其中,索引文件为 *.sc(SuperMapCache File)格式;数据文件为 *.scXX(SuperMap Caceh File Data)格式,这里的 XX 不是两个字母,是两个16进制数字(00~FF)。目前只支持两位16进制数,所以最多支持256个数据文件。数据文件的个数由缓存数据的大小决定,一个数据文件最大为2G。

与原始型相比,紧凑型存储方式具有以下优势:

3. 使用地图缓存的建议

为了更高效的生成地图缓存,可以从以下几个方面考虑:

3.1. 选择合适的比例尺系列

为了充分利用缓存数据,同时实现多级缩放,可以对地图设置多个比例尺。多设置一些比例尺级别,可以在浏览过程中比较顺畅,不会出现比较大的跳跃。在地图制作的过程中要考虑要素在不同的比例尺下是否需要显示。比如在1:100000的比例尺下,河流是线状的,在1:10000的比例尺下,可能需要讲河流显示为面状的。在小比例尺下,一些注记不需要显示,但随着比例尺的扩大,注记可能需要显示。这种情况下,需要考虑合适的比例尺级别了。

3.2. 缓存路径设置

如果生成的缓存要在 SuperMapiServer Java 6R 服务端发布,可以直接将 SuperMap iDesktop 7C 桌面缓存路径设置为 SueprMap iServer Java 6R 的出图路径下,即 %SuperMapiServer Java_HOME%webappsiserveroutputcache,否则缓存切片拷贝可能会花费比较长的时间。

3.3. 适当的制作地图

制作地图的过程中,可以考虑对线型或者文本对象使用反走样,对过小的对象进行过滤。

对地图中的过小对象使用过滤条件进行过滤,可以在不影响地图所承载的信息量的情况下,将提升地图浏览速度。

进行反走样后矢量地图中的线型和文本看起来更光滑,提高视觉感受,但会造成性能下降。因此在使用反走样时,需要浏览速度和性能之间寻找一种平衡,既要达到浏览效果最佳,也要保证浏览速度。

对比较复杂的地图,要避免对象节点过多,可以考虑进行光滑处理或者重采样。

3.4. 保持工作空间一致

工作空间中的地图参数决定了SuperMap iServer Java 使用的缓存文件中缓存图片的命名,因此需要保证用于制作缓存的工作空间中的地图和用于 SuperMap iServer Java 发布的工作空间中的地图一致。影响参数包括地图的风格、数据的连接情况、图层顺序、默认比例尺、地图范围等。因此制作完成缓存后,尽量不要对工作空间的地图进行修改,以保证发布的地图与用于制作缓存的地图一致。

同时需要保持地图中所有地图可用,所有图层对应的数据集合数据源在工作空间中都存在,不能有无对应数据源和数据集的空连接图层。对数据集中对象的编辑,如添加、删除、更新等,不会影响编辑区域以外的缓存图片(如果需要的话,只需更通过 SuperMap iServer 更新这部分区域的缓存即可)。

3.5. 合理设置地图缓存范围和索引范围

可以为频繁访问的地图区域生成缓存,以降低生成和存储缓存的成本。例如,在访问世界地图时,对于广大的无人区,可以不生成缓存。

用 SuperMap iDesktop7C 生成地图缓存时建议将索引范围设置为发布地图的整幅地图范围,以便与SuperMap iServer Java 缓存索引范围保持一致。在根据需求修改地图缓存的范围信息时,也需要保持索引范围是整幅地图范围。

缓存图片与出图设备无关的特性

利用 SuperMap iDesktop7C 制作地图缓存时,如果 SuperMap iDesktop 7C 所在的计算机与 SuperMap iServer Java 所在的计算机不是同一台机器,有可能由于设备显示地图分辨率不同,从而不同设备上的缓存不能很好地一起使用,例如拼接出现问题等。SuperMap iDesktop 7C 桌面支持配置地图缓存与设备显示分辨率无关。具体的操作方法如下:

3.6. 在 SuperMap iDesktop7C 桌面端生成的地图缓存,如需在 SueprMap iServer Java 服务端发布,需要注意,生成紧凑型地图缓存时,不要对缓存进行加密,即不要设置密码,否则在服务端发布会有问题。

❺ 如何利用固态硬盘进行存储分层

固态硬盘不是用来存储的,它的优势在读取,所以,固态硬盘要用来安装操作系统和常用的软件。
存储的事情,交给机械硬盘来做。

❻ 计算机采用分层次存储体系结构的原因 答完整

在计算机网络技术中,网络的体系结构指的是通信系统的整体设计,它的目的是为网络硬件、软件、协议、存取控制和拓扑提供标准。现在广泛采用的是开放系统互连OSI(Open System Interconnection)的参考模型,它是用物理层、数据链路层、网络层、传送层、对话层、表示层和应用层七个层次描述网络的结构。你应该注意的是,网络体系结构的优劣将直接影响总线、接口和网络的性能。而网络体系结构的关键要素恰恰就是协议和拓扑。目前最常见的网络体系结构有FDDI、以太网、令牌环网和快速以太网等。

采用分层次的结构原因:各层功能相对独立,各层因技术进步而做的改动不会影响到其他层,从而保持体 系结构的稳定性

❼ ssd缓存加速和自动分层的区别

没有什么区别

❽ 高速跟踪缓存是什么

、高速缓存的概念和原理

1、高速缓存出现的原因
高速缓存(Cache)的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。为了减少这种情况的发生,人们就想到了使用Cache,它采用一种读写速度要比系统内存快很多的特殊静态内存。系统工作时,将运行时要经常存取的一些数据从系统内存读取到Cache中,而CPU会首先到Cache中去读取或写入数据,如果Cache中没有所需数据(或Cache已满,无法再写入),则再对系统内存进行读写,另外Cache在空闲时也会与内存交换数据。其实质就是是在慢速DRAM和快速CPU之间插入一速度较快、容量较小的SRAM,起到缓冲作用,使CPU既可以以较快速度存取SRAM中的数据,提高系统整体性能,又不使系统成本上升过高。

2、高速缓存的工作原理
Cache的工作原理是基于计算机程序访问的局部性。对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。对这些地址的访问具有时间上集中分布的倾向。数据分布以及工作单元的选择都可以使存储器地址相对集中。这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象,就称为程序访问的局部性。根据程序的局部性原理,就为Cache的存在提供了理论依据,系统正是依据此原理,不断地将与当前指令集相关联的一个不太大的后继指令集从内存读到Cache,然后再与CPU高速传送,从而达到速度匹配。

3、高速缓存的分级结构

CPU高速缓存是分级构造的,一般由L1和L2两极构成,通常L1 Cache的速度最快,与CPU核心的距离也最近,但容量较小,而L2 Cache 速度稍慢,但容量较大。Cache采用分级结构的主要理由在于:对于一个典型的一级缓存系统的80%的内存申请都发生在CPU内部,只有20%的内存申请是与外部内存打交道。而这20%的外部内存申请中的80%又与二级缓存打交道。因此,采用分级结构将更加有利于效能的提升和成本的合理分配。

这种分层的高速缓存布局有助于弥合处理器与系统内存速度之间不断加大的差距,处理器速度每年大约提高50%,而DRAM存取速度每年仅提高5%,由于性能不匹配程度的加剧,CPU将增加第三级,甚至第四级高速缓存。

4、高速缓存的构成
目前Cache基本上都是采用SRAM存储器,SRAM是英文Static RAM的缩写,它是一种具有静志存取功能的内存,不需要刷新电路即能保存它内部存储的数据。不像DRAM内存那样需要刷新电路,每隔一段时间,固定要对DRAM刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,这也是目前不能将Cache容量做得太大的重要原因。它的特点归纳如下:优点,节能、速度快,不必配合内存刷新电路,可提高整体的工作效率。 缺点,集成度低,相同的容量体积较大,而且价格较高,少量用于关键性系统以提高效率。

二、CPU 高速缓存的发展历史
高速缓存最初应用在CPU领域,目前在CPU领域的应用也最为广泛和深入。下面就简单谈谈高速缓存随CPU的发展而不断变化的历史过程。

1、80486开始出现了内部Cache
PC在诞生的初期并不存在Cache的概念,由于CPU主频很低,DRAM的存取时间甚至快于CPU存取时间,因此无需Cache。 80386时代开始出现了外部Cache。在80486时代CPU内部才正式出现了Cache。实际上80486就是由更高主频的80386 加80387数字协处理器以及8kB 内部Cache构成。80486芯片内由8kB的Cache来存放指令和数据。同时,80486也可以使用处理器外部的第二级Cache,用以改善系统性能并降低80486要求的总线带宽。

2、Peutium时代Cache技术发展迅速
Peutium不仅分离L1 Cache和L2 Cache ,而且由于Pentium处理器采用了超标量结构双路执行的流水线,有2条并行整数流水线,处理器也需要对命令和数据进进双倍的访问。为使这些访问不互相干涉,Intel把在486上共用的内部Cache,分成2个彼此独立的8kB代码Cache和8kB数据Cache,这两个Cache可以同时被访问。这种双路高速缓存结构减少了争用Cache所造成的冲突,提高了处理器效能。Pentium的Cache还采用了回写写入方式,这同486的贯穿写入方式相比,可以增加Cache的命中率。此外,还采用了一种称为MESI高速缓存一致性协议,为确保多处理器环境下的数据一致性提供了保证。在Pentium MMX中更是增大了L1的容量,并改进了相关的算法。

3、Pentium Pro出现内嵌式L2 Cache

为使Pentium Pro的性能超过Pentium,必需使用创新的设计方法,Pentium Pro使用了内嵌式L2 Cache,大小为512kB。此时的L2已经用线路直接连到CPU上,好处就是减少了对L1 Cache的需求。L2 Cache与CPU同步运行。当L1 Cache不命中时,立刻访问L2 Cache,不产生附加延迟。为进一步减少因要访问的信息不在高速缓冲中时所带来的性能损失,Pentium Pro的L1和L2都设计成非锁定型。即当哪个Cache中没有CPU所需的信息时,它不妨碍后面访问Cache的处理过程。但限于当时的CPU制造工艺,Pentium Pro的内嵌式L2 Cache 良品率太低,生产成本过高, Pentium Pro成为一款寿命短暂的过渡产品。

4、PentiumⅡ的双重独立总线
PentiumⅡ是Pentium Pro的改进型,具有MMX指令,使用动态执行技术,采用双独立总线结构。PentiumⅡ同样有2级Cache,L1为32kB(指令和数据Cache各16kB)是Pentium Pro的一倍。L2为512kB。
Pentium Ⅱ与Pentium Pro在L2 Cache 的不同主要在于L2 Cache已不在内嵌芯片上,而是与CPU通过专用64位高速缓存总线相联,与其它元器件共同被组装在同一基板上,即“单边接触盒”上。双独立总线结构就是:L2高速缓存总线和处理器至主内存的系统总线, PentiumⅡ处理器可以同时使用这两条总线,与单一总线结构的处理器相比,该处理器可以进出两倍多的数据。

5、PentiumⅢ L2 Cache进一步改进
PentiumⅢ也是基于Pentium Pro结构为核心,在原有MMX多媒体指令的基础上,又增了70多条多媒体指令。它使用动态执行技术,采用双独立总线结构。 PentiumⅢ具有32kB非锁定L1 Cache和512kB非锁定L2 Cache。L2可扩充到1~2MB,具有更合理的内存管理,可以有效地对大于L2缓存的数据块进行处理,使CPU、Cache和主存存取更趋合理,提高了系统整体性能。在执行大数据流量程序时,高效率的高速缓存管理使PⅢ避免了对L2 Cache的不必要的存取。由于消除了缓冲失败,多媒体和其它对时间敏感的操作性能更高了。对于可缓存的内容,PⅢ通过预先读取期望的数据到高速缓存里来提高速度,这一特色提高了高速缓存的命中率,减少了存取时间。

三、其他配件中的高速缓存
Cache从本质上说是一种高速设备和低速设备的速度匹配技术,不仅用在提高CPU对内存的读写速度上,而且在电脑的其它配件中也得到了广泛应用。在较慢速的其它外围设备和内存的数据交换中,甚至在网络通讯中,都需要使用Cache技术。推而广之,凡是在传输速度有较大差异的设备之间,都可以利用Cache的速度匹配技术。

1、主板高速缓存
由于在Pentium II推出之前,CPU只有内部集成的L1 Cache(一级高速缓存),L2Cache(二级高速缓存)都被放置在主板上。Pentium时代的主板上大都用速度较快,容量较大的同步PB SRAM (Pipeline Burst SRAM 管线突发式静态内存),一般为256KB或512KB。当时在主板上还存在Tag SRAM的概念。

Tag SRAM,即标记的静态随机存取存储器,它是在高速缓存系统中配合高速缓存的附加SRAM,它也是高速缓存,只是用在高速缓存电路中记录地址数据,当CPU要读取主存某一个地址中的数据时,会先到高速缓存电路中去寻找,对高速缓存系统的Tag SRAM所记录的地址数据进行搜寻和对比,当高速缓存内也存有此地址的数据时,高速缓存总线的仲裁控制电路即将数据读取传回CPU,若对比Tag SRAM记录的地址数据而找不到此数据的地址时,CPU就会到主存读取数据。因此Tag SRAM与高速缓存的命中率有很大关系。由于现在CPU内部都集成了L2 Cache,故PII以后,主板上都不再集成Cache了。

2、CPU高速缓存的应用
关于CPU高速缓存的发展历史等相关情况,前面已经谈及。这里主要介绍一下目前主流CPU使用高速缓存的情况。

象最新的Northwood P4处理器,不仅采用了0.13 微米工艺生产,其体系结构也有所改变,提高了运算效率(指令周期)。 并且将L2 CACHE的容量由老P4的256K 增加为512K。在性能上有10%左右的提升。

Tualatin 赛扬的二级缓存采用了全速256KB(8路), Pentium III同样大小的二级缓存,这对于提高CPU的性能有很大的帮助。Tualatin核心赛扬的性能非常不错,在很大程度上就是得益于256KB的全速缓存。这也充分反映出高速缓存对电脑配件性能的影响。

AMD 的Morgan实际上和Palomino核心的毒龙规格相同,只是CPU内部L2 Cache有所不同。最引人注意的一点是改进了Cache算法。在Morgan中包含了一个硬件化的数据预读取规则。这个功能就是在CPU对数据进行了处理之后,预读取设备可以猜测哪些数据是CPU所需要的。如果这些数据并没有在Cache中,那么这个预读取设备就会自动到主内存中去重新获取这个数据;而如果这个数据已经存在于Cache之中的话,那么CPU就会更加快速地得到这个数据。

Athlon XP无疑是AMD今年最成功的产品,它采用了类似于Pentium 4的硬件预读技术--执行跟踪高速缓存,预先将处理器可能需要的数据从主内存读到缓存中,这一过程能明显提高系统总线和内存带宽的利用率,进而提升系统性能。

主要用于服务器的Merced 对Cache的要求更高了。为此,lntel在芯片内开发新的Cache,并增加L1 Cache的容量,来平衡CPU和DRAM间的速度。为此,在Merced的片上最接近执行单元旁再设另一处Cache,称为L0缓存,是指令/数据分离型。由于L0Cache在物理位置上比L1离执行单元更近,布线距离的缩短,使它与执行单元间的数据交换速度比L1还快,可以进一步提高工作主频。 同时,还要在芯片内部配置超过1MB的大容量L1 Cache。芯片内部Cache比外部Cache更易于提升与执行单元间的数据传送速度。

3、硬盘高速缓存

在PC的磁盘系统中,高速缓存也得到了广泛应用。为提高内存对硬盘的读写速度,就要建立磁盘高速缓存,不过硬盘高速缓存不必使用昂贵的SRAM,使用普通的DRAM即可,因为DRAM内存的存取速度对CPU来说较慢,但对磁盘的存取速度却是很快的。这是因为磁盘存储系统包含有磁头的机械运动,而机械运动无法跟传送电信号的电子速度相比。以前硬盘内部集成的高速缓存只有512K左右,而现在硬盘普遍将高速缓存的容量提升到2M以上,个别产品甚至达到了8M。由于硬盘Cache无需使用高速的SRAM,除了内部集成的SDRAM,我们还可以在系统主内存中划出一个区域,作为专用的磁盘缓冲区,采用一定的数据结构,即可实现磁盘存取的二级Cache技术。硬盘高速缓存的工作过程及原理与CPU高速缓存类似,也是把即将访问的数据整块地拷贝到高速缓存区中,然后内存再到高速缓存中去逐个读取数据。由于数据在RAM空间内部传送要比在RAM与磁盘间传送快得多,从而系统由此提高了存取速度。

下面给大家介绍一下西数WD1000BB-SE 8MB缓存硬盘,由于内存的读写速度大大高于硬盘的读写速度,因此大容量的缓存可以有效提高存储器的数据传输速度。但目前市面所售的大部分硬盘都只带512K--2MB的缓存。西数前段时间推出的7200转,100G硬盘特别版WD1000BB-SE,其单碟容量为33G,接口类型为ATA100,平均寻道时间8.9毫秒,这方面参数与其他硬盘相比并无特别,不过WD1000BB-SE将硬盘的缓存容量从2MB直接提升到了8MB。引起了业界的普遍关注。经过多方面评测,由于缓存容量的加大,这款IDE接口硬盘的实际性能已经接近或超越了不少10000转SCSI接口硬盘,成为IDE硬盘中的速度王者。这也充分反映出高速缓存对电脑配件性能的影响。

4、刻录机的缓存
缓存容量的大小是衡量光盘刻录机性能的重要技术指标之一,刻录时数据必须先写入缓存,刻录软件再从缓存区调用要刻录的数据,在刻录的同时后续的数据再写入缓存中,以保持要写入数据良好的组织和连续传输。如果后续数据没有及时写入缓冲区,传输的中断则将导致刻录失败。因而缓冲的容量越大,刻录的成功率就越高。市场上的光盘刻录机的缓存容量一般在1MB~4MB之间,目前最大的有8M缓存的产品。尤其对于IDE接口的刻录机,缓存容量很重要。增加高速缓存既有利于刻录机的稳定工作,同时也有利于降低CPU的占用率。 总之缓存大小对刻录机是非常的重要的,缓存越大刻录时就越稳定。目前市场上有多款刻录机都带有8M缓存,配合其他防刻死技术,有效防止了出现“缓存欠载”导致刻录失败的问题。

在普通光驱中也内置有高速缓存,当然其作用没有刻录机中的重要,主要是为了提高读盘效率,降低CPU占用率,因此容量也比较小,一般只有512K。

5、其他设备的高速缓存
在PC其他配件中也都存在高速缓存的应用。比如在显示系统中,由于3D应用的迅猛发展,现在显卡上的显示内存普遍达到了32M以上,甚至多达128M,因此也广泛使用着高速缓存技术,如前台缓存、后台缓存、深度缓存和纹理缓存等。

现在还有所谓CDRAM(Cache DRAM) 带高速缓存的内存,就是在内存芯片上集成了特殊构造的SRAM。发展好的话过几年有可能成为主流内存。除此之外,甚至在声卡、RAID卡、SCSI卡中也带有高速缓存,

四、高速缓存的调整及应用

1、BIOS中与高速缓存有关的选项

1)Video ROM的Shadow
“影子”内存(ShadowRAM,或称ROMShadow)是为了提高系统效率而采用的一种专门Cache技术,它把系统主板上的系统ROMBIOS和适配器卡上的视频ROMBIOS等拷贝到系统RAM内存中去运行,其地址仍使用它们在上位内存中占用的原地址。更确切地说,是从扩展内存中拿出一部分物理存储空间,而赋以ROM的原地址,由这部分扩展RAM代替原ROM。由于ROM采用静态CMOS电路,其存取速度为200ns左右,而系统存储器RAM采用动态CMOS电路,其存取速度进几十ns,速度快好几倍,将存放在ROM中的BIOS代码(基本输入输出例行程序,它们在系统运行期间非常频繁的被调用)拷贝到系统RAM中去,就可提高系统运行和显示的速度和效率。

2)CPU Internal Cache
CPU内部快速缓存是否打开,一般设置为Enable。Enternal Cache:是否使用主板缓存,一般设置为Enable。CPU L2 Cache Ecc Checking:CPU的L2 缓存Ecc 检测,可设置为Disable。

从字面上看,“CPU Internal Cache”和“External Cache”分别指CPU内部和外部的高速缓存,但更准确的说法应该是一级缓存和二级缓存。Socket/Super 7架构的CPU内部只有一级缓存,二级缓存放在了主板上,“Internal”和“External”的说法就源于此,而对PⅡ、PⅢ和K6-Ⅲ等CPU来说,二级缓存也被集成到CPU内部,内外部的说法就不太确切了,因此一些Slot 1主板对此进行了修改,改称为“CPU Level 1 Cache”和“CPU Level 2 Cache”。除非打开后系统会出现死机等情况,否则这两个选项都应设为Enabled,以加快CPU读取内存的速度。

3)二级缓存的潜伏期

在BIOS中,我们还可以调节二级缓存的潜伏期,其中Level 2 Cache Latency(二级缓存潜伏期)有16个值可选(1~15),从理论上来说,数值越小延迟时间越短,性能也越高。如果把数值设得过小,二级缓存有可能停止工作,不仅系统性能会急速下跌,还会发生死机现象。L2 Cache对内存带宽有重大影响,即使CPU频率再高,其它设备跟不上亦是无用,增加缓存潜伏期可以让机器更稳定,避免上述情况。

4)System BIOS Cacheable

“System BIOS Cacheable”、“Video BIOS Cacheable”和“Video RAM Cacheable”分别指定是否可以使用二级高速缓存来缓存系统BIOS、显卡BIOS和显示内存,缓存之后,BIOS调用的执行速度以及访问显示内存的速度都会加快,因此最好都设成Enabled。不过,当显示内存可以被缓存时,少数显卡可能会出现兼容性问题,此时可考虑将第三项设为Disabled。

2、调整高速缓存优化系统
如果你的应用程序需频繁访问硬盘,可在扩充或扩展内存中建立“直接写盘(write-through)”型磁盘高速缓存。用户可在autoexec.bat文件中加入命令行:c:\dos\smartdrv.exe,则此驱动程序会自动装入内存高端,其磁盘缓冲区缺省值为256KB,你可以改变这个值的大小。一般设置为物理内存的1/8左右比较合适。SMARTDRV.EXE一个外部设备驱动程序。用此程序可启动或设置磁盘高速缓冲存储器。与Cache不同,Cache是充分发挥了CPU的速度,而SMARTDRV是加快了磁盘的读写速度。在实际应用中,SMARTDRV.EXT高速缓存驱动程序将记住每次应用程序使用磁盘的磁盘扇区数据,不用再访问磁盘驱动器,而是访问内存中已包含这些数据的区域。

总的来说,PC中的Cache主要是为了解决高速设备和低速设备间速度匹配的问题,是提高系统性能,降低系统成本而采用的一项技术。随着电脑技术的飞速发展, Cache已成为PC中大多数配件不可缺少的组成部分,是衡量系统性能优劣的一项重要指标。从系统的性价比考虑,Cache的配备将在很长一段时间内仍然是PC中重要的技术之一。

❾ 自动分层好还是ssd二级缓存好

缓存的读取速度要快,在电脑执行才程序时cpu要与内存进行数据的交换,而cpu与内存之间就是用缓存来提高速度的,而你的固态硬盘内的缓存就可以提高内存与硬盘之间的交换速度。缓存还是有一定的用处的,应该有缓存的贵吧?

热点内容
数据结构对算法的影响 发布:2024-10-06 18:21:28 浏览:32
服务器托管ip不变 发布:2024-10-06 18:21:20 浏览:421
网盘加密软件 发布:2024-10-06 18:16:17 浏览:123
儿童配置保险怎么买 发布:2024-10-06 18:07:32 浏览:733
ipad存储器 发布:2024-10-06 18:00:07 浏览:534
c语言void返回值 发布:2024-10-06 18:00:02 浏览:320
bat执行shell脚本 发布:2024-10-06 17:59:24 浏览:330
sql单引号双引号 发布:2024-10-06 17:41:51 浏览:573
macbookpro选哪个配置 发布:2024-10-06 16:50:01 浏览:142
linux基础命令 发布:2024-10-06 16:37:59 浏览:412