您现在的位置是:首页 >

赵丽颖详细资料大全 快取详细资料大全

火烧 2023-01-25 05:28:56 1084
快取详细资料大全 高速快取(英语:cache,/kæʃ/ ka h )简称快取,原始意义是指访问速度比一般随机存取存储器(RAM)快的一种RAM,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较

快取详细资料大全  

高速快取(英语:cache,/kæʃ/ kash )简称快取,原始意义是指访问速度比一般随机存取存储器(RAM)快的一种RAM,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。

赵丽颖详细资料大全 快取详细资料大全

基本介绍

中文名:快取外文名:cache套用学科:IT适用领域范围:硬体 特点,工作原理,功能作用,预读取,写入,临时存储,技术发展,主要意义,CPU快取,介绍,工作原理,一级快取,二级快取,三级快取,超级快取,WEB快取,系统快取,磁碟快取,快取分类,快取映射,直接映射快取,组相联快取,全相联快取,技术指标,光碟机快取,网路快取,分布快取,增加快取的方法,CPU的快取,硬碟的快取,软碟机和光碟机的快取,

特点

快取是指可以进行高速数据交换的存储器,它先于记忆体与CPU交换数据,因此速率很快。L1 Cache(一级快取)是CPU第一层高速快取。内置的L1高速快取的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速快取的容量不可能做得太大。一般L1快取的容量通常在32—256KB。L2 Cache(二级快取)是CPU的第二层高速快取,分内部和外部两种晶片。内部的晶片二级快取运行速率与主频相同,而外部的二级快取则只有主频的一半。L2高速快取容量也会影响CPU的性能,原则是越大越好,普通台式机CPU的L2快取一般为128KB到2MB或者更高,笔记本、伺服器和工作站上用CPU的L2高速快取最高可达1MB-3MB。快取的工作原理快取只是记忆体中少部分数据的复制品,所以CPU到快取中寻找数据时,也会出现找不到的情况(因为这些数据没有从记忆体复制到快取中去),这时CPU还是会到记忆体中去找数据,这样系统的速率就慢下来了,不过CPU会把这些数据复制到快取中去,以便下一次不要再到记忆体中去取。随着时间的变化,被访问得最频繁的数据不是一成不变的,也就是说,刚才还不频繁的数据,此时已经需要被频繁的访问,刚才还是最频繁的数据,又不频繁了,所以说快取中的数据要经常按照一定的算法来更换,这样才能保证快取中的数据是被访问最频繁的。

工作原理

快取的工作原理是当CPU要读取一个数据时,首先从CPU快取中查找,找到就立即读取并送给CPU处理;没有找到,就从速率相对较慢的记忆体中读取并送给CPU处理,同时把这个数据所在的数据块调入快取中,可以使得以后对整块数据的读取都从快取中进行,不必再调用记忆体。正是这样的读取机制使CPU读取快取的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在CPU快取中,只有大约10%需要从记忆体读取。这大大节省了CPU直接读取记忆体的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先快取后记忆体。快取工作原理 RAM(Random-Aess Memory)和ROM(Read-Only Memory)相对的,RAM是掉电以后,其中的信息就消失那一种,ROM在掉电以后信息也不会消失那一种。RAM又分两种,一种是静态RAM,SRAM(Static RAM);一种是动态RAM,DRAM(Dynamic RAM)。前者的存储速率要比后者快得多,使用的记忆体一般都是动态RAM。为了增加系统的速率,把快取扩大就行了,扩的越大,快取的数据越多,系统就越快了,快取通常都是静态RAM,速率是非常的快, 但是静态RAM集成度低(存储相同的数据,静态RAM的体积是动态RAM的6倍), 价格高(同容量的静态RAM是动态RAM的四倍), 由此可见,扩大静态RAM作为快取是一个非常愚蠢的行为, 但是为了提高系统的性能和速率,必须要扩大快取, 这样就有了一个折中的方法,不扩大原来的静态RAM快取,而是增加一些高速动态RAM做为快取, 这些高速动态RAM速率要比常规动态RAM快,但比原来的静态RAM快取慢, 把原来的静态RAM快取叫一级快取,而把后来增加的动态RAM叫二级快取。

功能作用

硬碟的快取主要起三种作用:

预读取

当硬碟受到CPU指令控制开始读取数据时,硬碟上的控制晶片会控制磁头把正在读取的簇的下一个或者几个簇中的数据读到快取中(由于硬碟上数据存储时是比较连续的,所以读取命中率较高),当需要读取下一个或者几个簇中的数据的时候,硬碟则不需要再次读取数据,直接把快取中的数据传输到记忆体中就可以了,由于快取的速率远远高于磁头读写的速率,所以能够达到明显改善性能的目的。数据快取

写入

当硬碟接到写入数据的指令之后,并不会马上将数据写入到碟片上,而是先暂时存储在快取里,然后传送一个“数据已写入”的信号给系统,这时系统就会认为数据已经写入,并继续执行下面的工作,而硬碟则在空闲(不进行读取或写入的时候)时再将快取中的数据写入到碟片上。虽然对于写入数据的性能有一定提升,但也不可避免地带来了安全隐患——数据还在快取里的时候突然掉电,那么这些数据就会丢失。对于这个问题,硬碟厂商们自然也有解决办法:掉电时,磁头会借助惯性将快取中的数据写入零磁轨以外的暂存区域,等到下次启动时再将这些数据写入目的地。

临时存储

有时候,某些数据是会经常需要访问的,像硬碟内部的快取(暂存器的一种)会将读取比较频繁的一些数据存储在快取中,再次读取时就可以直接从快取中直接传输。快取就像是一台计算机的记忆体一样,在硬碟读写数据时,负责数据的存储、寄放等功能。这样一来,不仅可以大大减少数据读写的时间以提高硬碟的使用效率。同时利用快取还可以让硬碟减少频繁的读写,让硬碟更加安静,更加省电。更大的硬碟快取,你将读取游戏时更快,拷贝档案时候更快,在系统启动中更为领先。 快取容量的大小不同品牌、不同型号的产品各不相同,早期的硬碟快取基本都很小,只有几百KB,已无法满足用户的需求。16MB和32MB快取是现今主流硬碟所采用,而在伺服器或特殊套用领域中还有快取容量更大的产品,甚至达到了64MB、128MB等。大容量的快取虽然可以在硬碟进行读写工作状态下,让更多的数据存储在快取中,以提高硬碟的访问速率,但并不意味着快取越大就越出众。快取的套用存在一个算法的问题,即便快取容量很大,而没有一个高效率的算法,那将导致套用中快取数据的命中率偏低,无法有效发挥出大容量快取的优势。算法是和快取容量相辅相成,大容量的快取需要更为有效率的算法,否则性能会大大折扣,从技术角度上说,高容量快取的算法是直接影响到硬碟性能发挥的重要因素。更大容量快取是未来硬碟发展的必然趋势。 硬碟快取

