NUMA описывает локальность памяти, бюджет PCIe — владельцев и общие пути устройств. Эти карты сопоставляют, но одна не выводится целиком из другой.
Неоднородный доступ к памяти — NUMA
Определение
NUMA — организация памяти, при которой она разделена на узлы, а доступ процессора к дальнему узлу обходится дороже, чем к ближнему. Число узлов не обязано совпадать с числом процессоров: у некоторых процессоров один сокет настройкой можно разделить на несколько узлов.
Также ищут: Non-Uniform Memory Access · неравномерный доступ к памяти · NUMA-топология · NUMA
Зачем это знать
Одинаковая сумма ядер и оперативной памяти может скрывать другую локальность доступа. При подборе и приёмке важно установить узлы, политику размещения и путь устройств, затем измерить требуемую работу.
Память рядом и через другой узел
Карта понятия
Что подтверждено
В NUMA-системе банки памяти представлены узлами, а стоимость доступа процессора к ним различается в зависимости от расстояния до узла.
Граница применимости: Модель физической памяти Linux; конкретная задержка и пропускная способность измеряются на выбранной платформе.
По умолчанию Linux старается выделять память на NUMA-узле, ближайшем к процессору, где выполняется процесс.
Граница применимости: Поведение действует, если не задана другая политика размещения и на ближайшем узле есть подходящая память.
Политика NUMA управляет выбором узлов для размещения памяти и настраивается отдельно от набора процессоров, доступных задаче.
Граница применимости: Контейнеры, виртуальные машины и приложения могут добавлять собственные ограничения поверх политики ядра Linux.
В АМД Эпик 9004 настройка числа NUMA-узлов на сокет может разделять один сокет на несколько узлов. Поэтому число узлов NUMA нельзя автоматически принимать за число физических процессоров.
Граница применимости: Настройка числа узлов NUMA на сокет и её допустимые варианты в указанном руководстве АМД Эпик 9004; конкретная схема зависит от модели и конфигурации памяти.
Изменение политики NUMA само по себе не переносит все ранее выделенные страницы на новые узлы. Для уже размещённой памяти перенос рассматривается отдельно; новая политика прежде всего управляет соответствующими последующими выделениями.
Граница применимости: Семантика изменения политики памяти Linux; отдельные механизмы миграции и балансировки не объявляются выключенными.
В Linux набор узлов, разрешённых группе управления ресурсами, ограничивает применение политики NUMA. Политика приложения не получает права выделять память за пределами действующего разрешённого набора только по своему выбору узла.
Граница применимости: Взаимодействие ограничений группы на допустимые узлы и политики памяти в документации Linux; фактический набор учитывает текущие ограничения системы.
Чередующая политика NUMA распределяет выделения памяти между узлами заданного набора. Она описывает размещение памяти, а не назначение каждому программному потоку отдельного процессора и не гарантирует наименьшую задержку каждого доступа.
Граница применимости: Режим чередования в политике памяти Linux; детальная гранулярность зависит от типа выделяемой памяти и механизма размещения.
У PCIe-устройства Linux значение NUMA-узла −1 означает, что его принадлежность неизвестна. Это не доказательство узла 0 и не основание объявить путь локальным для выбранного процессора.
Граница применимости: Документированное поле номера узла NUMA для PCIe-устройства в системной файловой системе Linux 6.12; неизвестная принадлежность к узлу не подменяется предположением о локальности.
Не путать
Ядра являются ресурсами выполнения, узлы NUMA — частью карты памяти. Число ядер не определяет, на каком узле окажутся нужные страницы.
Что проверить
- Получите фактическую карту NUMA-узлов и процессоров.
- Не подменяйте число узлов числом сокетов.
- Зафиксируйте размещение задачи и разрешённый ей набор логических процессоров.
- Проверьте узлы памяти, действующую политику и разрешённый группе набор узлов.
- Отдельно установите расположение ранее выделенных страниц.
- Сверьте принадлежность PCIe-устройств, сохраняя неизвестные значения.
- Измерьте нужную работу при согласованном размещении задачи, памяти и устройств.
Первоисточники
- Physical Memory
Описывает NUMA nodes, различную стоимость доступа и node-local allocation.
- NUMA Memory Policy
Разграничивает NUMA memory policy и cpusets и описывает выбор узлов для выделения памяти.
- АМД Эпик 9004 BIOS and Workload Tuning Guide
Фиксирует два hardware thread при SMT и предупреждает о нейтральном или отрицательном эффекте на части workload.
Утверждения: 04
- Linux PCI sysfs ABI — sysfs-bus-pci
Полный ABI-текст: 574 строк. Скачан редактором и прочитан автором 11.09.2026. SHA-256 13a73b125e800a57c2ed352f49a85e03a6dfb41eb33d3d498beb9297b92e28d1. Авторская дата последнего коммита 2024-09-04; дата тегирования задаёт редакцию. Страниц в оригинале нет.
Утверждения: 08
- PCIe Lane Ownership on Intel Server Board S2600WF
Показывает привязку riser-слотов к CPU 1, CPU 2 и DMI и зависимость части слотов от второго CPU.
- x86 Topology
Определяет package, core и hardware thread в топологии Linux.
Связанные понятия
Курсы по теме
В каталоге
- Многопроцессорные серверы — В многопроцессорном сервере память делится на узлы NUMA, и размещение нагрузки влияет на скорость.
- Процессоры: узлы NUMA и каналы памяти — Число узлов NUMA зависит от процессора и его настроек, а не только от числа сокетов.