free 命令是Linux系统上查看内存使用状况最常用的工具,然而很少有人能说清楚 “buffers” 与“cached” 之间的区别: 我们先抛出结论,如果你对研究过程感兴趣可以继续阅读后面的段落: “buffers” 表示块设备(block device)所占用的缓存页,包括:直接读写块设备、以及文件系统元数据(metadata)比如SuperBlock所使用的缓存...
】“cached”:“Cached” 表示除去 “buffers” 和 “swap cache” 之外,剩下的也就是普通文件的缓...
“buffers” 表示块设备(block device)所占用的缓存页,包括:直接读写块设备、以及文件系统元数据(metadata)比如SuperBlock所使用的缓存页;“cached” 表示普通文件数据所占用的缓存页。 下面是分析过程: 先用strace 跟踪 free 命令,看看它是如何计算 “buffers” 和“cached” 的: # strace free...open("/proc/...
``+buffers/cache`:可用的内存大小(同理也不是free表示的部分),其值=free+buffers+cached。 Swap:硬盘上交换分区的使用大小。 设计的目的就是当上面提到的+buffers/cache表示的可用内存都已使用完,新的读写请求过来后,会把内存中的部分数据写入磁盘,从而把磁盘的部分空间当做虚拟内存来使用。 Buffer和Cache介绍 Ca...
free的运行结果如下: total used free shared buffers cached Mem: 2097152 1090000 1007152 0 290540 9084008 -/+ buffers/cache: 10021016 123841 Swap: 25151484 224188 24927296 Mem行: total:物理内存总量,total=used+free used:物理内存使用量 free:物理内存释放量 ...
free:未被分配的内存 shared:共享内存,一般系统不会用到,这里也不讨论 buffers: 系统分配但未被使用的buffers 数量 cached:系统分配但未被使用的cache 数量 -/+ buffers/cache(物理内存实际使用情况)行 used:实际使用的buffers 与cache 总量,也是实际使用的内存总量 ...
free 命令中的 buff/cache 是由 Buffers、Cached 和 SReclaimable 这三项组成的,free命令是一个工具,是逻辑上人为去统计三个值的和,它强调的是内存的可回收性,也就是说,可以被回收的内存会统计在这一项。 通过下面这张图,我们可以看到 Buffers、Cached 和 SReclaimable在linux内核中的位置: ...
cached 缓存,用于已打开的文件 第二行描述应用程序的内存使用: -buffers/cache 的内存数:used - buffers - cached buffers/cache 的内存数:free buffers cached 前个值表示-buffers/cache 应用程序使用的内存大小,used减去缓存值 后个值表示 buffers/cache 所有可供应用程序使用的内存大小,free加上缓存值 ...
-buffers/cache:正在使用的内存大小(注意不是used部分,因为buffers和cached并不是正在使用的,组织和人民需要是它们是可以释放的),其值=used-buffers-cached。+buffers/cache:可用的内存大小(同理也不是free表示的部分),其值=free+buffers+cached。Swap:硬盘上交换分区的使用大小。
cached是cpu与内存间的,buffer是内存与磁盘间的,都是为了解决速度不对等的问题。 total used free shared buffers cached Mem: 32058 23868 8189 0 400 18485 -/+ buffers/cache: 4982 27075 Swap: 7999 0 7999 从上面的信息可以看出。系统实际用了23868M,而buffers用了400,cached用了18485,前面的23868是包含...