时间:2021-05-02
不论什么时候,只要系统带有多个设备,而这些设备的性能又各不相同,就存在从慢速设备到快速设备不断更换工作地点以改善系统性能的可能性,这就是缓存的基本思想。即数据从一个地点拷贝到另一个地点,使之检索起来更快。虽然这是一个简单概念,但却包含着许多奇思妙想。
简单地说,为满足某种预期的未来需要所做的准备即缓存。缓存是一种人类的本性,为了保证充分的物品供应量,需要预先进行计划,然后选择一个能够提供最快服务的地方,存放它们,这就是所谓的可靠物资管理。它也是计算机系统的核心概念,即将需要的信息放在可以最快访问的地方,其描述如图。
本篇主题如下:
缓存命中和缓存未命中
缓存与缓冲间的差异
缓存命中和缓存未命中
当I / O操作开始从磁盘缓存而不是从非易失存储中检索数据时,(如磁盘设备或子系统)缓存命中发生。除了提供来自内存的快速响应之外,缓存命中还缩短了I / O路径的距离。如图所示。
另一种情况是,虽然搜索了缓存,但没有发现数据,因此数据必须从非易失存储读取,这就是缓存未命中。由于搜索缓存时需要花费时间,所以缓存未命中增加了I / O操作的时间。缓存未命中工作过程如图所示:
如果缓存实现不理想,将产生很高的未命中率,由于每次缓存未命中都需要花费额外的时间,所以导致系统性能的下降。用于描述缓存相对精确度的术语叫缓存命中率,缓存命中率是缓存命中数除以I / O请求总数所得的结果。对于开放系统服务器,如UNIX、Win NT及NETWare系统等,通常的命中率率不超过50 %。顺便指出,由于大型计算机系统使用的数据访问方法不同,它能到达更高的命中率(90 %)。
缓存与缓冲间的差异
“缓存”和“内存”有时可以互换使用。然而,磁带驱动器中的内存通常并不是缓存,而是缓冲。虽然它们的物理组成是一样的,但缓冲只起临时存储数据的作用,由此数据从一个位置或设备传到另一个位置或设备。一般地,缓冲是在生命期较短的进程控制下工作,一旦数据传输完毕,这些进程将立即释放内存地址。一种常见类型的缓冲是F I F O缓冲,即一种先进先出结构,其结构如图所示:
另一方面,缓存内存由一个或更多的系统算法所控制,这些算法在一个长时间里维护和管理着内存资源,缓存的数据可以长时间地保存在缓存中。
在协调性能有差异的控制器和设备工作方面,缓冲常常能够发挥作用,这种方式的缓冲可以看作是某种转换器。主机I / O控制器上的芯片可以快速地通过I / O路径传输数据,它们的性能可以达到纳秒级,而对于磁盘和磁带驱动器这样一类的机电存储设备,其数据的传输速度只能在微秒范围内。因此,设备制造商把缓冲内存放入设备中,以减少访问延迟,以适合主机控制器的性能。这样,主机控制器可以同时地在多个设备上实施重叠操作,图显示了这种重叠过程。
缓存算法既可以在主机软件中实现,也可以在存储子系统或在主机控制器中实现。当缓存由一块电子线路实现时,它被称为缓存控制器,除了管理磁盘缓存内存中的内容外,它还可以控制子系统中的磁盘操作,这些操作的细节是下一章的主要论题。图显示了带有一个缓存控制器和缓存内存的磁盘缓存结构:
之前在社区发布了一系列的文章,后来因为图片问题,很多的文章无法看了,朋友都反应了这个问题,现在发布出来,持续的更新,请大家顶起来 :
按需下载 打包下载
作者:小洋,燕洋天
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
公司有几个服务器开着多个memcached进程,除了要监控他们是否正常telnet通,实例是否存在外还要监控他们的缓存命中率。针对他们的缓存命中率进行报警。网上
首先先简单的将一个查询语句背后MySQL做了什么捋一捋:客户端发送一条查询给服务器。服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入
kafka支持的特性如下: 1、消息持久化和缓存。Kafka高度依赖文件系统来存储和缓存消息。一般的人都认为“磁盘是缓慢的”,这使得人们对“持久化结构提供具有
磁盘缓存到底是什么呢?今天小编就来好好和大家说说关于磁盘缓存的具体内容:其实,磁盘缓存分为两种,一种是读缓存,另一种是写缓存。一、读缓存读缓存是指,操作系统为已
这样还能减少CPU缓存命中失效的问题(点击这个链接来查看CPU的缓存是如何工作的以及MESI协议)。下面让我们来揭穿三个有关NULL位图的普遍误区。误区#6a: