Домой Софт и приложения Linux Новые патчи MGLRU-FG повышают производительность Linux до 40%

Новые патчи MGLRU-FG повышают производительность Linux до 40%

Разработчик ядра Linux Кайруи Сун представил новую версию патчей MGLRU-FG. В ряде сценариев нагрузок технология обеспечивает прирост производительности от 10% до 40%.

2
0

Разработчик ядра Linux Кайруи Сун (Kairui Song) представил обновленный набор патчей для механизма MGLRU-FG (Frequency Guided Promotion for MGLRU). Эта технология направлена на совершенствование алгоритмов управления памятью в ядре, обеспечивая более интеллектуальное продвижение страниц в активные уровни на основе частоты обращений.

Сравнение производительности системы с использованием патчей MGLRU-FG

Принципы работы частотно-ориентированного продвижения

Суть нововведения заключается в дополнении существующей системы защиты MGLRU, основанной на времени вытеснения, механизмом продвижения, который опирается на частоту доступа. В рамках реализации разработчик ввел унифицированный набор вспомогательных функций, работающих со счетчиком обращений (refs) конкретного фолио. При каждом обращении значение счетчика увеличивается. Эти данные теперь сопоставляются с логарифмической структурой уровней и новыми пороговыми значениями: LRU_REFS_REFERENCED (1), LRU_REFS_WORKINGSET (2), LRU_REFS_PROTECTED (3) и LRU_REFS_MAX (7).

Когда счетчик достигает определенного порога, страница переводится на более высокий уровень проактивно, не дожидаясь срабатывания PID-контроллера. Кроме того, упрощено использование флагов PG_workingset и PG_referenced: теперь они занимают младшие два бита счетчика, а более высокие биты обеспечиваются маской LRU_REFS_MASK. Это изменение позволило сократить использование битов для учета ссылок на один, при этом сделав систему учета более точной.

Результаты тестов и перспективы развития

По словам Кайруи Суна, основной целью разработки было повышение способности системы LRU более эффективно определять «горячие» рабочие наборы данных. Тестирование, проведенное на серверах различных архитектур, настольных ПК и устройствах Android, показало стабильные и многообещающие результаты. В различных сценариях наблюдается прирост производительности от 10% до 40% либо значительное снижение количества повторных обращений к вытесненным страницам.

Конкретные показатели производительности выглядят следующим образом:

  • При компиляции ядра Linux с 96 потоками время выполнения сократилось почти на 10 секунд в условиях повышенной нагрузки на память.
  • Производительность MongoDB увеличилась на 13,5%.
  • В тестах Chromium и Node.js, использующих zRAM в качестве раздела подкачки, зафиксировано улучшение показателей на 76%.
  • В тестах FIO пропускная способность возросла до 11%.

Несмотря на то, что текущая версия патчей уже демонстрирует стабильность и высокую эффективность, автор классифицирует проект как RFC (Request for Comments). Это связано с фундаментальным характером изменений, затрагивающих работу механизмов Active/Inactive. Разработчик также отметил, что в текущей версии V3 наблюдается влияние чрезмерного восстановления анонимной памяти, что потребует дополнительной корректировки в будущих обновлениях.

Источник: https://www.phoronix.com