2016-07-20 21 views
0

В моем файле/etc/default/grub я явно выделил N огромных страниц с «огромными страницами = N». Если я запущен на ящике с двумя узлами NUMA, N/2 огромные страницы будут выделены для каждого узла или все они перейдут на узел 0 или ...? Также есть ли способ в командной строке запросить, как они разделены между узлами?Как распределяется память за статически распределенными огромными страницами по узлам NUMA?

ответ

2

От kernel.org сообщения о hugepages HERE

На NUMA платформы, ядро ​​будет пытаться распространять огромную страницу бассейна над всем набором разрешенных узлов, определенных политикой памяти NUMA в задаче который изменяет nr_hugepages. По умолчанию для разрешенных узлов - когда задача имеет политику памяти по умолчанию - это все он-лайн узлы с памятью. Допустимые узлы с недостаточной доступной, непрерывной памятью для огромной страницы будут молча пропустить при распределении постоянных огромных страниц. См. Обсуждение ниже о взаимодействии политики памяти задач, cpusets и атрибутов каждого узла с выделением и освобождением постоянных огромных страниц.

Успех или неудача огромного распределения страниц зависит от количества физически смежной памяти, которая присутствует в системе во время попытки выделения . Если ядру не удается выделить огромные страницы из некоторых узлов в системе NUMA, он попытается сделать разницу на , выделяя дополнительные страницы на других узлах с достаточной доступной смежной памятью , если таковые имеются.

Системные администраторы могут захотеть поместить эту команду в один из локальных файлов инициализации rc . Это позволит ядру выделять огромные страницы в начале процесса загрузки, когда возможность получения физических смежных страниц по-прежнему очень высока. Администраторы могут проверять количество огромных страниц , фактически выделенных путем проверки sysctl или meminfo. Для проверки на один узел распределение огромных страниц в системе NUMA используйте:

cat /sys/devices/system/node/node*/meminfo | fgrep Huge