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