free -hの出力がfree --gigaと異なるのはなぜですか?

free -hの出力がfree --gigaと異なるのはなぜですか?

非常に奇妙な問題に直面しました。

私のFedora PCには12GBのスワップファイルがあります。

しかし、発行すると、次のような結果が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

ご覧のとおり、私のスワップスペースは11GBと表示されますが、実際には12GBです。

これは私が使用すると修正されます。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」に注意してください)。ギガバイト)、--giga1000の累乗値を表示します。

あなたの場合、12GB(ギガバイト)は12,000,000,000バイトです。これは11.2GiB(最も近い0.1に四捨五入)、free11に丸められます。

free -hフラグを使用すると、10の累乗を強制的に使用できます--si

free -h --si

units次の種類の変換を実行できます。

$ units 12GB GiB
    * 11.175871
    / 0.089478485

関連情報