Оперативная память

HugeTLB

Определение

HugeTLB — механизм Linux, при котором приложения явно запрашивают большие страницы из отдельного запаса памяти — пула. Подготовленный пул ещё не означает, что приложение его использует.

Также ищут: HugeTLB pages · пул больших страниц Linux

Зачем это знать

Память пула HugeTLB недоступна для обычных выделений и не выгружается в подкачку. При расчёте RAM разделяйте общий пул, ещё не выданные страницы и уже обещанные приложению. Одного числа свободных страниц недостаточно.

Связи из словаря

Карта понятия

Доказательная часть

Что подтверждено

  1. Приложение использует HugeTLB через соответствующие интерфейсы mmap или разделяемой памяти. Наличие подготовленного пула само по себе не означает, что приложение его использует.

    Граница применимости: Overview и Using Huge Pages, Linux 6.12; конкретные параметры приложения проверяются отдельно.

  2. Страницы, выделенные под HugeTLB, зарезервированы внутри ядра, недоступны для других целей и не выгружаются в подкачку при нехватке памяти.

    Граница применимости: HugeTLB Pages, Linux 6.12; это правило HugeTLB, а не всех видов больших страниц.

  3. HugePages_Free показывает ещё не выделенные страницы пула. HugePages_Rsvd показывает страницы, выделение которых уже обещано, но ещё не произошло; эти величины не означают два независимых свободных запаса.

    Граница применимости: Поля /proc/meminfo для HugeTLB-страниц размера по умолчанию, Linux 6.12.

  4. Успех выделения HugeTLB зависит от наличия подходящих непрерывных участков физической памяти в момент запроса. Большой суммарный свободный объём не заменяет эту проверку.

    Граница применимости: Динамическое выделение HugeTLB в Linux 6.12; параметры пула на сервере не изменялись.

  5. HugePages_Total и Hugepagesize в /proc/meminfo относятся к размеру HugeTLB-страницы по умолчанию. Поле Hugetlb учитывает память страниц всех размеров, поэтому произведение первых двух значений не всегда даёт полный объём.

    Граница применимости: Overview, Linux 6.12; детальные пулы по размерам представлены в /sys/kernel/mm/hugepages.

Перед спецификацией

Что проверить

  1. Проверьте, запрашивает ли приложение HugeTLB, а не только наличие пула.
  2. Рассматривайте HugePages_Free и HugePages_Rsvd совместно.
  3. Сверьте размер страницы и распределение пула по NUMA-узлам.
  4. Оставьте память для ОС и других приложений вне пула HugeTLB.
Открытые основания

Первоисточники

  • Документация1
  • Официальная документация
    HugeTLB Pages Linux Kernel · Linux 6.12 documentation · проверено

    Пул HugeTLB, поля meminfo, резервирование, отсутствие подкачки и зависимость выделения от непрерывной физической памяти. Команды изменения настроек не выполнялись.

Следующий шаг

Сформулируйте задачу и уточните требования к своей системе.

Подготовить подбор с Делектусом

Откроется черновик вопроса. Отправьте его, когда будете готовы.

Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие