Linux下/proc/meminfo参数MemTotal、MemFree、MemAvailable说明

使用cat /proc/meminfo查看结果如下

# cat /proc/meminfo 
MemTotal:         102724 kB
MemFree:            8404 kB
MemAvailable:      34336 kB
Buffers:            4588 kB
Cached:            22740 kB
SwapCached:            0 kB
Active:            17916 kB
Inactive:          12756 kB
Active(anon):       3352 kB
Inactive(anon):        0 kB
Active(file):      14564 kB
Inactive(file):    12756 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:          3320 kB
Mapped:             9864 kB
Shmem:                 4 kB
Slab:              57872 kB
SReclaimable:       3732 kB
SUnreclaim:        54140 kB
KernelStack:         992 kB
PageTables:          276 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:       51360 kB
Committed_AS:      26468 kB
VmallocTotal:    1048372 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB

参数说明

MemTotal 

       内存总数,系统从上电开始到引导完成,除去boot、内核要保留的一些内存,最后剩余可供系统使用的内存就是MemTotal,这个值在系统运行期间一般是固定不变的

MemFree

       空闲内存,表示系统尚未使用的内存。

MemAvailable

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

Buffer

        缓冲器内存

Cache

        缓存区内存

Shared

        多进程共享的内存空间

Buffer与Cache的区别

       常见的说法叫write-buffer和read-cache,buffer一般用作写操作上,cache一般用在读操作上,不过也不是一成不变的。

 free指令

# free
             total         used         free       shared      buffers
Mem:        102724        95196         7528            4         4588
-/+ buffers:              90608        12116
Swap:            0            0            0

计算公式:

参照free的输出结果,这里有几个计算公式:

为了直观说明,把第2行,Mem的行我这里称作OS Mem,第三行 buffers/cache行,称作APP buffer/cache:

OS Mem total = OS Mem used + OS Mem free

APP buffers/cache used = OS Mem used - OS Mem buffers - OS Mem cached

APP buffers/cache free = OS Mem free + OS Mem buffers + OS Mem cached

APP buffers/cache total = APP buffers/cache used + APP buffers/cache free = OS Mem total

参考链接:

Linux MemFree与MemAvailable的区别_xujpxm的技术博客_51CTO博客

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Linux系统中,/proc/meminfo文件包含了有关系统内存状态的信息。以下是一些常见参数及其含义: 1. MemTotal:系统的总内存大小。 2. MemFree:系统可用的空闲内存大小。 3. Buffers:用于块设备(如硬盘)的缓存大小。 4. Cached:用于文件系统的缓存大小。 5. SwapCached:从交换分区中缓存的内存大小。 6. SwapTotal:交换分区的总大小。 7. SwapFree:交换分区可用的空闲大小。 8. Dirty:等待被写回到磁盘的脏页大小。 9. Writeback:正在被写回到磁盘的脏页大小。 10. AnonPages:未映射的匿名内存大小。 11. Mapped:文件映射的大小。 12. Shmem:共享内存的大小。 13. Slab:内核数据结构缓存的大小。 14. SReclaimable:可回收的Slab大小。 15. SUnreclaim:不可回收的Slab大小。 16. KernelStack:内核栈的大小。 17. PageTables:页面表的大小。 18. NFS_Unstable:不稳定的NFS文件系统页大小。 19. Bounce:从设备中反弹回来的页面大小。 20. CommitLimit:系统可以分配的内存上限。 21. Committed_AS:系统当前已经分配的内存大小。 22. VmallocTotal:虚拟内存总大小。 23. VmallocUsed:已使用的虚拟内存大小。 24. VmallocChunk:最大的连续虚拟内存块大小。 25. HardwareCorrupted:硬件故障引起的页面数量。 26. AnonHugePages:大页匿名内存大小。 27. HugePages_Total:系统支持的大页数量。 28. HugePages_Free:系统剩余的大页数量。 29. Hugepagesize:大页大小。 这些参数可以帮助我们了解系统内存的使用情况,以便进行性能调优和资源管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wellnw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值