Рейтинг:0

CentOS 8 не хватает значительного объема оперативной памяти на VPS

флаг us

CentOS 8 работает на VPS с 1 ГБ оперативной памяти.

dmesg показывает:

Память: 216012K/1048040K доступно

Итак, я считаю, что BIOS видит 1 073 192 960 байт. Тогда, как бесплатно -б читает, в ОЗУ всего 997 236 736 байт.

Таким образом, мы можем увидеть пробел 75 956 224 = 1 073 192 960-997 236 736 байт. Другими словами, 72+ МБ «неиспользуемой» памяти.

Как вернуть эту память в ОС? Или как узнать, где он «спрятан»?

Кстати, kdump отключен: cat /sys/kernel/kexec_crash_size

0

УПД:
Начало dmesg по поводу памяти:

Предоставляемая BIOS карта физической памяти:
BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] можно использовать
BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] зарезервировано
BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] зарезервировано
BIOS-e820: [mem 0x0000000000100000-0x000000003ffdbfff] можно использовать
BIOS-e820: [память 0x000000003ffdc000-0x000000003ffffffff] зарезервирована
BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] зарезервировано
BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] зарезервировано
Защита NX (Execute Disable): активна
SMBIOS 2.8 присутствует.
DMI: Red Hat KVM, BIOS 1.11.0-2.el7 01.04.2014
Обнаружен гипервизор: KVM
kvm-clock: использование msrs 4b564d01 и 4b564d00
kvm-clock: процессор 0, msr a001001, часы основного процессора
kvm-clock: с использованием запланированного смещения 7965121487 циклов
источник часов: kvm-часы: маска: 0xffffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 нс
tsc: Обнаружен процессор 2199,996 МГц
e820: обновить [mem 0x00000000-0x00000fff] можно использовать ==> зарезервировано
e820: удалить [mem 0x000a0000-0x000fffff], пригодный для использования
last_pfn = 0x3ffdc max_arch_pfn = 0x400000000
Тип MTRR по умолчанию: обратная запись
Включены фиксированные диапазоны MTRR:
  00000-9FFFF обратная запись
  A0000-BFFFF не кэшируется
  C0000-FFFFF защита от записи
Включены диапазоны переменных MTRR:
  0 база 000080000000 маска 3FFF80000000 некэшируемая
  1 инвалид
  2 инвалида
  3 инвалида
  4 инвалида
  5 инвалидов
  6 инвалидов
  7 инвалидов
x86/PAT: Конфигурация [0-7]: WB WC UC-UC WB WP UC-WT
kexec: резервирование младших 1M памяти для crashkernel
Использование GB-страниц для прямого сопоставления
BRK [0x0a201000, 0x0a201fff] PGTABLE
BRK [0x0a202000, 0x0a202fff] PGTABLE
BRK [0x0a203000, 0x0a203fff] PGTABLE
BRK [0x0a204000, 0x0a204fff] PGTABLE
BRK [0x0a205000, 0x0a205fff] PGTABLE
RAMDISK: [память 0x3506f000-0x3682ffff]
ACPI: ранняя проверка контрольной суммы таблицы отключена
ACPI: RSDP 0x00000000000F6280 000014 (v00 BOCHS)
ACPI: RSDT 0x000000003FFE348A 00002C (v01 BOCHS BXPCRSDT 00000001 BXPC 00000001)
ACPI: FACP 0x000000003FFE30EE 000074 (v01 BOCHS BXPCFACP 00000001 BXPC 00000001)
ACPI: DSDT 0x000000003FFE0040 0030AE (v01 BOCHS BXPCDSDT 00000001 BXPC 00000001)
ACPI: FACS 0x000000003FFE0000 000040
ACPI: APIC 0x000000003FFE3162 000328 (v01 BOCHS BXPCAPIC 00000001 BXPC 00000001)
ACPI: локальный адрес APIC 0xfee00000
Конфигурация NUMA не найдена
Подделка узла по адресу [mem 0x0000000000000000-0x000000003ffdbfff]
NODE_DATA(0) выделено [память 0x3ffb2000-0x3ffdbffff]
Crashkernel: ожидаемое значение памяти
Диапазоны зон:
  DMA [память 0x0000000000001000-0x0000000000ffffff]
  DMA32 [мем 0x0000000001000000-0x000000003ffdbfff]
  Нормальный пустой
  Устройство пусто
Начало подвижной зоны для каждого узла
Ранние диапазоны узлов памяти
  узел 0: [память 0x0000000000001000-0x000000000009efff]
  узел 0: [память 0x0000000000100000-0x000000003ffdbfff]
