Linux 中的 free 命令详解及示例
解释 Linux 中 Free 命令的输出
在 Linux 中使用 Free 命令非常简单。以下是 free 命令的语法:
免费 [选项]
free 命令的示例输出可能如下所示:
[chris@machine ~]$ free
total used free shared buff/cache available
Mem: 8048372 2593004 1366712 658380 4088656 4494976
Swap: 0 0 0
不带选项的free命令通过访问 Linux 内核的信息返回系统中“总内存”、“已用内存”和“可用内存”的结果。它还显示“共享内存”、“缓冲区/缓存”和“可用内存”类别。
为了避免一些潜在的混淆,让我们澄清一下这些术语的含义。
- 总计很简单。此数字代表所有现有内存。
- 使用的计算结果是系统总内存减去分配的可用内存、共享内存、缓冲区内存和缓存内存。
- 空闲内存是指没有被用于任何目的的内存。
- 共享、缓冲区和缓存字段标识用于满足内核/操作系统需求的内存。缓冲区和缓存相加,总和列在“ buff/cache ”下。
- 可用内存出现在较新版本的free中,旨在让最终用户估计有多少内存资源仍可供使用。
这些澄清很重要。错误地理解空闲内存或已用内存的含义可能会导致对系统内存使用情况产生误解。
这可能会导致缺乏经验的用户误以为他们的系统需要升级更多 RAM。请注意,在以前的版本中没有显示可用内存。用户可能会错误地认为,由于内存使用率高,他们的硬件性能不足。可用选项卡可能是为了帮助消除这种常见的误解而设置的。
Linux 操作系统使用缓存来提高性能。简单来说,这意味着在需要之前预留一定量的内存,以便可以更快地处理。这是一个标准过程,除非这些值对于您当前的使用来说非常不寻常,否则无需担心。
对于只想知道系统对某些应用程序的响应情况的人来说,“可用”内存估计值可能就足够了。如果您看不到此字段,则可能需要更新到“free”的最新版本。您可以通过运行“free -V”来检查当前版本。我的版本 3.3.15 的输出中有“可用”。
自定义 free 命令的输出
默认输出以千字节为单位显示信息,但如果您愿意,可以选择以不同的格式显示。运行帮助(free -help)将显示您可以附加的所有可能选项。
我认为这里最有用的选项是 -h,它以人类可读的格式显示 free 命令的输出。
[chris@machine ~]$ free -h
total used free shared buff/cache available
Mem: 7.7Gi 2.5Gi 1.5Gi 479Mi 3.7Gi 4.4Gi
Swap: 0B 0B 0B
还有其他选项。它们显示相同的请求信息,并进行一些基本的数学转换。我认为人类可读的选项(free -h)对日常用户来说是最有效的选项之一。
自动执行免费命令并连续或定期运行
另一个很棒的功能是能够自动执行命令。有两个选项可以帮助我们自定义此工具:
- 有‘-s’,它会在指定的秒数间隔内运行 free 命令,直到用户退出程序(^+C)。
- 还有“-c”,可以单独使用或与秒选项结合使用。如果仅输入“-c”和一个整数(n),它将运行命令 n 次。默认情况下,它使用一秒间隔。
假设您要打开一系列应用程序并查看内存受到的影响。对于我的测试输出,我将使用人类可读的格式,使用 1000(Gb)的幂而不是 1024(GiB)。我将录制 20 秒以分析影响。我将每 5 秒捕获一次数据,并进行 4 次计数。以下是针对命令行及其输出格式化的示例:
[chris@machine ~]$ free -h --si -s 5 -c 4
total used free shared buff/cache available
Mem: 7.9G 2.8G 1.2G 501M 3.8G 4.2G
Swap: 0B 0B 0B
total used free shared buff/cache available
Mem: 7.9G 2.8G 1.2G 501M 3.8G 4.2G
Swap: 0B 0B 0B
total used free shared buff/cache available
Mem: 7.9G 2.9G 1.1G 549M 3.9G 4.1G
Swap: 0B 0B 0B
total used free shared buff/cache available
Mem: 7.9G 3.0G 998M 553M 3.9G 4.0G
Swap: 0B 0B 0B
我等了几秒钟,然后打开了几个浏览器选项卡并访问了一些书签。这些活动的压力可以通过输出的波动来体现。请注意,使用舍入较少的输出格式效果会更明显。出于我们纯粹的演示目的,这是不必要的。
如果您想使用 free 命令持续监视内存使用情况,但又不想让其输出扰乱屏幕,则可以将watch 命令与 free 命令一起使用。
这将仅显示 free 命令的一个输出,但该输出将定期更改。
watch free -h
结论
本教程演示了如何在 Linux 中使用“free”命令。希望您发现本指南有用且易于理解。“Free”可用于分析系统内存使用情况,并可以使用其各种选项进行调整,以根据您的需要精细定制输出。
如果您有任何问题或建议,请在评论部分告诉我们。