技术发展

最早先的CPU快取是个整体的,而且容量很低,英特尔公司从Pentium时代开始把快取进行了分类。当时集成在CPU核心中的快取已不足以满足CPU的需求,而制造工艺上的限制又不能大幅度提高快取的容量。因此出现了集成在与CPU同一块电路板上或主机板上的快取,此时就把 CPU核心集成的快取称为一级快取,而外部的称为二级快取。一级快取中还分数据快取(Data Cache,D-Cache)和指令快取(Instruction Cache,I-Cache)。二者分别用来存放数据和执行这些数据的指令,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。英特尔公司在推出Pentium 4处理器时,用新增的一种一级追踪快取替代指令快取,容量为12KμOps,表示能存储12K条微指令。 快取集群的配置 随着CPU制造工艺的发展,二级快取也能轻易的集成在CPU核心中,容量也在逐年提升。再用集成在CPU内部与否来定义一、二级快取,已不确切。而且随着二级快取被集成入CPU核心中,以往二级快取与CPU大差距分频的情况也被改变,此时其以相同于主频的速率工作,可以为CPU提供更高的传输速率。二级快取是CPU性能表现的关键之一,在CPU核心不变化的情况下,增加二级快取容量能使性能大幅度提高。而同一核心的CPU高低端之分往往也是在二级快取上有差异,由此可见二级快取对于CPU的重要性。 CPU在快取中找到有用的数据被称为命中,当快取中没有CPU所需的数据时(这时称为未命中),CPU才访问记忆体。从理论上讲,在一颗拥有二级快取的CPU中,读取一级快取的命中率为80%。也就是说CPU一级快取中找到的有用数据占数据总量的80%,剩下的20%从二级快取中读取。由于不能准确预测将要执行的数据,读取二级快取的命中率也在80%左右(从二级快取读到有用的数据占总数据的16%)。那么还有的数据就不得不从记忆体调用,但这已经是一个相当小的比例了。较高端的CPU中,还会带有三级快取,它是为读取二级快取后未命中的数据设计的—种快取,在拥有三级快取的CPU中,只有约3%的数据需要从记忆体中调用,这进一步提高了CPU的效率。为了保证CPU访问时有较高的命中率,快取中的内容应该按一定的算法替换。一种较常用的算法是“最近最少使用算法”(LRU算法),它是将最近一段时间内最少被访问过的行淘汰出局。因此需要为每行设定一个计数器,LRU算法是把命中行的计数器清零,其他各行计数器加1。当需要替换时淘汰行计数器计数值最大的数据行出局。这是一种高效、科学的算法,其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出快取,提高快取的利用率。CPU产品中,一级快取的容量基本在4KB到64KB之间,二级快取的容量则分为128KB、256KB、512KB、1MB、2MB、4MB等。一级快取容量各产品之间相差不大,而二级快取容量则是提高CPU性能的关键。二级快取容量的提升是由CPU制造工艺所决定的,容量增大必然导致CPU内部电晶体数的增加,要在有限的CPU面积上集成更大的快取,对制造工艺的要求也就越高。主流的CPU二级快取都在2MB左右,其中英特尔公司07年相继推出了台式机用的4MB、6MB二级快取的高性能CPU,不过价格也是相对比较高的,对于对配置要求不是太高的朋友,一般的2MB二级快取的双核CPU基本也可以满足日常上网需要了。

主要意义

快取工作的原则,就是“引用的局部性”,这可以分为时间局部性和空间局部性。空间局部性是指CPU在某一时刻需要某个数据,那么很可能下一步就需要其附近的数据;时间局部性是指当某个数据被访问过一次之后,过不了多久时间就会被再一次访问。对于应用程式而言,不管是指令流还是数据流都会出现引用的局部性现象。快取的工作方式 举个简单的例子,比如在播放DVD影片的时候,DVD数据由一系列位元组组成,这个时候CPU会依次从头处理到尾地调用DVD数据,如果CPU这次读取DVD数据为1分30秒,那么下次读取的时候就会从1分31秒开始,因此这种情况下有序排列的数据都是依次被读入CPU进行处理。从数据上来看,对于Word一类的应用程式通常都有着较好的空间局部性。用户在使用中不会一次打开7、8个文档,不会在其中某一个文档中打上几个词就换另一个。大多数用户都是打开一两个文档,然后就是长时间对它们进行处理而不会做其他事情。这样在记忆体中的数据都会集中在一个区域中,也就可以被CPU集中处理。 从程式代码上来考虑,设计者通常也会尽量避免出现程式的跳跃和分支,让CPU可以不中断地处理大块连续数据。游戏、模拟和多媒体处理程式通常都是这方面的代表,以小段代码连续处理大块数据。不过在办公运用程式中,情况就不一样了。改动字型,改变格式,保存文档,都需要程式代码不同部分起作用,而用到的指令通常都不会在一个连续的区域中。于是CPU就不得不在记忆体中不断跳来跳去寻找需要的代码。这也就意味着对于办公程式而言,需要较大的快取来读入大多数经常使用的代码,把它们放在一个连续的区域中。如果快取不够,就需要快取中的数据,而如果快取足够大的话,所有的代码都可以放入,也就可以获得最高的效率。同理,高端的数据套用以及游戏套用则需要更高容量的快取。

CPU快取

介绍

CPU快取(Cache Memory)是位于CPU与记忆体之间的临时存储器,它的容量比记忆体小的多但是交换速率却比记忆体要快得多。快取的出现主要是为了解决CPU运算速率与记忆体读写速率不匹配的矛盾,因为CPU运算速率要比记忆体读写速率快很多,这样会使CPU花费很长时间等待数据到来或把数据写入记忆体。在快取中的数据是记忆体中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开记忆体直接从快取中调用,从而加快读取速率。由此可见,在CPU中加入快取是一种高效的解决方案,这样整个记忆体储器(快取+记忆体)就变成了既有快取的高速率,又有记忆体的大容量的存储系统了。快取对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与快取间的频宽引起的。 CPU快取 快取基本上都是采用SRAM存储器,SRAM是英文Static RAM的缩写,它是一种具有静态存取功能的存储器,不需要刷新电路即能保存它内部存储的数据。不像DRAM记忆体那样需要刷新电路,每隔一段时间,固定要对DRAM刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM记忆体可以设计为较小的体积,但是SRAM却需要很大的体积,这也是不能将快取容量做得太大的重要原因。它的特点归纳如下:优点是节能、速率快、不必配合记忆体刷新电路、可提高整体的工作效率,缺点是集成度低、相同的容量体积较大、而且价格较高,只能少量用于关键性系统以提高效率。

工作原理

