cache 和 buffer

顺序:cpu---cache---mem(内存)---buffer---hard drive(硬盘)

cached是cpu与内存间的,buffer是内存与磁盘间的,都是为了解决速度不对等的问题

cached是高速缓存,buffer是缓冲。

buffer是即将要被写入磁盘的,而cache是被从磁盘中读出来的

Cache:高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,这样就减少了CPU的等待时间,提高了系统的效率。Cache又分为一级Cache(L1 Cache)和二级Cache(L2 Cache),L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现在也都集成在CPU内部,常见的容量有256KB或512KB L2 Cache

例子:
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 7869 7651 218 1 191 5081
-/+ buffers/cache: 2378 5490
Swap: 478 139 339

计算:

这里使用1、2 分别代表第一行和第二行的数据

total1:表示物理 内存总量
used1:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用
free1:未被分配的内存
shared1:共享内存,一般系统不会用到,这里也不讨论
buffers1: 系统分配但未被使用的buffers 数量
cached1:系统分配但未被使用的cache 数量
used2:实际使用的buffers 与cache 总量,也是实际使用的内存总量
free2:未被 使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存

可以整理出如下等式

total1 = used1 + free1
total1 = used2 + free2
used1 = buffers1 + cached1 + used2
free2 = buffers1 + cached1 + free1

具体计算

7869 = 7651 + 218
7869 = 2378 + 5490 #7868基本相等,因为有shared)
7651 = 191 + 5081 + 2378 #7650 基本相等,因为有shared)
5490 = 191 + 5081 + 218

参考:https://www.cnblogs.com/chenpingzhao/p/5161844.html

感谢!




      本文转自flayber  51CTO博客,原文链接:http://blog.51cto.com/406647516/2069703,如需转载请自行联系原作者




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值