Linux中的free命令

时间:2020-03-05 15:26:50  来源:igfitidea点击:

解释Linux中Free命令的输出

在Linux中使用Free Command非常简单。
这是free命令的语法:

free [options]

free命令的示例输出可能如下所示:

[Hyman@theitroad ~]$free  
              total       used        free      shared       buff/cache    available  
Mem:        8048372     2593004     1366712   658380       4088656      4494976
Swap:             0           0           0

不带选项的free命令通过访问Linux内核中的信息返回系统上“总”,“已用”和“空闲”内存的结果。
它还显示“free”,“ buff /缓存”和“可用”的类别。

为了避免造成潜在的混乱,让我们澄清一下这些术语的含义。

  • Total 很简单。该图表示所有现有内存。
  • used 是对系统总内存减去分配的可用,共享,缓冲区和高速缓存内存的计算。
  • free 是未用于任何目的的内存。
  • shared ,缓冲区和缓存字段标识用于内核/操作系统需求的内存。缓冲区和缓存加在一起,并且总和在“ buff/cache”下列出。
  • available 可用内存出现在较新的免费版本中,目的是使最终用户可以估计仍有多少可用内存资源可供使用。

这些澄清很重要。
错误地将术语“free”或者“已用内存”归因于可能会误解我们系统的内存使用情况。

这可能会导致缺乏经验的用户错误地认为他们的系统需要使用更多的内存进行升级。
请注意,在以前的版本中,没有显示可用内存。
用户可能会错误地认为由于内存使用率很高,因此他们的硬件功能不足。
可能已放置了可用的选项卡,以帮助抵消这种常见的误解。

Linux操作系统使用缓存来提高性能。
从最基本的意义上来说,这意味着一定数量的内存会在需要之前留出使用,以便可以更快地进行处理。
这是一个标准过程,没有什么可担心的,除非这些值对于我们当前的使用而言似乎非常不寻常。

对于那些只想知道他们的系统如何响应某些应用程序的人,“可用”内存估计可能就足够了。
如果我们看不到此字段,则可能需要更新到最新版本的“免费”。
我们可以通过运行“ free -V”来检查当前版本。
我的版本3.3.15在其输出中显示“ available”。

定制free命令的输出

默认输出以千字节为单位显示信息,但是如果我们愿意,可以选择以不同的格式显示信息。
运行帮助(免费-help)将显示我们可以添加的所有可能选项。

在我看来,这里最有用的选项是-h,它以人类可读的格式显示free命令的输出。

[Hyman@theitroad ~]$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)对于日常用户而言是最有效的选项之一。

自动执行free命令并连续或者定期运行它

另一个很棒的功能是能够自动执行命令。
有两个选项可帮助我们自定义此工具:

  • 有“ -s”,它将在指定的秒数间隔内运行free命令,直到用户退出程序(^ + C)。
  • 还有“ -c”,可单独使用或者与“秒”选项结合使用。如果仅输入“ -c”和整数(n),它将运行命令n次。默认情况下,它使用一秒钟的间隔。

假设我们要打开一系列应用程序,并查看内存如何受到影响。
对于我的测试输出,我将使用人类可读的格式,使用1000(Gb)的幂而不是1024(GiB)的幂。
我将录制20秒以分析影响。
我将每5秒捕获一次数据,并进行4次计数。
这是为命令行及其输出格式化的示例:

[Hyman@theitroad ~]$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