Linux free 命令详解
16472022-03-30 14:56:00返回列表
Linux free命令用于显示内存状态。free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
一、前言
Linux free命令用于显示内存状态。
free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
二、free详解
1、命令格式
free [-bkmotV][-s <间隔秒数>]
2、命令参数
-b 以Byte为单位显示内存使用情况。 -k 以KB为单位显示内存使用情况。 -m 以MB为单位显示内存使用情况。 -h 以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有: B = bytes K = kilos M = megas G = gigas T = teras -o 不显示缓冲区调节列。 -s <间隔秒数> 持续观察内存使用状况。 -t 显示内存总和列。 -V 显示版本信息。
3、实例介绍
实例一:以bytes字节来计算
命令:
free -b
字段 | 含义 |
---|---|
Mem | 内存的使用情况 |
-/+ buffers/cache | 表示物理内存已用多少,可用多少 |
Swap | 交换空间的使用情况 |
total | 物理内存大小,就是机器实际的内存 |
used | 已使用的内存大小,这个值包括了cached和应用程序实际使用的内存 |
free | 空闲的,未被使用的内存大小 |
shared | 共享内存大小,是进程内通讯的一种方式,在linux里面有很多共享内存,比如一个libc库,很多程序调用,但实际只存一份 |
buffers | 被缓冲区占用的内存大小,可回收 |
cached | 被缓存占用的内存大小,可回收 |
备注:
cached和buffers都可以读写,它们唯一的区别就是:buffers以裸设备或分区为背景,cached以文件系统里的文件为背景。
比如 cat /dev/sda1 > /dev/null,那**/dev/sda1的内容进入buffers**,
如果cat /opt/a.py > /dev/null,则**/opt/a.py的内容进入cached**。
1)、关于Mem这一行的total的计算公式
total = Mem这一行的used + Mem这一行的free
2)、关于 -/+ buffers/cache这一行的used的计算公式(-/+ buffers/cache这一行的used,即 -buffers/cache ,表示一个应用程序认为系统被用掉多少内存,实实在在吃掉的内存)
-/+ buffers/cache的used = Mem这一行的used - Mem这一行的buffers - Mem这一行的cached
3)、关于 -/+ buffers/cache这一行的free的计算公式(-/+ buffers/cache这一行的free,即 +buffers/cache ,表示一个应用程序认为系统还有多少内存,可以挪用的内存总数)
-/+ buffers/cache的free = Mem这一行的free + Mem这一行的buffers + Mem这一行的cached
4)、关于Swap这一行的total的计算公式
total = Swap这一行的used + Swap这一行的free
实例二:以kb来计算
命令:
free -k
实例三:以mb为单位来计算
命令:
free -m
实例四:以gb为单位来计算
命令:
free -g
实例五:以较友好的方式显示
命令:
free -h
实例六:显示详细的低内存和高内存统计信息
命令:
free -l
实例七:使用旧格式(没有 -/+buffers/cache 这一行)
命令:
free -o
实例八:展示RAM和swap的合计
命令:
free -t
实例八:(free -s N)每相隔N秒重复打印一次内存信息,直到你按下 Ctrl + c
命令:
free -s 2
每隔2秒打印一次
实例八:显示版本号信息
命令:
free -V