lsmemとfreeが異なる合計メモリを表示するのはなぜですか?

lsmemとfreeが異なる合計メモリを表示するのはなぜですか?

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つのコマンドの違いは何ですか?

答え1

lsmemメモリブロックとその状態を一覧表示します。これは物理メモリを反映し、メモリブロックとして計算されます。つまりシステムには128MiBがあります。これを行うには、lsmemカーネルが提供する情報を読んでください/sys/devices/system/memory。システムでは、カーネルは64個のメモリブロック(合計8GiB)を追跡します。

freeシステムで使用可能なメモリを一覧表示します。 「合計」は、物理メモリ量からシステムによって予約されているメモリ(主にファームウェア目的で)とカーネルの実行コードを引いたものです。freeこの情報をお読みください/proc/meminfo

出力の違いは測定値の違いとして記述できます。全ての場合において、free総メモリはlsmem総オンラインメモリよりも小さい。

関連情報