1、读取顺序 CPU要读取一个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从记忆体中读取并送给CPU处理,同时把这个数据所在的数据块调入Cache中,可以使得以后对整块数据的读取都从Cache中进行,不必再调用记忆体。 正是这样的读取机制使CPU读取Cache的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在Cache中,只有大约10%需要从记忆体读取。这大大节省了CPU直接读取记忆体的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先Cache后记忆体。 2、快取分类 Intel从Pentium开始将Cache分开,通常分为一级高速快取L1和二级高速快取L2。在以往的观念中,L1 Cache是集成在CPU中的,被称为片内Cache。在L1中还分数据Cache(D-Cache)和指令Cache(I-Cache)。它们分别用来存放数据和执行这些数据的指令,而且两个Cache可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。 3、读取命中率 CPU在Cache中找到有用的数据被称为命中,当Cache中没有CPU所需的数据时(这时称为未命中),CPU才访问记忆体。从理论上讲,在一颗拥有2级Cache的CPU中,读取L1 Cache的命中率为80%。也就是说CPU从L1 Cache中找到的有用数据占数据总量的80%,剩下的20%从L2 Cache读取。由于不能准确预测将要执行的数据,读取L2的命中率也在80%左右(从L2读到有用的数据占总数据的16%)。那么还有的数据就不得不从记忆体调用,但这已经是一个相当小的比例了。在一些高端领域的CPU(像Intel的Itanium)中,我们常听到L3 Cache,它是为读取L2 Cache后未命中的数据设计的—种Cache,在拥有L3 Cache的CPU中,只有约5%的数据需要从记忆体中调用,这进一步提高了CPU的效率。

一级快取

一级快取(Level 1 Cache)简称L1 Cache,位于CPU核心的旁边,是与CPU结合最为紧密的CPU快取,也是历史上最早出现的CPU快取。由于一级快取的技术难度和制造成本最高,提高容量所带来的技术难度增加和成本增加非常大,所带来的性能提升却不明显,性价比很低,而且现有的一级快取的命中率已经很高,所以一级快取是所有快取中容量最小的,比二级快取要小得多。 一级快取可以分为一级数据快取(Data Cache,D-Cache)和一级指令快取(Instruction Cache,I-Cache)。二者分别用来存放数据以及对执行这些数据的指令进行即时解码,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。大多数CPU的一级数据快取和一级指令快取具有相同的容量,例如AMD的Athlon XP就具有64KB的一级数据快取和64KB的一级指令快取,其一级快取就以64KB+64KB来表示,其余的CPU的一级快取表示方法以此类推。 Intel的采用NetBurst架构的CPU(最典型的就是Pentium 4)的一级快取有点特殊,使用了新增加的一种一级追踪快取(Execution Trace Cache,T-Cache或ETC)来替代一级指令快取,容量为12KμOps,表示能存储12K条即12000条解码后的微指令。一级追踪快取与一级指令快取的运行机制是不相同的,一级指令快取只是对指令作即时的解码而并不会储存这些指令,而一级追踪快取同样会将一些指令作解码,这些指令称为微指令(micro-ops),而这些微指令能储存在一级追踪快取之内,无需每一次都作出解码的程式,因此一级追踪快取能有效地增加在高工作频率下对指令的解码能力,而μOps就是micro-ops,也就是微型操作的意思。它以很高的速率将μops提供给处理器核心。Intel NetBurst微型架构使用执行跟踪快取,将解码器从执行循环中分离出来。这个跟踪快取以很高的频宽将uops提供给核心,从本质上适于充分利用软体中的指令级并行机制。Intel并没有公布一级追踪快取的实际容量,只知道一级追踪快取能储存12000条微指令(micro-ops)。所以,不能简单地用微指令的数目来比较指令快取的大小。实际上,单核心的NetBurst架构CPU使用8Kμops的快取已经基本上够用了,多出的4kμops可以大大提高快取命中率。而要使用超执行绪技术的话,12KμOps就会有些不够用,这就是为什么有时候Intel处理器在使用超执行绪技术时会导致性能下降的重要原因。例如Northwood核心的一级快取为8KB+12KμOps,就表示其一级数据快取为8KB,一级追踪快取为12KμOps;而Prescott核心的一级快取为16KB+12KμOps,就表示其一级数据快取为16KB,一级追踪快取为12KμOps。在这里12KμOps绝对不等于12KB,单位都不同,一个是μOps,一个是Byte(位元组),而且二者的运行机制完全不同。所以那些把Intel的CPU一级快取简单相加,例如把Northwood核心说成是20KB一级快取,把Prescott核心说成是28KB一级快取,并且据此认为Intel处理器的一级快取容量远远低于AMD处理器128KB的一级快取容量的看法是完全错误的,二者不具有可比性。在架构有一定区别的CPU对比中,很多快取已经难以找到对应的东西,即使类似名称的快取在设计思路和功能定义上也有区别了,此时不能用简单的算术加法来进行对比;而在架构极为近似的CPU对比中,分别对比各种功能快取大小才有一定的意义。

二级快取

二级快取(Level2cache),它是处理器内部的一些缓冲存储器,其作用跟记忆体一样。上溯到上个世纪80年代,由于处理器的运行速率越来越快,慢慢地,处理器需要从记忆体中读取数据的速率需求就越来越高了。然而记忆体的速率提升速率却很缓慢,而能高速读写数据的记忆体价格又非常高昂,不能大量采用。从性能价格比的角度出发,英特尔等处理器设计生产公司想到一个办法,就是用少量的高速记忆体和大量的低速记忆体结合使用,共同为处理器提供数据。这样就兼顾了性能和使用成本的最优。而那些高速的记忆体因为是处于cpu和记忆体之间的位置,又是临时存放数据的地方,所以就叫做缓冲存储器了,简称“快取”。它的作用就像仓库中临时堆放货物的地方一样,货物从运输车辆上放下时临时堆放在快取区中,然后再搬到内部存储区中长时间存放。货物在这段区域中存放的时间很短,就是一个临时货场。 最初快取只有一级,后来处理器速率又提升了,一级快取不够用了,于是就添加了二级快取。二级快取是比一级快取速率更慢,容量更大的记忆体,主要就是做一级快取和记忆体之间数据临时交换的地方用。为了适应速率更快的处理器p4ee,已经出现了三级快取了,它的容量更大,速率相对二级快取也要慢一些,但是比记忆体可快多了。 快取的出现使得cpu处理器的运行效率得到了大幅度的提升,这个区域中存放的都是cpu频繁要使用的数据,所以快取越大处理器效率就越高,同时由于快取的物理结构比记忆体复杂很多,所以其成本也很高。 二级快取结构剖析 大量使用二级快取带来的结果是处理器运行效率的提升和成本价格的大幅度不等比提升。举个例子,伺服器上用的至强处理器和普通的p4处理器其核心基本上是一样的,就是二级快取不同。至强的二级快取是2mb~16mb,p4的二级快取是512kb,于是最便宜的至强也比最贵的p4贵,原因就在二级快取不同。即l2cache。由于l1级高速快取容量的限制,为了再次提高cpu的运算速率,在cpu外部放置一高速存储器,即二级快取。工作主频比较灵活,可与cpu同频,也可不同。cpu在读取数据时,先在l1中寻找,再从l2寻找,然后是记忆体,在后是外存储器。所以l2对系统的影响也不容忽视。 最早先的cpu快取是个整体的,而且容量很低,英特尔公司从pentium时代开始把快取进行了分类。当时集成在cpu核心中的快取已不足以满足cpu的需求,而制造工艺上的限制又不能大幅度提高快取的容量。因此出现了集成在与cpu同一块电路板上或主机板上的快取,此时就把cpu核心集成的快取称为一级快取,而外部的称为二级快取。随着cpu制造工艺的发展,二级快取也能轻易的集成在cpu核心中,容量也在逐年提升。再用集成在cpu内部与否来定义一、二级快取,已不确切。而且随着二级快取被集成入cpu核心中,以往二级快取与cpu大差距分频的情况也被改变,此时其以相同于主频的速率工作,可以为cpu提供更高的传输速率。

