Цель планировщика Nest — удерживать задачи на сильно нагруженных ядрах с наименьшей задержкой.
В последнее время предпринято достаточно усилий по совершенствованию планировщика ядра Linux для лучшей адаптации к современным аппаратным архитектурам, будь то гибридные процессоры Intel, адаптация к новым конфигурациям кэша процессора или просто лучшее масштабирование с учетом постоянно растущего количества ядер.
На этой неделе был представлен планировщик Nest , цель которого — удерживать задачи на сильно нагруженных ядрах с наименьшей задержкой. Задержка возникает, когда ядра уже находятся в высоких состояниях тактовой частоты (производительности) или работают на оптимальной частоте Turbo Boost.
Разработчики Nest обнаружили, что их планировщик повышает производительность до 50% и может снизить энергопотребление на современном оборудовании.
Эксперт Джулия Лавалл из Национального исследовательского института во Франции (INRIA) представила планировщик Nest
на конференции Linux Plumbers Conference (LPC 2022) на прошлой неделе в Дублине. Над Nest также работали в сотрудничестве с Oracle Labs и Сиднейским университетом.
В то время как существующее поведение планировщика Linux CFS заключается в распределении задач по доступным ядрам ЦП, Nest использует другой подход, учитывая современные характеристики процессора.
Распределение работы может быть полезным, но включение долго бездействующих ядер ЦП может привести к задержке до тех пор, пока эти ядра не будут переведены в состояние более высокой производительности (более высокая частота). Также это может негативно повлиять на мощность работающих в данный момент ядер.
Nest старается сначала удерживать задачи на наборе активных ядер, которые уже работают с максимальной производительностью, прежде чем запускать бездействующие ядра.
Nest также учитывает родительское ядро в своем решении по планированию, чтобы попытаться улучшить локальность в случае многоядерных процессоров.
Разработчики использовали open source инструмент Phoronix Test Suite для сравнительного анализа и оценки влияния своих решений по планированию на широкий спектр рабочих нагрузок.
Планировщик задач Nest может повысить производительность от 10% до 50% при легких или умеренных рабочих нагрузках на серверах Intel с 1/2/4 ядрами, а также на серверах и настольных компьютерах с AMD.
Очевидно, что для требовательных многопоточных рабочих нагрузок, которые уже используют ЦП на полную мощность, особой разницы нет, но для легких и умеренных рабочих нагрузок подход Nest оказывается очень полезным с современными высокопроизводительными процессорами.
Большой взрыв знаний каждый день в вашем телефоне