运维排查-linux中使用free命令查看可用内存

一  free命令

1.1 指数参数介绍

 第一行:
Mem 内存的使用信息
Swap 交换空间的使用信息

第一行
total 系统总的可用物理内存大小
used 已被使用的物理内存大小
free 还有多少物理内存可用
shared 被共享使用的物理内存大小
buff/cache 被 buffer 和 cache 使用的物理内存大小
available 还可以被 应用程序 使用的物理内存大小

Linux 性能调优内存篇:工具命令篇 - 走看看

1.2 Buffers和cacahed区别与联系

Buffers是对物理设备上数据的缓存/缓冲,而Cache是文件数据的缓存/缓冲。它们都可以用在读写请求上,根据操作对象的不通,内核将使用Buffers或者Cached来缓存/缓冲数据。
Buffers在操作物理设备时用于加速
Cached 在操作文件/数据结构时用于加速

1.3  free与available的区别和联系

free 与 available 的区别
free 是真正尚未被使用的物理内存数量。
available 是应用程序认为可用内存数量,available = free + buffer + cache (注:只是大概的计算方法)

1.Linux 为了提升读写性能,会消耗一部分内存资源缓存磁盘数据,对于内核来说,buffer 和 cache 其实都属于已经被使用的内存。但当应用程序申请内存时,如果 free 内存不够,内核就会回收 buffer 和 cache 的内存来满足应用程序的请求。这就是稍后要说明的 buffer 和 cache。

2.应用程序可用内存数。系统中有些内存虽然已被使用但是可以回收的,比如cache/buffer、slab都有一部分可以回收,所以MemFree不能代表全部可用的内存,这部分可回收的内存加上MemFree才是系统可用的内存,即:MemAvailable≈MemFree+Buffers+Cached,它是内核使用特定的算法计算出来的,是一个估计值。它与MemFree的关键区别点在于,MemFree是说的系统层面,MemAvailable是说的应用程序层面。

3.实际上available字段的近似计算方法为:free+(buffers+cached)/2,这就是free的作者根据经验的估算,判断buffers和cache里面大约有50%是不可回收的。
所以:可用内存范围: [free free+(buffers+cached)/2] 

总结: free就是物理内存还没有使用的量,可以真正可以使用的内存大小。(如家里保险柜里剩余的钱),buff/cache: (用于生活周转的钱),情况好一点的话,free+buff/cache 都能使用,情况不好的话,buff/cache 这些被占用,就只剩下free的大小的内存了,所以最靠谱的说剩余内存,就只说:free的大小就是我们还可以使用的内存的大小。

1.4 无法被回收的内存

无法被回收的内存有哪些?
1.挂载的tmpfs存储的文件,这些文件时直接存储与内存中的;
2.进程使用的共享内存,也是存储于cache中的,这一段不能被回收,可以手动执行 ipcrm -m ID号 进行释放。
3.mmap函数创建出来的内存,此函数通常用于将文件映射至内存中,但是Linux注明的内存注册函数malloc函数在申请大段内存时,使用的也是这个函数,使用mmap函数进行共享内存的申请时,被申请的共享内存也是无法释放的。

1.5 使用top命令按内存使用排序显示

1.使用: top -o %MEM  按内存使用大小进行排序显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值