三级快取

L3 Cache(三级快取),分为两种,早期的是外置,现在的都是内置的。而它的实际作用即是,L3快取的套用可以进一步降低记忆体延迟,同时提升大数据量计算时处理器的性能。降低记忆体延迟和提升大数据量计算能力对游戏都很有帮助。而在伺服器领域增加L3快取在性能方面仍然有显著的提升。比方具有较大L3快取的配置利用物理记忆体会更有效,故它比较慢的磁碟I/O子系统可以处理更多的数据请求。具有较大L3快取的处理器提供更有效的档案系统快取行为及较短讯息和处理器伫列长度。 其实最早的L3快取被套用在AMD发布的K6-III处理器上,当时的L3快取受限于制造工艺,并没有被集成进晶片内部,而是集成在主机板上。在只能够和系统汇流排频率同步的L3快取同主记忆体其实差不了多少。后来使用L3快取的是英特尔为伺服器市场所推出的Itanium处理器。接着就是P4EE和至强MP。Intel还打算推出一款9MB L3快取的Itanium2处理器,和以后24MB L3快取的双核心Itanium2处理器。 但基本上L3快取对处理器的性能提高显得不是很重要,比方配备1MB L3快取的Xeon MP处理器却仍然不是Opteron的对手,由此可见前端汇流排的增加,要比快取增加带来更有效的性能提升。

超级快取

SuperCache,也就是超级快取,计算机的速度瓶颈主要在于机械硬碟的读写速度,SuperCache就是给硬碟的读写用高速记忆体来做快取,是大记忆体机器的提速首选,伺服器的必备利器。 工作原理:对于SuperCache而言,硬碟上没有档案的概念,只是用户指定大小的一个一个小格子,例如32k,硬碟上某个小格子里面的内容被读取了,则被快取在记忆体里面,下次还读这个小格子的时候,直接从记忆体读取,硬碟没有任何动作,从而达到了加速的目的。有两种快取模式,1、MFU模式,每个小格子被读取的时候,做一个简单的计数,当快取满的时候,计数值小的先被清出快取;2、MRU模式,简单的伫列,先进先出。

WEB快取

是网际网路上最受欢迎的套用之一,其快速增长造成网路拥塞和伺服器超载,导致客户访问延迟增大,服务质量日益显现出来。快取技术被认为是减轻伺服器负载、降低网路拥塞、增强可扩展性的有效途径之一,其基本思想是利用客户访问的时间局部性(Temproral Locality)原理,将客户访问过的内容在Cache中存放一个副本,当该内容下次被访问时,不必连线到驻留网站,而是由Cache中保留的副本提供。 Web内容可以快取在客户端、代理伺服器以及伺服器端。研究表明,快取技术可以显著地提高性能,它可以带来以下好处: (1)减少网路流量,从而减轻拥塞。 (2)降低客户访问延迟,其主要原因有:①快取在代理伺服器中的内容,客户可以直接从代理获取而不是从远程伺服器获取,从而减小了传输延迟②没有被快取的内容由于网路拥塞及伺服器负载的减轻而可以较快地被客户获取。 (3)由于客户的部分请求内容可以从代理处获取,从而减轻了远程伺服器负载。 (4)如果由于远程伺服器故障或者网路故障造成远程伺服器无法回响客户的请求,客户可以从代理中获取快取的内容副本,使得服务的鲁棒性得到了加强。 Web快取系统也会带来以下问题: (1)客户通过代理获取的可能是过时的内容。 (2)如果发生快取失效,客户的访问延迟由于额外的代理处理开销而增加。因此在设计Web快取系统时,应力求做到Cache命中率最大化和失效代价最小化。 (3)代理可能成为瓶颈。因此应为一个代理设定一个服务客户数量上限及一个服务效率下限,使得一个代理系统的效率至少同客户直接和远程伺服器相连的效率一样。

系统快取

将CPU比作一个城里的家具厂,而将存储系统比作郊区的木料厂,那么实际情况就是木料厂离家具厂越来越远,即使使用更大的卡车来运送木料,家具厂也得停工来等待木料送来。在这样的情况下,一种解决方法是在市区建立一个小型仓库,在里面放置一些家具厂最常用到的木料。这个仓库实际上就是家具厂的“Cache”,家具厂就可以从仓库不停的及时运送需要的木料。当然,仓库越大,存放的木料越多,效果就越好,因为这样即使是些不常用的东西也可以在仓库里找到。需要的木料仓库里没有,就要从城外的木料厂里继续找,而家具厂就得等著了。仓库就相对于L1快取,可以由CPU及时快速的读写,所以存储的是CPU最常用代码和数据(后面会介绍一下如何挑选“最常用”)。L1快取的速率比系统记忆体快的多是因为使用的是SRAM,这种记忆体单晶元使用四到六个电晶体。这也使得SRAM的造价相当的高,所以不能拿来用在整个存储系统上。在大多数CPU上,L1快取和核心一起在一块晶片上。在家具厂的例子中,就好比工厂和仓库在同一条街上。这样的设计使CPU可以从最近最快的地方得到数据,但是也使得“城外的木料厂”到“仓库”和到“家具厂”的距离差不多远。这样CPU需要的数据不在L1快取中,也就是“Cache Miss”,从存储设备取数据就要很长时间了。处理器速率越快,两者之间的差距就越大。使用Pentium4那样的高频率处理器,从记忆体中取得数据就相当于“木料厂”位于另一个国家。 快取设计 其实,快取是CPU的一部分,它存在于CPU中 CPU存取数据的速率非常的快,一秒钟能够存取、处理十亿条指令和数据(术语:CPU主频1G),而记忆体就慢很多,快的记忆体能够达到几十兆就不错了,可见两者的速率差异是多么的大 快取是为了解决CPU速率和记忆体速率的速率差异问题 记忆体中被CPU访问最频繁的数据和指令被复制入CPU中的快取,这样CPU就可以不经常到象“蜗牛”一样慢的记忆体中去取数据了,CPU只要到快取中去取就行了,而快取的速率要比记忆体快很多 这里要特别指出的是: 1.因为快取只是记忆体中少部分数据的复制品,所以CPU到快取中寻找数据时,也会出现找不到的情况(因为这些数据没有从记忆体复制到快取中去),这时CPU还是会到记忆体中去找数据,这样系统的速率就慢下来了,不过CPU会把这些数据复制到快取中去,以便下一次不要再到记忆体中去取。 2.因为随着时间的变化,被访问得最频繁的数据不是一成不变的,也就是说,刚才还不频繁的数据,此时已经需要被频繁的访问,刚才还是最频繁的数据,现在又不频繁了,所以说快取中的数据要经常按照一定的算法来更换,这样才能保证快取中的数据是被访问最频繁的 3.关于一级快取和二级快取为了分清这两个概念,我们先了解一下RAM ram和ROM相对的,RAM是掉电以后,其中信息才消失的那一种,ROM是在掉电以后信息也不会消失的那一种。RAM又分两种: 一种是静态RAM、SRAM;一种是动态RAM、DRAM。

