我有一台 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
为什么我在同一台机器上得到的总内存不同?
这两个命令有什么区别?
答案1
lsmem
列出内存块及其状态;这些反映物理内存并以内存块为单位计数,IE您的系统上有 128MiB。为此,lsmem
读取内核提供的信息/sys/devices/system/memory
。在您的系统上,内核跟踪 64 个内存块,总计 8GiB。
free
列出系统可用的内存; “总计”是物理内存量,减去系统保留的内存(主要用于固件目的)和内核的可执行代码。free
从读取此信息/proc/meminfo
。
输出的差异可以通过测量的差异来解释。在所有情况下,free
的总内存都将小于 的lsmem
总在线内存。