linux的top下buffer与cache的区别

buffer:
   缓冲区,一个用于存储速度不一样步的设备或优先级不一样的设备之间传输数据
的区域。经过缓冲区,可使进程之间的相互等待变少,从而使从速度慢的设备读入数据
时,速度快的设备的操做进程不发生间断。
cache:
      当你读写文件的时候,Linux内核为了提升读写性能与速度,会将文件在内存中进行缓存,
这部份内存就是Cache Memory(缓存内存)。即便你的程序运行结束后,Cache Memory也不会
自动释放。这就会致使你在Linux系统中程序频繁读写文件后,你会发现可用物理内存会不多。
其实这缓存内存(Cache Memory)在你须要使用内存的时候会自动释放,因此你没必要担忧没有
内存可用。若是你但愿手动去释放Cache Memory也是有办法的
 
 
咱们使用的 LinuxWindows可不太同样,用top命令得出来的可能不是真实使用的内存,用free命令第二行才是系统真实使用的内存
 
在终端中敲入:free
显 示:  total  used  free  shared  buffers  cached
Mem:    255268 238332  16936    0      85540    126384
-/+ buffers/cache:26408  228860 系统的总物理内存:255268Kb(256M),但系统 当前真正可用的内存并非第一行free 标记的 16936Kb,它仅表明未被分配的内存。 咱们使用total一、used一、 free一、used二、free2 等名称来表明上面统计数据的各值,一、2 分别表明第一行和第二行的数据。 total1:表示物理 内存总量。 used1:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。 free1:未被分配的内存。 shared1:共享内存,通常系统不会用到,这里也不讨论。 buffers1: 系统分配但未被使用的buffers 数量。 cached1:系统分配但未被使用的cache 数量。buffer 与cache 的区别见后面。 used2:实际使用的buffers 与cache 总量,也是实际使用的内存总量。 free2:未被 使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。 能够整理出以下等式: total1 = used1 + free1 total1 = used2 + free2 used1 = buffers1 + cached1 + used2 free2 = buffers1 + cached1 + free1
相关文章
相关标签/搜索