Linux运维07:free命令详解
Posted YoungerChina
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux运维07:free命令详解相关的知识,希望对你有一定的参考价值。
free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一。
1. 用法
格式:
free [options]
参数说明:
参数 | 说明 |
-b | 以Byte为单位显示内存使用情况 |
-k | 以KB为单位显示内存使用情况 |
-m | 以MB为单位显示内存使用情况 |
-g | 以GB为单位显示内存使用情况 |
-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 内核 内存管理分区伙伴分配器 ⑦ ( z->watermark[WMARK_MIN] 最低水位计算 | min_free_kbytes 初始化 )
Linux 内核 内存管理分区伙伴分配器 ⑦ ( z->watermark[WMARK_MIN] 最低水位计算 | min_free_kbytes 初始化 )