Обнуленная страница структуры в недоступных диапазонах: 134 страницы
Узел настройки initmem 0 [mem 0x0000000000001000-0x000000003ffdbfff]
На узле 0 всего страниц: 262010
  Зона прямого доступа к памяти: 64 страницы, используемые для меммап
  Зона прямого доступа к памяти: зарезервировано 158 страниц
  Зона прямого доступа к памяти: 3998 страниц, партия LIFO: 0
  Зона DMA32: 4032 страницы используются для memmap
  Зона DMA32: 258012 страниц, пакет LIFO: 63
ACPI: порт ввода-вывода таймера PM: 0x608
ACPI: локальный адрес APIC 0xfee00000
ACPI: LAPIC_NMI (acpi_id[0xff] dfl dfl lint[0x1])
IOAPIC[0]: apic_id 0, версия 17, адрес 0xfec00000, GSI 0–23.
ACPI: INT_SRC_OVR (шина 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (шина 0 bus_irq 5 global_irq 5 высокий уровень)
ACPI: INT_SRC_OVR (шина 0 bus_irq 9 global_irq 9 высокий уровень)
ACPI: INT_SRC_OVR (шина 0 bus_irq 10 global_irq 10 высокий уровень)
ACPI: INT_SRC_OVR (шина 0 bus_irq 11 global_irq 11 высокий уровень)
ACPI: IRQ0 используется переопределением.
ACPI: IRQ5 используется переопределением.
ACPI: IRQ9 используется переопределением.
ACPI: IRQ10 используется переопределением.
ACPI: IRQ11 используется переопределением.
Использование ACPI (MADT) для информации о конфигурации SMP
smpboot: разрешено 87 процессоров, 86 процессоров с возможностью горячей замены.
PM: Зарегистрированная память nosave: [mem 0x00000000-0x00000fff]
PM: Зарегистрированная память nosave: [mem 0x0009f000-0x0009ffff]
PM: Зарегистрированная память nosave: [mem 0x000a0000-0x000effff]
PM: Зарегистрированная память nosave: [mem 0x000f0000-0x000ffff]
[mem 0x40000000-0xfeffbfff] доступен для устройств PCI
...
Память: 216012K/1048040K доступно (12293K кода ядра, 2225K rwdata, 7708K Rodata, 2480K init, 14048K bss, 105512K зарезервировано, 0K cma-зарезервировано)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPU=87, Nodes=1
Изоляция таблиц страниц ядра/пользователя: включена
ftrace: размещение 38570 записей на 151 странице
ftrace: выделено 151 страница с 5 группами
John Mahowald avatar
флаг cn
Какая архитектура, x86, ARM? Вероятно, не POWER, если вы имеете в виду BIOS.
Nikita Kipriyanov avatar
флаг za
Когда система загружается, она сначала распечатывает использование памяти, поскольку «прошивка» сообщает об этом ОС. Чтобы убедиться в этом, прочитайте самое начало dmesg. Это может объяснить память, как ее видит Linux, и то, как она использует эту память. Если вы поместите это здесь в вопрос, я попытаюсь объяснить это для вас.
флаг us
@ДжонМаховальд, x86.
флаг us
@NikitaKipriyanov, я обновил сообщение выводом `dmesg`.
Рейтинг:0
флаг ar

Некоторая память сохраняется для резерва операционной системой для выполнения задач низкого уровня. Пожалуйста, попробуй dmesg | grep "Память: "` команда для проверки зарезервированной памяти и других деталей.

Проверьте эту документацию для дальнейшего чтения -

https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt

флаг us
Память: 216012K/1048040K доступно (12293K кода ядра, 2225K rwdata, 7708K Rodata, 2480K init, 14048K bss, 105512K зарезервировано, 0K cma-зарезервировано) Я понятия не имею, как из этих цифр получить 72 М.
Nikita Kipriyanov avatar
флаг za
*зарезервированная память*, описанная в этом документе, не резервируется Linux. Под этим следует понимать зарезервированную память *диапазоны адресов*. Это пространство зарезервировано *аппаратным обеспечением* и предназначено для некоторых устройств с отображением памяти. Когда вы записываете по этим адресам, система помещает данные на шину PCI (или AMBA, или что-то еще, что использует ваша архитектура), вместо того, чтобы отправлять их в ОЗУ. Ожидается, что эта связь с устройствами будет выполняться драйверами устройств ОС. Часто эти диапазоны памяти не кэшируются (ЦП всегда считывает напрямую с устройства и никогда не сохраняет эти данные в строках кэша).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.