Разработчик из Google предложил повысить частоту генерации прерываний от таймера в ядре Linux до 1000 Гц по умолчанию вместо текущего значения в 250 Гц. Предполагается, что такое действие приведёт к увеличению частоты переключения задач и уменьшению кванта времени в планировщике задач.
Сейчас в ядре Linux по умолчанию используется 250 Гц в рамках компромисса между производительностью, задержками и энергопотреблением.
По информации OpenNET, при использовании дисплеев с частотой обновления 120 Гц, типичных для современных ПК и мобильных устройств, при частоте таймера 250 Гц неточность квантования времени составляет примерно половину времени кадра, что снижает эффективность распределения ресурсов и не позволяет добиться оптимального соотношения производительности к потреблению энергии. Энергопотребление систем при низкой частоте таймера может оказаться выше, поскольку механизм DVFS (Dynamic Voltage and Frequency Scaling) использует более агрессивную стратегию выбора частоты, чтобы не замедлять выполнение задач.
Профильные эксперты пояснили, что в компьютерных системах возникают ситуации, когда задача уже отработала желаемые операции, требовавшие активных вычислений, но процессор продолжает работу на повышенной частоте из‑за конечности кванта времени, который ещё не закончился. Повышение частоты переключения задач может привести к снижению потребления энергии из‑за повышения эффективности динамического управления частотой (DVFS), более точного распределения интервалов планировщиком задач, более частого обновления статистики загрузки CPU и уменьшения времени нахождения задач в состоянии ожидания.
Примечательно, что другой разработчик из Google предложил оставить частоту таймера на 250 Гц, так как по его расчётам повышение частоты генерации прерываний таймера может привести к повышению энергопотребления на маломощных устройствах, включая устройства для интернета вещей. По его оценке при выставлении частоты в 1000 Гц даже на устройствах под управлением Android в некоторых ситуациях зафиксировано повышение потребления энергии процессором на 7%. Оказалось, что при увеличении частоты таймера также наблюдается более частое пробуждение CPU, так как при частоте 250 Гц таймеры, установленные на интервалы t + 1 мс, t + 2 мс, t + 3 мс и t + 4 мс, будут сгруппированы и приведут к одному пробуждению, а в случае 1000 Гц произойдёт четыре отдельных пробуждения.
Специалисты ресурса Phoronix провели сравнение производительности ПК на базе CPU AMD Ryzen 9 9950X с двумя вариантами частоты таймера.
Тесты показали, что в конфигурация с 1000 Гц система оказалась быстрее в бенчмарках Llama.cpp, nginx, SuperTuxKart, Selenium и при измерении времени сборки ядра. А вот в тестах Darktable, PostgreSQL, Unvanquished, Xonotic, Blender, SVT‑AV1, RawTherapee производительность системы была выше при установке таймера на 250 Гц.
При 1000 Гц среднее потребление энергии составило 144.2 Вт, минимальное зафиксировано на 0.18 Вт, а максимальное — 202.13 Вт. При значении таймера в 250 Гц среднее среднее потребление энергии составило 144.37 Вт, минимальное 0.07 Вт, а максимальное — 202 Вт.
Источник новости: habr.com