Linux中的Free命令
Contents
1. 概述
有时我们想**知道我们的 Linux 系统的内存使用情况。**在本教程中,我们将看到如何使用free 的命令行实用程序来做到这一点。
2. free命令示例
free命令是一个 Linux 工具,可以显示当前 RAM 和交换空间的使用情况:
$ free
total used free shared buff/cache available
Mem: 32882588 4418516 26725724 437164 1738348 27589116
Swap: 2097148 0 2097148
让我们看看输出中每一列的含义:
- total:系统中可用的总内存
- used:系统当前使用的内存
- free:未使用的内存
- shared:tmpfs使用的内存
- buff/cache:由内核缓冲区、页面缓存和slab填充的组合内存
- 可用:估计可以在不开始交换的情况下使用的空闲内存
2.1. 人类可读选项
默认情况下, free命令以 KB 为单位显示所有值,阅读起来可能有点不舒服,但我们可以使用*-h*选项以更易读的格式显示数字:
$ free -h
total used free shared buff/cache available
Mem: 31G 6.2G 23G 541M 1.9G 24G
Swap: 1.5G 0B 1.5G
2.2. 以兆字节表示的内存:
要显示以兆字节表示的值,我们可以使用*-m*选项:
$ free -m
total used free shared buff/cache available
Mem: 32111 6200 23000 541 1900 24000
Swap: 1500 0 1500
2.3. 以千兆字节表示的内存:
同样,我们也可以使用*-g*选项显示以千兆字节表示的值 :
$ free -g
total used free shared buff/cache available
Mem: 31 6 23 0 1 24
Swap: 1 0 1
2.4. 1000 格式的力量
默认情况下,值以 1024 的幂表示,但如果我们想显示以1000 的幂表示的值,我们可以使用*–si*选项:
$ free -h --si
total used free shared buff/cache available
Mem: 32G 6.3G 22G 553M 1.8G 25G
Swap: 1.5G 0B 1.5G
2.5. 内存总量
如果我们想知道RAM 和交换已用/空闲内存的总量, 我们可以使用*-t* 选项:
$ free -h -t
total used free shared buff/cache available
Mem: 31G 13G 9.8G 1.1G 8.3G 16G
Swap: 1.5G 0B 0B
Total: 32.5G 13G 11.3G
3. 实时显示
我们还可以*使用*free 实时显示内存使用情况。
让我们使用*-s*选项,后跟我们想要的每次显示之间的秒数:
$ free -h -s 2
total used free shared buff/cache available
Mem: 31G 6.2G 23G 541M 1.9G 24G
Swap: 1.5G 0B 1.5G
total used free shared buff/cache available
Mem: 31G 6.2G 23G 541M 1.9G 24G
Swap: 1.5G 0B 1.5G
total used free shared buff/cache available
Mem: 31G 6.2G 23G 541M 1.9G 24G
Swap: 1.5G 0B 1.5G
在此示例中,我们将每 2 秒获取一次统计信息。
4. 内存使用记录
有时我们需要长时间记录内存使用情况。在这种情况下,一个小的 Bash 脚本会很有用。
我们可以同时执行free命令和date命令,并将结果重定向到日志文件:
while true; do date >> memory.log; free >> memory.log; sleep 1; done
这个单行脚本将每秒将日期和内存使用情况写入日志文件。当然,我们可以调整sleep后的数字来改变日志频率。