linux中buffer和cache的区别
来源:互联网 发布:rxjava源码分析 编辑:程序博客网 时间:2024/05/23 01:24
free命令
$free -h total used free shared buffers cachedMem: 62G 62G 739M 1.7M 11M 9.0G-/+ buffers/cache: 53G 9.7GSwap: 11G 5.8G 5.9G
total:表示物理内存总量。
used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free:未被分配的内存。
shared:共享内存,一般系统不会用到,这里也不讨论。
buffers:系统分配但未被使用的buffers 数量。
cached:系统分配但未被使用的cache 数量
total = used + free
buffers(第二行) = used(第二行) - buffers(第一行) - cached(第一行)
free(第二行) = free(第一行) + buffers(第一行) + cached(第一行)
buffer和cache
A buffer is something that has yet to be “written” to disk. A cache is
something that has been “read” from the disk and stored for later use.
因此,buffer是用于存放要输出到disk(块设备)的数据,而cache是存放从disk上读出的数据,二者是为了提高IO性能,并由OS管理。
个人理解,buffer主要用于写操作,cache主要用于读操作,其操作方向也不同,buffer主要由进程把数据从内存写入外部设备如磁盘,cache主要从外部设备如磁盘读入到内存以备进程读取。
buffers是被一个特定进程使用的用于临时存放数据的内存空间,这些内容不会被其他进程访问。
这篇文章用了带宽的概念来类比,非常贴切。当你试图通过网络发送大量的突发数据时,如果网卡的带宽(capacity)仅支持发送一部分时,它会将剩下的数据存在buffers中,用于后续发送。
而cached用于存放频繁访问的一些数据,目的是做到更快的数据访问。比如多个进程需要读同一个文件,此时内存可能就分配一片cached区域,用于作为CPU到磁盘之间的cache。
总结
buffers和cached的区别:
a. buffers是供单个进程使用的,而cached可供多个进程使用
b. buffers是一次性的,而cached是可以反复使用的
buffers和cached的共同之处就在于它们都是临时性的存储,如果后续有进程需要使用这些内存空间,Linux会释放(free)这些临时性占用的内存。
- linux中buffer和cache的区别
- Linux中Buffer和Cache的区别
- Linux中Buffer和Cache的区别
- Linux中Buffer和Cache的区别
- Linux中Buffer和Cache的区别
- linux中buffer和cache的区别
- Linux 内存中Page cache和buffer cache 的区别
- Linux操作系统中内存buffer和cache的区别
- linux 中内存buffer和cache的区别
- Linux操作系统中内存buffer和cache的区别
- Linux操作系统中内存buffer和cache的区别
- Linux操作系统中内存buffer和cache的区别
- Linux操作系统中内存buffer和cache的区别
- Linux操作系统中内存buffer和cache的区别
- linux free命令中buffer和cache的区别
- Linux操作系统中内存buffer和cache的区别
- Linux中内存buffer和cache的区别
- Linux操作系统中内存buffer和cache的区别
- 藏宝图
- 利用procdump+Mimikatz 绕过杀软获取Windows明文密码
- Win10输入法图标消失,只能输英文怎么办?
- 《hbase学习》-01-eclipse下远程调试Hbase
- 二叉树的深度
- linux中buffer和cache的区别
- 前台服务
- sublime text 3安装插件卸载插件更新插件
- ARM之按键操作
- Java并发编程实战(学习笔记六 第七章 取消与关闭 下)
- 本人和朋友们正在创业,正在寻求硬件设计,软件,销售人合伙 (安防领域)
- 怎么禁止自动填充浏览器记住的密码
- 从零开始学习laravel web(七)
- div 高度为0