Centos

為什麼 lsmem 和 free 顯示不同的總記憶體?

  • November 21, 2019

我有一台 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

為什麼我在同一台機器上獲得的總記憶體不同?

這兩個命令有什麼區別?

lsmem列出記憶體塊及其狀態;這些反映物理記憶體並以記憶體塊為單位計算,係統上的 128MiB。為此,lsmem讀取核心在/sys/devices/system/memory. 在您的系統上,核心跟踪總共 8GiB 的 64 個記憶體塊。

free列出系統可用的記憶體;“總”是物理記憶體的數量,減去系統保留的記憶體(主要用於韌體的目的)和核心的可執行程式碼。free從中讀取此資訊/proc/meminfo

輸出的差異可以通過測量的差異來解釋。在所有情況下,free的總記憶體都將小於lsmem的匯流排上記憶體。

引用自:https://unix.stackexchange.com/questions/553323