CentOS 7マシンを持っていますが、気になる質問があります。
lsmem --summary
を使用すると、次のようになります。
Memory block size: 128M
Total online memory: 8G
Total offline memory: 0B
free -h
を使用すると、次のようになります。
total used free shared buff/cache available
Mem: 7.6G 850M 1.7G 361M 5.1G 6.1G
Swap: 7.7G 0B 7.7G
同じマシンで合計メモリが異なるのはなぜですか?
これら2つのコマンドの違いは何ですか?
lsmem
は、メモリブロックとその状態を一覧表示します。これらは物理メモリを反映し、メモリブロックの単位でカウントされますつまりシステムでは128MiBです。これを行うために、lsmem
はカーネルによって/sys/devices/system/memory
で利用可能にされた情報を読み取ります。システムでは、カーネルは64個のメモリブロックを追跡して合計8GiBになります。
free
は、システムで使用可能なメモリを一覧表示します。 「合計」は、物理メモリの量から、システムによって予約されているメモリ(主にファームウェアの目的で)とカーネルの実行可能コードを差し引いたものです。 free
はこの情報を /proc/meminfo
から読み取ります。
出力の違いは、この測定値の違いによって説明されます。いずれの場合も、free
の合計メモリはlsmem
の合計オンラインメモリよりも少なくなります。