磁碟快取

磁碟快取分为读快取和写快取。读快取是指,作业系统为已读取的档案数据,在记忆体较空闲的情况下留在记忆体空间中(这个记忆体空间被称之为“记忆体池”),当下次软体或用户再次读取同一档案时就不必重新从磁碟上读取,从而提高速率。写快取实际上就是将要写入磁碟的数据先保存于系统为写快取分配的记忆体空间中,当保存到记忆体池中的数据达到一个程度时,便将数据保存到硬碟中。这样可以减少实际的磁碟操作,有效的保护磁碟免于重复的读写操作而导致的损坏,也能减少写入所需的时间。磁碟快取 根据写入方式的不同,有写通式和回写式两种。写通式在读硬碟数据时,系统先检查请求指令,看看所要的数据是否在快取中,在的话就由快取送出回响的数据,这个过程称为命中。这样系统就不必访问硬碟中的数据,由于SDRAM的速率比磁介质快很多,因此也就加快了数据传输的速率。回写式就是在写入硬碟数据时也在快取中找,找到就由快取就数据写入盘中,多数硬碟都是采用的回写式快取,这样就大大提高了性能。快取英文名为 Cache。CPU 快取也是记忆体的一种,其数据交换速率快且运算频率高。磁碟快取则是作业系统为磁碟输入输出而在普通物理记忆体中分配的一块记忆体区域。 硬碟的缓冲区,硬碟的缓冲区是硬碟与外部汇流排交换数据的场所。硬碟的读数据的过程是将磁信号转化为电信号后,通过缓冲区一次次地填充与清空,再填充,再清空,一步步按照PCI汇流排的周期送出,可见,缓冲区的作用是相当重要的。它的作用也是提高性能,但是它与快取的不同之处在于:一、它是容量固定的硬体,而不像快取是可以由作业系统在记忆体中动态分配的。二、它对性能的影响大大超过磁碟快取对性能的影响,因为没有缓冲区,就会要求每传一个字(通常是4位元组)就需要读一次磁碟或写一次磁碟。

快取分类

静态页面的快取可能有2种形式:其实主要区别就是CMS是否自己负责关联内容的快取更新管理。 1、静态快取:是在新内容发布的同时就立刻生成相应内容的静态页面,比如:2003年3月22日,管理员通过后台内容管理界面录入一篇文章后,并同步更新相关索引页上的连结。 2、动态快取:是在新内容发布以后,并不预先生成相应的静态页面,直到对相应内容发出请求时,如果前台快取伺服器找不到相应快取,就向后台内容管理伺服器发出请求,后台系统会生成相应内容的静态页面,用户第一次访问页面时可能会慢一点,但是以后就是直接访问快取了。 静态快取的缺点: 复杂的触发更新机制:这两种机制在内容管理系统比较简单的时候都是非常适用的。但对于一个关系比较复杂的网站来说,页面之间的逻辑引用关系就成为一个非常非常复杂的问题。最典型的例子就是一条新闻要同时出现在新闻首页和相关的3个新闻专题中,在静态快取模式中,每发一篇新文章,除了这篇新闻内容本身的页面外,还需要系统通过触发器生成多个新的相关静态页面,这些相关逻辑的触发也往往就会成为内容管理系统中最复杂的部分之一。 旧内容的批量更新: 通过静态快取发布的内容,对于以前生成的静态页面的内容很难修改,这样用户访问旧页面时,新的模板根本无法生效。 在动态快取模式中,每个动态页面只需要关心,而相关的其他页面能自动更新,从而大大减少了设计相关页面更新触发器的需要。 软道语录 快取 是把最常用的东西放在最容易取得的地方。

快取映射

根据E的数值,高速快取可以被分为不用的类,包括直接映射快取,组相联快取和全相联快取。快取的映射

直接映射快取

这种快取中,每个组只有一行,E = 1,结构很简单,整个快取就相当于关于组的一维数组。不命中时的行替换也很简单,就一个行嘛,哪不命中替换哪。为了适应容量小的情况,第n+1层存储器中的某个数据块,你只能被替换到上一层(也就是第n层)存储器中的某个位置的子集中。现在假设一个直接映射的高速快取,(S,E,B,m) = ( 4,1,2,4 ),也就是说,地址是4位(16个),有四个组,每个组一行,每个块两个位元组。由于有16个地址,表征16个位元组,所以总共有8个块,但只有4个组,也就是4行。只能把多个块映射到相同的快取组,比如0和4都映射到组1,1和5都映射到组2,等等。这下问题就来了,比如先读块0,此时块0的数据被cache到组0。然后我再读块4,因为块4也是被映射到组0的,组0又只有一行,那就只有把以前块0的数据覆蓋了,要是之后我又读块0,就 miss了,只能到下级的存储器去找。实际的循环程式中,很容易引起这种情况,称其为抖动。这种情况的存在,自然大大影响了性能。所以,需要更好的映射方案。

组相联快取

在组相联快取里,E大于1,就是说一个组里面有多个cacheline。E等于多少,就叫有多少路,所以叫E路组相联。 组相联的行匹配就要复杂一些了,因为要检查多个行的标记位和有效位。如果最终找到了,还好。当然,找不到会从下一级存储器中取出包含所需求数据的行来替换,但一个组里面这么多行,替换哪个行。如果有一个空行,自然就是替换空行,如果没有空行,那就引发了一些其他的替换策略了。除了刚才介绍过的随机策略,还有最不常使用策略,最近最少使用策略。这些策略本身是需要一定开销的,但要知道,不命中的开销是很大的,所以为了保证命中率,采取一些相对复杂的策略是值得的。

全相联快取

