我注意到 free 命令的输出之间存在差异:
在 debian 上:
$ free -h
total used free shared buffers cached
Mem: 4.0G 3.4G 629M 0B 96K 1.3G
-/+ buffers/cache: 2.1G 2.0G
Swap: 4.0G 1.1G 2.9G
在 gentoo 上:
$ free -h
total used free shared buff/cache available
Mem: 15G 3.7G 9.6G 485M 2.2G 11G
Swap: 8.8G 2.6G 6.2G
Redhat(至少 7.x)似乎与 gentoo 具有相同的输出。这是为什么?是否也可以在 gentoo / redhat 系统上显示 debian 风格的输出?两个发行版都使用不同的 gnu coreutils 吗?
答案1
free
由提供procps-ng
; Debian 8 的版本为 3.3.9,它使用旧风格,带有单独的一行buffers/cache
,而 Gentoo 和大概 RHEL 7.X有版本 3.3.10 或更高版本,使用新样式。您可以看到更改背后的原因对应的提交消息。
如果您确实想要旧样式的输出,您可以运行旧版本的procps
,但您会发现发行版默认情况下会迁移到较新的样式。较新的样式还给出了可用内存量,这是一条非常有用的信息(请参阅如何跨发行版获取可移植的可用内存量?了解详情)。
有点令人困惑的是,版本 3.3.9 将没有该行的格式buffers/cache
称为“旧格式”,您可以在该版本中看到它free -o
。综上所述:
3.3.9 及更早版本默认显示
total used free shared buffers cached Mem: 31G 30G 539M 1.1G 2.2G 15G -/+ buffers/cache: 13G 18G Swap: 31G 180M 31G
版本 3.3.9 及更早版本,带有
-o
, showtotal used free shared buffers cached Mem: 31G 30G 549M 1.1G 2.2G 15G Swap: 31G 180M 31G
3.3.10及以上版本仅显示
total used free shared buff/cache available Mem: 31G 7.8G 525M 1.1G 23G 22G Swap: 31G 180M 31G
3.3.10 及更高版本还具有宽输出模式 ,
-w
显示total used free shared buffers cache available Mem: 31G 7.8G 531M 1.1G 2.2G 20G 22G Swap: 31G 180M 31G
(这一切都在同一个系统上;请注意更高版本的会计如何更加准确。)