Linux Free命令各数字含义及Buffer和Cache的区别
Linux Free命令各数字含义及Buffer和Cache的区别
Free 命令的各数字含义
命令演示
[root@vm1 ~]# free
total used free shared buffers cached
Mem: 502276 119160 383116 0 11040 46588
-/+ buffers/cache: 61532 440744
Swap: 835576 0 835576
加上参数m
,显示的单位为MB
[root@vm1 ~]# free -m
total used free shared buffers cached
Mem: 490 116 374 0 10 45
-/+ buffers/cache: 60 430
Swap: 815 0 815
按行详解
- total :物理内存的实际总量
- used :总计分配给缓存(buffer+cache)的使用的数量,但是其中部分可能并未实际使用(注意:这里不是实际使用了的内存)
- free :未被分配的内存(真正的空闲,未被任何程序占用)
- shared:多个进程共享的内存总额
- buffers:磁盘缓存(buffer cache)的大小(可提高I/O调用的性能),系统分配的,但是未被使用的buffer剩余量。
- cached:磁盘缓存(page cache)的大小(可提高I/O调用的性能),系统分配的,但是未被使用的cache剩余量。
- -buffers/cache:表示已被我们程序使用的内存数,计算方法:
used-buffers-cached
(注意:这里才是内存的实际使用量) - +buffers/cache:表示还可被我们使用的内存数,计算方法:
free+buffers+cached
- swap:交换分区总量,使用量,剩余量
内存相关参数计算-数字取自上述结果
操作系统总的内存数量:total=used+free=116+374=490MB
操作系统目前内存实际使用量:used-buffers-cached=116-10-45=61MB
操作系统目前可用内存总量=free+buffers+cached=374+10+45=429MB
cache和buffer的区别
1.cache:高速缓存,是位于CPU与主内存之间的一种容量较小但是速度较高的存储器,由于CPU的速度远高于主内存,CPU直接从内存中存取数据需要等待一定的时间周期。cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从cache中直接调用,这样就减少了CPU的等待时间,提高了系统的效率。
cache又分为一级cache(L1 cache)和二级cache(L2 cache),L1集成在CPU内部,L2早期一般时焊在主板上的,现在也都即成在CPU内部,常见L2 cache的容量有256KB或512KB。
2.buffer:缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据的区域。通过缓冲区,可以使进程之间的相互等待变少。速度快的设备可以利用buffer不间断的进行写操作,速度慢的设备可以直接从buffer中读取数据,减少速度快的设备的等待时间,提高效率。
那么,Free中的cache和buffer用途就显而易见啦!
cache:文件系统的缓冲(page cache)
buuffer:块设备的读写缓冲区(buffer cache)
勿忘初心,放得始终
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