为什么 free -h 的输出与 free --giga 不同?

为什么 free -h 的输出与 free --giga 不同?

我面临着一个非常奇怪的问题。

在我的 Fedora PC 上,我有 12 GB 交换文件。

但是当我发出时free -h我得到:

              total        used        free      shared  buff/cache   available
Mem:          7.7Gi       1.8Gi       3.7Gi       409Mi       2.2Gi       5.2Gi
Swap:          11Gi          0B        11Gi

正如您所看到的,我的交换空间显示为 11 GB,而实际上我有 12 GB。

当我使用时,这是更正的free --giga

              total        used        free      shared  buff/cache   available
Mem:              8           1           3           0           2           5
Swap:            12           0          12

在这里我得到了正确的输出。

为什么我使用的时候有差别 -h --giga

这里发生了什么 ?

答案1

两个命令使用不同的单位:-h以 1024 的幂显示值(注意“Gi”后缀,对于千兆字节),--giga显示 1000 次方的值。

在您的情况下,12GB(千兆字节)是 12,000,000,000 字节,等于 11.2GiB(四舍五入到最接近的 0.1),free四舍五入到 11。

您可以free -h通过标志强制使用 10 的幂--si

free -h --si

units可以为您执行此类转换:

$ units 12GB GiB
    * 11.175871
    / 0.089478485

相关内容