所谓全相联,就是由一个包含所有快取行的组组成的快取。由于只有一个组,所以组选择特别简单,此时地址就没有组索引了,只有标记和偏移,也就是t部分和b部分。其他的步骤,行匹配和数据选择,和组相联原理是一样的,只是规模大得多了。如果说上面关于这三种映射方法的描述非常抽象,为了能理解得更加透彻,把存储器比作一家大超市,超市里面的东西就是一个个位元组或者数据。为了让好吃好玩受欢迎的东西能够容易被看到,超市可以将这些东西集中在一块放在一个专门的推荐柜台中,这个柜台就是快取。如果仅仅是把这些货物放在柜台中即完事,那么这种就是完全关联的方式。 可是如果想寻找自己想要的东西,还得在这些推荐货物中寻找,而且由于位置不定,甚至可能把整个推荐柜台寻找个遍,这样的效率无疑还是不高的。于是超市老总决定采用另一种方式,即将所有推荐货物分为许多类别,如“果酱饼干”,“朱古力饼干”,“核桃牛奶”等,柜台的每一层存放一种货物。这就是直接关联的访问原理。这样的好处是容易让顾客有的放矢,寻找更快捷,更有效。 但这种方法还是有其缺点,那就是如果需要果酱饼干的顾客很多,需要朱古力饼干的顾客相对较少,显然对果酱饼干的需求量会远多于对朱古力饼干的需求量,可是放置两种饼干的空间是一样大的,于是可能出现这种情况:存放的果酱饼干的空间远不能满足市场需求的数量,而朱古力饼干的存放空间却被闲置。为了克服这个弊病,老板决定改进存货方法:还是将货物分类存放,不过分类方法有所变化,按“饼干”,“牛奶”,“果汁”等类别存货,也就是说,无论是什么饼干都能存入“ 饼干”所用空间中,这种方法显然提高了空间利用的充分性,让存储以及查找方法更有弹性。

技术指标

CPU产品中,一级快取的容量基本在4kb到64kb之间,二级快取的容量则分为128kb、256kb、512kb、1mb、2mb等。一级快取容量各产品之间相差不大,而二级快取容量则是提高cpu性能的关键。二级快取容量的提升是由cpu制造工艺所决定的,容量增大必然导致cpu内部电晶体数的增加,要在有限的cpu面积上集成更大的快取,对制造工艺的要求也就越高CPU快取 快取(cache)大小是CPU的重要指标之一,其结构与大小对CPU速率的影响非常大。简单地讲,快取就是用来存储一些常用或即将用到的数据或指令,当需要这些数据或指令的时候直接从快取中读取,这样比到记忆体甚至硬碟中读取要快得多,能够大幅度提升cpu的处理速率。所谓处理器快取,通常指的是二级高速快取,或外部高速快取。即高速缓冲存储器,是位于CPU和主存储器dram(dynamic ram)之间的规模较小的但速率很高的存储器,通常由sram(静态随机存储器)组成。用来存放那些被cpu频繁使用的数据,以便使cpu不必依赖于速率较慢的dram(动态随机存储器)。l2高速快取一直都属于速率极快而价格也相当昂贵的一类记忆体,称为sram(静态ram),sram(static ram)是静态存储器的英文缩写。由于sram采用了与制作cpu相同的半导体工艺,因此与动态存储器dram比较,sram的存取速率快,但体积较大,价格很高。 处理器快取的基本思想是用少量的sram作为cpu与dram存储系统之间的缓冲区,即cache系统。80486以及更高档微处理器的一个显著特点是处理器晶片内集成了sram作为cache,由于这些cache装在晶片内,因此称为片内cache。486晶片内cache的容量通常为8k。高档晶片如pentium为16kb,power pc可达32kb。pentium微处理器进一步改进片内cache,采用数据和双通道cache技术,相对而言,片内cache的容量不大,但是非常灵活、方便,极大地提高了微处理器的性能。片内cache也称为一级cache。由于486,586等高档处理器的时钟频率很高,一旦出现一级cache未命中的情况,性能将明显恶化。在这种情况下采用的办法是在处理器晶片之外再加cache,称为二级cache。二级cache实际上是cpu和主存之间的真正缓冲。由于系统板上的回响时间远低于cpu的速率,没有二级cache就不可能达到486,586等高档处理器的理想速率。二级cache的容量通常应比一级cache大一个数量级以上。在系统设定中,常要求用户确定二级cache是否安装及尺寸大小等。二级cache的大小一般为128kb、256kb或512kb。在486以上档次的微机中,普遍采用256kb或512kb同步cache。所谓同步是指cache和cpu采用了相同的时钟周期,以相同的速率同步工作。相对于异步cache,性能可提高30%以上。pc及其伺服器系统的发展趋势之一是cpu主频越做越高,系统架构越做越先进,而主存dram的结构和存取时间改进较慢。因此,快取(cache)技术愈显重要,在pc系统中cache越做越大。广大用户已把cache做为评价和选购pc系统的一个重要指标。

光碟机快取

光存储驱动器都带有内部缓冲器或高速快取存储器。这些缓冲器是实际的存储晶片,安装在驱动器的电路板上,它在传送数据给PC之前可能准备或存储更大的数据段。CD/DVD典型的缓冲器大小为128KB,不过具体的驱动器可大可小(通常越多越好)。可刻录CD或DVD驱动器一般具有2MB-4MB以上的大容量缓冲器,用于防止快取欠载(buffer underrun)错误,同时可以使刻录工作平稳、恒定的写入。一般来说,驱动器越快,就有更多的缓冲存储器,以处理更高的传输速率。 CD/DVD驱动器带有缓冲或高速快取具有很多好处。缓冲可以保证PC以固定速率接收数据。当一个应用程式从驱动器请求数据时,数据可能位于分散在光碟上不同地方。因为驱动器的访问速率相对较慢,在数据读取时会使驱动器不得不间隔性向PC传送数据。驱动器的缓冲在软体的控制下可以预先读取并准备光碟的内容目录,从而加速第一次数据请求。 光碟机读取数据的规律是首先在快取里寻找,如果在快取中没有找到才会去光碟上寻找,大容量的快取可以预先读取的数据越多,但在实际套用中CD-ROM、DVD-ROM等读取操作时,读取重复信息的机会是相对较少的,大部分的光碟更多的时候是一次读取数量较多的档案内容,因此在CD-ROM、DVD-ROM驱动器上快取重要性得不到体现,因此大多此类产品采用较小的快取容量。CD-ROM一般有128KB、256KB、512KB几种;而DVD一般有128KB、256KB、512KB,只有个别的外置式DVD光碟机采用了较大容量的快取。 在刻录机或COMMBO产品上,快取就变得十分重要了。在刻录光碟时,系统会把需要刻录的数据预先读取到快取中,然后再从快取读取数据进行刻录,快取就是数据和刻录盘之间的桥梁。系统在传输数据到快取的过程中,不可避免的会发生传输的停顿,如在刻录大量小容量档案时,硬碟读取的速率很可能会跟不上刻录的速率,就会造成快取内的数据输入输出不成比例,如果这种状态持续一段时间,就会导致快取内的数据被全部输出,而得不到输入,此时就会造成快取欠载错误,这样就会导致刻录光碟失败。因此刻录机和COMMBO产品都会采用较大容量的快取容量,再配合防刻死技术,就能把刻坏盘的几率降到最低。同时快取还能协调数据传输速率,保证数据传输的稳定性和可靠性。 刻录机产品一般有2MB、4MB、8MB,COMBO产品一般有2MB、4MB、8MB的快取容量,受制造成本的限制,快取不可能制作到足够大。但适量的快取容量还是选择光储需要考虑的关键之一

