山地人

Free

山地人
山地人
2021-05-12

上一篇,我们讲的Top命令可以对CPU,内存和进程进行全方位监控。这一篇,我们再学习一个新命令free

free命令是一款专用用于内存查看的命令,可以查看当前系统的可用和已用内存情况。

最简方法

# free
total used free shared buff/cache available
Mem: 1014720 462984 118564 180 433172 400932
Swap: 4095996 711680 3384316

点击开启,在终端里试试这条命令

你是否看到类似这样的信息

# free
total used free shared buff/cache available
Mem: 1014720 462984 118564 180 433172 400932
Swap: 4095996 711680 3384316

有些参数看不懂,没有关系,下面我们就来解释下各个字段的含义:

# free
总量 已用 未用 共享 缓存 可用
total used free shared buff/cache available
Mem: 内存
Swap: 交换区
  • total:系统上安装的总内存量/Swap交换区总量
  • used:已用内存,公式:used = total - free - buffers - cache
  • shared:用作共享内存的内存用量
  • buff/cache:所有buff和cache的总用量
  • buffers:内核缓冲用量

其中会让人产生困惑的是freeavaiable这两个字段。

  • free:是未使用的内存。
  • avaiable:为系统估计的可用于启动新应用而无需交换的可用内存量。

人性化显示

默认情况下,free命令是以KB为单位进行信息展示,而我们期望获得更为人性化的信息,按照用量大小自动选用合适的单位来展示。

# free -h
total used free shared buff/cache available
Mem: 990M 374M 144M 188K 472M 444M
Swap: 3.9G 696M 3.2G

这里的-h有human的含义,意思是给人阅读的选项。

趁热打铁,赶紧也来试一下

当然如果你非要强制统一用一个统一的单位来展示信息,也是可以的。这里有一组可选参数:

  • -b, —bytes 以字节为单位展示
  • -k, —kilo 以KB为单位展示
  • -m, —mega 以MB为单位展示
  • -g, —giga 以GB为单位展示

每一种选项提供了缩写和全写两种使用方式,比如:-b 就是缩写 —bytes 就是完整写法

所以下面两种使用方法是等价的。

free -b
free --bytes

定时刷新

当然,有时你可能会想观察一段时间的内存变化。这时,我们可以设置free的更新频率和更新次数

-s 5 # 每隔5s更新一次
-c 10 # 更新10次后结束

所以你可以这样设置,那么每隔5秒更新一次信息,连续更新10次后退出命令

free -s 5 -c 10

你也可以这样设置,每隔2秒更新一次内存用量信息,直到你按下ctrl+c终止这个程序运行,否则这个程序会一直运行下去。

free -s 2

尝试下上面的两个选项

以上就是我们今天要学习的free命令,如果你是一步一步跟着做下来的,那你对这个free命令应该非常清楚了。

学完本篇互动教程,如果你觉得体验不错,可以把网页链接发送给你的小伙伴,让他/她也来感受一下。当然,你也可以继续看看网站上其他的的互动教程,希望`idev365`能够给你带来收获。