Как проверить точный объем памяти установлен на сервере? MemTotal из / proc / meminfo показывает немного меньше. Т.е. У меня 2097152K, а meminfo говорит 2054348K.
Я могу просуммировать все банки, о которых сообщает dmidecode, но для обновления требуется перезагрузка - мне это не нравится.
Есть другие идеи? Я пишу тест для автоматической подготовки в среде vmware и хочу сделать это правильно. :)
Что касается того, почему в MemTotal не хватает памяти: https://serverfault.com/a/219990/37681
MemTotal: Total usable ram (i.e. physical ram minus a few reserved
bits and the kernel binary code)
Пока буфер сообщений ядра не был заполнен более свежими событиями: ищите строку, начинающуюся с Memory
в dmesg
:
# dmesg |grep " Memory:"
[ 0.000000] Memory: 8125008K/8388088K available (8546K kernel code, 1313K rwdata, 4000K rodata, 1516K init, 1316K bss, 263080K reserved, 0K cma-reserved)
который показывает физический таран: 8388088K
и "несколько зарезервированных битов и двоичный код ядра" 263080K
а остальное доступно для приложений 8125008K и будет отображаться как MemTotal в / proc / meminfo.
(Более поздние этапы процесса загрузки освободят некоторую дополнительную память, увеличивая MemTotal, кстати dmesg |grep Freeing
)