物理 RAM 和 /proc/meminfo 之间的差异

Duk*_*eto 6 linux memory ram

我有一个带有 8 x 16 GB DIMM 的系统,所以总共 128 GB。

然而,MemTotal报告的/proc/meminfo131927808 kB,所以131 GB

我的研究表明,如果有的话, meminfo 加起来应该小于RAM 总数。

了解 /proc/meminfo 文件(分析 Linux 中的内存利用率)

所以谷歌的计算器报告这个总和为131(刚除以1000000

https://www.google.com/search?q=131927808+kB+to+GB

如果您将 the 解释kB为 kibibytes,则相反:(135 GB更糟!)

如果你把它变成 Kibibytes 到 Gibibytes,那就是 125

或千字节到千兆字节 122

以下是详细信息。谁能帮助我理解这种差异?

# cat /proc/meminfo
MemTotal:       131927808 kB
MemFree:         3186732 kB
MemAvailable:   99191856 kB
Buffers:         3476036 kB
Cached:         115792344 kB
SwapCached:       120540 kB
Active:         80544652 kB
Inactive:       45017236 kB
Active(anon):   28044884 kB
Inactive(anon):  3127872 kB
Active(file):   52499768 kB
Inactive(file): 41889364 kB
Unevictable:       13040 kB
Mlocked:        584115752720 kB
SwapTotal:       1953788 kB
SwapFree:              0 kB
Run Code Online (Sandbox Code Playgroud)

Ste*_*itt 10

DIMM 中的内存容量以 2 的幂来衡量,因此声称的“128 giga-something”RAM 容量为 128 GiB,即 134,217,728 kiB。/proc/meminfo 以 2 的幂来衡量内存,因此MemTotal131,927,808的值可以与 134,217,728 进行比较并且安全地更小。

MemTotal是总安装的物理内存减去系统固件和内核二进制文件保留的任何内容。您的启动日志应包含以下形式的一行

... [    0.000000] Memory: 32784756K/33435864K available (10252K kernel code, 1243K rwdata, 3324K rodata, 1584K init, 2280K bss, 651108K reserved, 0K cma-reserved)
Run Code Online (Sandbox Code Playgroud)

这将准确指示系统(“保留”数字)和内核二进制文件(“内核代码”数字)保留了多少。