网路快取

World Wide Web()正在演绎一种新的人类生活,Inter在以前所未有的势头推进,一方面,人们为五彩缤纷的网路世界所陶醉,另一方面又为日渐变慢的访问速率所苦恼…… 网路快取系统结构图什么影响Inter访问速率 访问网站的过程是通过建立在TCP/IP协定之上的HTTP协定来完成的。从客户端发出一个HTTP请求开始,用户所经历的等待时间主要决定于DNS和网站的回响时间。网站域名首先必须被DNS伺服器解析为IP位址,HTTP的延时则由在客户端和伺服器间的若干个往返时间所决定。 往返时间是指客户端等待每次请求的回响时间,平均往返时间取决于三个方面: 1. 网站伺服器的延时 网站伺服器造成的延时在往返时间中占主要比例。当某个伺服器收到多个并发HTTP请求时,会产生排队延时。由于回响一个HTTP请求,往往需要多次访问本地硬碟,所以即使是一台负载并不大的伺服器,也可能产生几十或几百微秒的延时。 2. 由路由器、网关、代理伺服器和防火墙引入的延时 通常在客户端和伺服器之间的路径上会存在多个网路设备,如路由器、网关、代理和防火墙等。它们对经过的IP包都要做存储/转发的操作,于是会引入排队延时和处理延时。在网路拥塞时,这些设备甚至会丢包,此时会寄希望于客户端和伺服器通过端到端的协定来恢复通信。 3. 不同通信链路上的数据传输速率 在广域网中,从一个网路设备到另一个网路设备间的数据传输速率是决定往返时间的一个重要因素。但基本频宽的作用并不是像人们想像的那么重要,一项测试表明,当网站采用T3速率接入Inter时,也仅有2%的网页或对象能以64kbps的速率提供给客户端,这显然表明,频宽在网路性能上不是最关键的因素。 今天Inter在向世界的每一个角落延伸,用户向一个伺服器发出的 请求可能会经过8000公里到1.6万公里的距离,光速带来的延时和网路设备的延时是网路如此缓慢的最根本原因。 网路快取解决根本问题 既然影响网路速率的原因是由距离和光速引起,那么加速Web访问的唯一途径就是缩短客户端与网站之间的距离。通过将用户频繁访问的页面和对象存放在离用户更近的地方,才能减少光速引入的延时,同时由于减少了路由中的环节,也相应地减少了路由器、防火墙和代理等引入的延时。 传统的解决办法是建立镜像伺服器来达到缩短距离的目的。但这个办法存在很大的不足,对于某个站点而言,不可能在离每个用户群较近的地方都建立镜像站点,若对大多数网站都用这样的办法就更不经济,同时管理和维护镜像站点是一项非常困难的工作。 网路快取是一种降低Inter流量和提高终端用户回响时间的新兴网路技术。它的观念来自于计算机和网路的其他领域,如目前流行的Intel架构的CPU中就存在快取,用于提高记忆体存取的速率;各种作业系统在进行磁碟存取时也会利用快取来提高速率;分散式档案系统通常也通过快取来提高客户机和伺服器之间的速率。 1.快取的类型 网路快取可以在客户端,也可以在网路上,由此我们将快取分为两类:浏览器快取和代理快取。 几乎目前所有的浏览器都有一个内置的快取,它们通常利用客户端本地的记忆体和硬碟来完成快取工作,同时允许用户对快取的内容大小作控制。浏览器快取是网路快取的一个极端的情况,因为快取设在客户机本地。通常一个客户端只有一个用户或几个共享计算机用户,浏览器快取要求的硬碟空间通常在5MB到50MB的范围内。但是浏览器快取在用户之间难以共享,不同客户端的快取无法实现交流,因而快取的内容与效果相当有限。 代理快取则是一种独立的套用层网路服务,它更像E-mail、Web、DNS等服务。许多用户不仅可以共享快取,而且可以同时访问快取中的内容。企业级代理快取一般需要配置高端的处理器和存储系统,采用专用的软体,要求的硬碟空间在5MB到50GB左右,记忆体为64MB到512MB。 代理处于客户端与网站伺服器之间,在某些情况下,这种连线是不允许的,如网站在防火墙内,这时客户端必须与代理建立TCP连线,然后由代理建立与网站伺服器的TCP连线。代理在伺服器和客户端之间起到了数据接力的作用。代理发出的HTTP请求与一般的HTTP请求有细小的不同,主要在于它包含了完整的URL,而不只是URL的路径。 2.代理快取的工作原理 当代理快取收到客户端的请求时,它首先检查所请求的内容是否已经被快取。如果没有找到,快取必须以客户端的名义转发请求,并在收到伺服器发出的档案时,将它以一定的形式保存在本地硬碟,并将其传送给客户端。 如果客户端请求的内容已被快取,还存在两种可能:其一,快取的内容已经过时,即快取中保存的内容超过了预先设定的时限,或网站伺服器的网页已经更新,这时快取会要求原伺服器验证快取中的内容,要么更新内容,要么返回“未修改”的讯息;其二,快取的内容是新的,即与原网站的内容保持同步,此时称为快取命中,这时快取会立即将已保存的内容送给客户端。 在客户端的请求没有命中时,反而增加了快取存储和转发的处理时间。在这种情况下,代理快取是否仍有意义呢?实际上,代理快取能够同时与网站伺服器建立多个并发的TCP/IP连线,并行获取网站上的内容。快取的存在从整体上降低了对网站访问的次数,也就降低了单位时间内伺服器端的排队数目,因而这时并发连线的排队延时要小得多。优秀的快取甚至能实现对网页内相关连结内容的预取以加快连线的速率。 3.代理快取的策略 当原伺服器的档案修改或被删除后,快取又如何知道它保存的拷贝已经作废呢?HTTP协定为快取服务提供了基本的支持,它使快取能向原伺服器查询,某个档案是否更改,如果快取的拷贝过时则进行有条件下载。仅当原伺服器档案超过指定的日期时,才会发出新的档案。 但是这些询问操作对网路伺服器造成的负载几乎和获取该档案差不多,因此不可能在客户端向快取发起请求时都执行这样的操作。HTTP协定使得伺服器可以有选择地为每个文档指定生存时间,即清楚地指出某个档案的有效生命周期,生存时间很短即意味着“不要对其快取”。拷贝的保留时间可以是固定的,也可以是通过这个档案的大小、来源、生存时间或内容计算出来的。

