Linux运维07:free命令详解

Posted YoungerChina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux运维07:free命令详解相关的知识,希望对你有一定的参考价值。

    free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一。

1. 用法

格式:

free [options]

参数说明:

参数说明
-bByte为单位显示内存使用情况
-kKB为单位显示内存使用情况
-mMB为单位显示内存使用情况
-gGB为单位显示内存使用情况
-h以有好的方式显示内存的使用情况
-o不显示缓冲区调节列
-s<间隔秒数>持续观察内存使用状况
-t显示内存总和列
-V显示版本信息

2. 实践

 字段说明

数值解释
taotal总计物理(swap)内存的大小
used已使用物理内存(swap)的大小
free可用的物理内存(swap)大小
shared多个进程共享的内存总额
buff/cache磁盘的缓存大小
available可以被新应用程序使用的内存大小

total = MemTotal
free = MemFree
used = MemTotal - MemFree - Cached - Slab - Buffers
shared = Shmem
buffers = Buffers
cache = Cached + Slab

available 有三种情况:

1、kernel>3.14,直接使用MemAvailabe
2、 2.6.27 <= kernel <? 3.14 通过计算得出,该部分与MemAvailabe稍有差别,但统计思路是一致的。计算方法如下
       MemFree - watermark_low +
       ‘Inactive(file)’ + ‘Active(file)’ - MIN((‘Inactive(file)’ + ‘Active(file)’) / 2, watermark_low) +
       SReclaimable - MIN(SReclaimable / 2, watermark_low)
3、kernel < 2.6.27,直接使用MemFree


对于1在内核态(4.15.0-58)MemAvailabe计算方式为:

MemAvailable = MemFree - totalreserve_pages +
‘Inactive(file)’ + ‘Active(file)’ - MIN((‘Inactive(file)’ + ‘Active(file)’) / 2, watermark_low) +
SReclaimable - MIN(SReclaimable / 2, watermark_low) +
global_node_page_state(NR_INDIRECTLY_RECLAIMABLE_BYTES) >> PAGE_SHIFT (内存压力大时可释放部分内存)

totalreserve_pages为内核reserve内存
watermark_low为各zone的watermark内存低水位线之和,也即达到该水位线,内核将不再主动回收内存

以上是关于Linux运维07:free命令详解的主要内容,如果未能解决你的问题,请参考以下文章

Linux内存回收机制watermark

Linux 内核 内存管理分区伙伴分配器 ⑦ ( z->watermark[WMARK_MIN] 最低水位计算 | min_free_kbytes 初始化 )

Linux 内核 内存管理分区伙伴分配器 ⑦ ( z->watermark[WMARK_MIN] 最低水位计算 | min_free_kbytes 初始化 )

Linux上的free命令详解

linux系列之常用运维命令整理笔录

linux系列之常用运维命令整理笔录