フリーコマンド - 変換後の他の出力

フリーコマンド - 変換後の他の出力

CentOS 6サーバーでRAMを監視していますが、free -h利用可能な15Gが表示されていても大丈夫です。しかし、free -b1641154969バイトが見える場合は、1,641154969Gと同じです。


free -h
             total       used       free     shared    buffers     cached
Mem:           15G       3.0G        12G       1.7M        39M       671M
-/+ buffers/cache:       2.3G        12G 
Swap:         7.7G         0B       7.7G 

free -b
             total       used       free     shared    buffers     cached
Mem:    1641154969 3238035456 1317351424    1781760   41451520  704331776
-/+ buffers/cache: 2492252160 1391929753 
Swap:   8279552000          0 8279552000 

答え1

CentOS 6で使用されているものなど、以前のバージョンでは値ごとにfree最大10桁しか表示されませんでした。表示された「1641154969」に最後の数字はありません。これは固定されています。バージョン 3.3.10 基準;freeこれで最大11桁まで表示されます。これは1つの数字を表示するのに十分です。アビバイトメモリ。 (確認されていないがバージョン3.3.0(以前ではない場合)の変更により、この問題は解決する可能性があります。)

表示された160億バイトと「15G」の違いは、スケーリングが16411549690を1024×1024×1024で割った値が15.284であるため、15で表されます。現在のバージョンがデバイスにfree追加され、iデバイスが使用中であることが明確になります。バイナリプレフィックス

答え2

この質問は2つの異なるカテゴリを混同しますバイト単位つまり10進数Gギガバイトそしてバイナリ幸運ダブルバイト:

   Prefixes for multiples of
   bits (bit) or bytes (B)
   Decimal              Binary
   Value        SI      Value       IEC
   1000   10^3  k kilo  1024   2^10 Ki kibi
   1000^2 10^6  M mega  1024^2 2^20 Mi mebi
   1000^3 10^9  G giga  1024^3 2^30 Gi gibi

このfree -hコマンドは印刷しますギビバイトfree -b印刷中バイト。数学を実行します。 (最初に0補償するバイト数の後にaを追加します。freeで指摘されたエラースティーブンジッタ回答):

echo $(( 16411549690 / (10**9) ))  # gigabytes
echo $(( 16411549690 / (2**30) ))  # gibibytes

出力:

16
15

過去に、ハードドライブのベンダーはこの一般的な混乱を利用して、サプライヤーが集団訴訟で敗北した。バラよりオリンサフィア(Orin Safier)v。ウェスタン・デジタル・コーポレーションの中2006年には、怒っている買い手が賞を受賞しました。$30実際のお金ではなく、各バックアップソフトウェアの価値彼らの問題のため。

関連情報