CentOS 6サーバーでRAMを監視していますが、free -h
利用可能な15Gが表示されていても大丈夫です。しかし、free -b
1641154969バイトが見える場合は、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実際のお金ではなく、各バックアップソフトウェアの価値彼らの問題のため。