Redox: начальная поддержка NUMA и приоритетов процессов
26.08.2026Аадарш реализовал начальную поддержку неоднородной памяти NUMA: по умолчанию данные размещаются в ближайшем узле, а через API libredox появилась возможность менять политику размещения. Акшит Гаур добавил приоритеты процессов и настроил систему приоритетов, что улучшило общую производительность.
Что такое NUMA и зачем это нужно
В многопроцессорных системах с несколькими узлами памяти время доступа зависит от того, где лежат данные. Узел памяти, ближайший к процессору, даёт минимальные задержки; дальний — заметно большие. Система должна размещать данные рядом с тем, кто их обрабатывает, иначе производительность падает незаметно, без всяких ошибок.
Работа охватила распределение памяти по узлам, локальное размещение как политику по умолчанию, настройку и чтение политик через mempolicy, а также API в libredox для управления этим из приложений. Отдельно оптимизирован путь освобождения памяти: на системах без NUMA блокировки не берутся вовсе, чтобы не тратить время на защиту там, где конкуренции за узлы нет.
Приоритеты процессов
Отдельная работа Акшита Гаура добавила приоритеты процессов и настройку самой системы приоритетов. Это завершает собой серию улучшений планировщика EEVDF, о которой подробно написано в отчёте RSoC.
Чего пока нет
Проверка NUMA велась под QEMU, и автор прямо просит помочь с тестами на реальном оборудовании. Реальные системы с NUMA редки, поэтому поведение в продакшене пока не подтверждено.
Дата 26 августа — последний коммит по теме в этом месяце; основная часть работы датирована 9–21 августа.
Оригинал
This Month in Redox — August 2026, разделы «NUMA Support» и «Process Priority Support»
Упоминаний: 1 · Просмотров: 6