分布快取

分散式快取系统是为了解决资料库伺服器和web伺服器之间的瓶颈。如果一个网站的流量很大,这个瓶颈将会非常明显,每次数据库查询耗费的时间将会非常可观。对于更新速度不是很快的网站,我们可以用静态化来避免过多的数据库查询。对于更新速度以秒计的网站,静态化也不会太理想,可以用快取系统来构建。如果只是单台伺服器用作快取,问题不会太复杂,如果有多台伺服器用作快取,就要考虑快取伺服器的负载均衡。 使用Memcached分散式快取服务来达到保存用户的会话数据,而达到各个功能模组都能够跨省份、跨伺服器共享本次会话中的私有数据的目的。每个省份使用一台伺服器来做为Memcached伺服器来存储用话的会话中的数据,当然也可以多台伺服器,但必须确保每个省份的做Memcached伺服器数量必须一致,这样才能够保证Memcached客户端操作的是同一份数据,保证数据的一致性。 会话数据的添加、删除、修改Memcached客户端,添加、删除和、修改会话信息数据时,不仅要添加、删除、修改本省的Memcached伺服器数据,而且同时要对其它省份的Memcahed伺服器做同样的操作,这样用户访问其它省份的伺服器的功能模组进也能读取到相同的会话数据。Memcached客户端伺服器的列表使用区域网路的区域网路IP(如:192.168.1.179)操作本省的Memcahed伺服器,使用公网的IP((如:202.183.62.210))操作其它省份的Memcahe伺服器。会话数据的读取系统所有模组读取会话数据的Memcached客户端伺服器列表都设为本省Memcached伺服器地址的区域网路IP来向Memcahed伺服器中读取会话数据。同一会话的确认使用Cookie来保持客户与服务端的联系。每一次会话开始就生成一个GUID作为SessionID,保存在客户端的Cookie中,作用域是顶级域名,这样二级、三级域名就可以共享到这个Cookie,系统中就使用这个SessionID来确认它是否是同一个会话。会话数据的唯一ID 会话数据存储在Memcached伺服器上的唯一键Key也就是会话数据数据的唯一ID定义为:SessionID_Name, SessionID就是保存在客户端Cookie中的SessionID,Name就是会话数据的名称,同一次会话中各个会话数据的Name必须是唯一的,否则新的会话数据将覆蓋旧的会话数据。 会话的失效时间 会话的失效通过控制Cookie的有效时间来实现,会话的时间设为SessionID或Cookie中的有效时间,且每一次访问SessionID时都要重新设定一下Cookie的有效时间,这样就达到的会话的有效时间就是两次间访问Cookie中SessionID值的的最长时间,如果两次访问的间隔时间超过用效时间,保存在SessionID的Cookie将会失效,并生成新的SessionID存放在Cookie中, SessionID改变啦,会话就结束啦。Memcached伺服器中会话数据的失效,每一次向Memcache伺服器中添加会话数据时,都把有效时间设为一天也就是24小时,让Memcached服务使用它内部的机制去清除,不必在程式中特别做会话数据的删除操作。数据在Memcache伺服器中有有效时间只是逻辑上的,就算是过了24 小时,如果分配给Memcached服务的记忆体还够用的话,数据还是保存在记忆体当中的,只是Memcache客户端读取不到而已。只有到了分配给Memcached服务的记忆体不够用时,它才会清理没用或者比较旧的数据,也就是懒性清除。

增加快取的方法

CPU的快取

CPU的快取分二级:L1(一级快取)和L2(二级快取),当处理器要读取数据时,首先要在L1快取中查找,其次才是L2快取,最后才是系统记忆体。如果有一天你发觉自己的电脑慢了很多,进入到Windows桌面也要几分钟,这时候就要检查一下CPU的一、二级快取有没有打开。在BIOS设定中的StandardCMOSSetup(标准CMOS设定)有两项是用来打开或关闭快取的:CPUInternalCache设为Enable时开启CPU内部的一级缓冲区,若设定为Disabl则为关闭,这时系统性能将大大降低;ExternalCache选项是控制主机板上二级缓冲区,如果主机板上有二级快取则应设成Enable。

硬碟的快取

点击电脑桌面上的“开始”/“运行”,键入“Msconfig”启动“系统配置实用程式”,跟着选中“system.ini”标签下的“Vcache”项,就可以根据系统的实际情况来调节硬碟的快取了。在该选项中一般会有三行内容:ChunkSize=1024、MaxFileCache=10240和MinFileCache=10240;其中第一行是缓冲区读写单元值,第二、三行是硬碟的最大和最小缓冲值,等号后的数值都是可以修改的,只要右键单击选中任一行就可以进行修改了。如果你的记忆体是128MB的话,上面这三行的取值就比较合理了,当然也可以自定。如果不知道该如何设定合适的缓冲值,请“Windows最佳化大师”帮忙吧,这个软体中有一个“磁碟快取最佳化”项,用滑鼠就可以方便地设定好快取;又或者让“Windows最佳化大师”自动帮你进行最佳化设定。当硬碟的快取值足够大时,硬碟就不用频繁地读写磁碟,一来可以延长硬碟的寿命,二来也可以提高数据的传输速度。 另外,将硬碟的“档案系统快取”设定为“网路伺服器”,可以加快系统对硬碟的访问速度,因为档案系统快取里存放了硬碟最近被访问过的档案名称和路径,快取越大所能储存的内容也就越多。如果点击“控制台”/“系统”/“性能”/“档案系统”/“硬碟”,将“此计算机的主要用途”由“台式机”改为“网路伺服器”,可以将原来10K左右的快取增加至近50K左右。

软碟机和光碟机的快取

一般来说,软碟机读写数据的速度都比较慢,这是因为碟片的转速不能太高,但是,我们可以提高软碟机的读写快取,让软碟机一次读写更多的数据。方法是:在桌面上的“开始”/“运行”框中键入“Regedit”运行注册表编辑器,依次进入HKEY-LOCAL-MACHINESystemCurrentControlSetServicesClassFDC000,新建一个为ForeFifo的“DWORD值”,将其值设为“0”,这样就对软碟机进行了软提速。很多人都知道右键单击桌面“我的电脑”图示,选“属性”/“性能”/“档案系统”/“CD-ROM”,将最佳的访问方式设为“四倍速或更高速”,将追加的高速快取大小滑块拖到最大处,可以明显提高光碟机的读盘速度。除了这种方式,我们还可以在注册表中设定缓冲值,方法是:进入到注册表,在HKEY-LOCAL-MACHINESystemCurrentControlSetControlFileSystemCDFS下,将CacheSize(快取值的大小)和Prefetch(预读档案大小)两项进行手工调整,只要右键单击要选的项就可以进行修改了。  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码