码迷,mamicode.com
首页 > 系统相关 > 详细

cache 和 buffer

时间:2018-02-07 12:00:45      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:写入   localhost   cache   ota   调用   内存   存储器   直接   tps   

顺序: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

感谢!

cache 和 buffer

标签:写入   localhost   cache   ota   调用   内存   存储器   直接   tps   

原文地址:http://blog.51cto.com/406647516/2069703

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!