Как стать автором
Обновить

О правильном использовании памяти в NUMA-системах под управлением ОС Linux

Время на прочтение7 мин
Количество просмотров30K
Всего голосов 28: ↑25 и ↓3+22
Комментарии5

Комментарии 5

Кому лениво пользовать Втюн для такого простого вопроса, как выяснение источника проблем, могут воспользоваться командой numastat:
bash-4.1$ numastat
node0 node1
numa_hit 6982165439 5777907492
numa_miss 14857235 17950585
numa_foreign 17950585 14857235
interleave_hit 9597180 6360558
local_node 6981923715 5776307779
other_node 15098959 19550298

Вызывается до и после запуска приложения и потом сравниваются значения.
И если эта самая дельта значительна — то Втюн вам в руки :)

Не совсем.
numastat – это утилита, предназначенная для сбора статистики по выделению страниц на нодах, но не по обращению к ним. Это всего лишь учёт аллокаций памяти. Вы можете выделить всего несколько страниц на «чужой» ноде, но из-за постоянного обращения к ним можете «подсадить» производительность.
А количество обращений можно посчитать с помощью счетчиков, указанных в моей статье.
Или еще проще: вы можете правильно выделить страницы и numactl вам скажет что всё ОК, но неправильно обращение к ним приведет к падению производительности.
nikolai_serdyuk, не могли бы вы прокомментировать вот этот habrahabr.ru/company/intel/blog/165903/ пост?
Согласно ихним выводам — скорость колеблется в пределах 20%, у вас — в пределах 100% в худшем случае. Оба поста опубликованы в блоге Intel, поэтому пока даже не знаю, кому верить.
Да, конечно, могу прокомментировать.

В моем посте я показываю простейший пример, на котором видно что неправильное использование NUMA может существенно ухудшить производительность. Любой может воспроизвести этот пример и убедится в этом.

Что касается поста, который приведен в вашей ссылке, то в нем говориться о тестировании SQL приложения для NUMA. Я могу предположить, что это приложение не относится к тем, которые чувствительны к NUMA. Т.е. другими словами, это приложение скорее сильно зависит от работы диска или сети и слабо зависит от работы памяти.

NUMA была разработана для улучшения производительности памяти. Если приложение работает с памятью больше чем с другими компонентами системы, то правильное использование NUMA существенно улучшает производительность. Более того, сама доработка приложения под NUMA иногда может потребовать существенных вложений. Поэтому перед тем как приступать к доработке, необходимо провести предварительный анализ работы приложения. Ведь может оказаться что вложения не окупятся.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий