Оглавление |
---|
Информация | ||
---|---|---|
| ||
|
Введение
В состав дистрибутива Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) начиная с обновления БЮЛЛЕТЕНЬ № 2022-1110SE17 (оперативное обновление 1.7.3) в дополнение к вариантам сборки ядра generic (сборка общего назначения) и hardened (сборка с усиленными внутренними проверками) включен вариант сборки ядра lowlatency.
Современные компьютеры являются многозадачными, т. е., с точки зрения пользователя компьютер одновременно выполняют выполняет несколько задач. В самом деле задачи выполняются не одновременно, а по очереди, некоторыми "отрезкамиквантами", но переключения между задачами происходят с человеческой точки зрения "очень быстро" и "незаметно". Выполнение каждого "отрезка" задач требует какого-то времени и энергозатрат, также сама операция переключения задач Операция переключения задач сама является квантом задачи и, как любой квант, требует некоторого времени и энергозатрат. Когда и какая задача выполняется и в В какой момент происходит переключение задач решает ядро операционной системы (планировщик ядра), и, если в результате переключения выполняемая задача не совпадает с ожидаемой пользователем, то пользователь замечает "задержку" (например, была нажата клавиша - а , но символ на экране появился не сразу). Ядро lowlatency предназначено для снижения подобных задержек (снижения "латентности").
Латентность (latency) с общей точки зрения, в широком смысле представляет собой временную задержку между причиной и следствием. Применительно к теме данной статье , например, период времени от момента нажатия пользователем клавиши до момента появления символа на экранеэто может временной интервал между действием пользователя и реакцией компьютера на него. Синонимом термина "латентность" можно считать термин "время реакции". Понятие латентности применяется к операциям, которые оцениваются субъективно, т.е. пользователями, и неприменимо к оценке производительности информационных систем. Например, объективной оценкой производительности сервера СУБД могут быть различные варианты показателя TPC (количество транзакций в секунду), а объективной оценкой мультимедийного компьютера — FPS (кадровая частота, количество кадров в секунду).
С понятием латентности субъективным восприятием качества работы компьютера также связано понятие "джиттер" (jitter) - — разброс значения значений задержек для одного и того же события. Например, с точки зрения пользователя, некоторые нажатия клавиш отображаются на экране мгновенно, а некоторые - — с видимой задержкой, или в воспроизведении мультимедиа появляются заметные сбои. Снижение латентности ведет к снижению значений джиттера. Важность значений джиттера зависит от применения компьютера: для сервера СУБД джиттер неважен, для мультимедийного компьютера - критичен.
Латентность и джиттер зависят от частоты переключения задач в системе. Частота измеряется в Герцах (Гц) - количество переключений в секунду. В ядрах общего назначения частота переключения задач 250 Гц, в ядре lowlatency - 1000 Гц.
Далее в статье рассматриваются особенности и применимость варианта сборки lowlatencу.
Особенности ядра lowlatencyИнформация |
---|
Основной технической особенностью ядра lowlatency является увеличенная до 1000 Гц частота переключения задач. Эта особенность |
обеспечивает субъективно более |
комфортную реакцию системы, однако вызывает увеличение накладных расходов |
на переключение задач. Субъективное улучшение работы компьютера происходит за счет снижения полезной производительности и повышения энергопотребления. |
Пояснительные примеры
Пользовательские компьютеры
Рассмотрим условно маломощный пользовательский компьютер, на котором пользователь выполняет редактирование и последующее сохранение файла, одновременно слушая музыку.
При использовании сборки generic выполнение операции редактирования происходят вследствие высоких значений латентности и джиттера выполнение операций редактирования происходит с некоторой заметной и неприятной для пользователя задержкой (а что еще неприятнее - с разной задержкой из за высокого джиттера) переменной задержкой или сопровождается сбоями воспроизведения мультимедиа (следствие высокого джиттера). Сохранение файла выполняется, условно, за одну секунду, и при этом полностью нарушается воспроизведение музыки и компьютер " не реагирует на клавиши"нажатия клавиш. Субъективно, с точки зрения пользователя, "компьютер работает плохо".
При использовании сборки lowlatency выполнение каждой отдельной операции редактирования происходит субъективно быстрее, а музыка воспроизводится без помех как при редактировании, так и при сохранении. Однако, сохранение файла при этом выполняется не за одну, а за две секунды, что на фоне музыки не заметно пользователю, т. е. субъективно "компьютер работает хорошо".
Вне субъективного восприятия пользователя остается повышенное энергопотребление: при низкой нагрузке (условное редактирование файла) компьютер, работая в режиме lowlatency, выполняет больше операция операций переключения, что повышает расход энергии.
Серверы
В общем случае сервер баз данных, в отличие от пользовательского компьютера, не обрабатывает "нажатия клавиш" и не воспроизводит музыку. Оценкой работы сервера является, условно, показатель производительности 1000 TPC-C, при этом на больших выборках высокие значенияОбщая производительность сервера зависит от сбалансированности работы процессора, памяти, подсистемы ввода-вывода, сетевой подсистемы. Эта сбалансированность определяется сочетанием многих параметров, и применение наряду с другими параметрами ядра lowlatency может иметь положительный эффект некоторых сценариях применения.
Трактовка результата применения тех или иных настроек зависит от используемых метрик производительности. Например:
- Для серверов СУБД, производительность которых оценивается в метриках TPC, эффект от применения ядра lowlatency будет ограниченным.
- Для серверов обработки сообщений, работа которых требует обработки большого количества мелких сообщений, и приближается к работе в режиме реального времени, может применяться метрика производительности вида "количество сообщений в секунду, при котором 95-ый процентиль задержки обработки стремится к превышению 500 миллисекунд". Такая метрика с высокой вероятностью может быть улучшена за счет снижения значения джиттера при использовании ядра lowlatency.
- Для игровых и мультимедийных серверов, оценка качества работы которых определяется субъективным восприятием пользователей (полнота отрисовки игровых сцен, качество воспроизведения мультимедиа) , стабильность воспроизведения мультимедийного контента (низкое значение джиттера) становится важным требованием, и применение ядра lowlatency может улучшить субъективные показатели работы
- .
Рекомендации по применению ядра lowlatency
- Предпочтительными всегда являются стандартные решения. Поэтому, если нет веских причин заменить , то не следует заменять стандартное ядро (generic) , то использовать следует стандартное ядро;на lowlatency.
- Производительность современных пользовательских (персональных) компьютеров более чем достаточна для качественного решения задач класса задачи из приведенного выше примера "пользователь редактирует файл и слушает музыку" или даже "пользователь редактирует файл и смотрит кино в Full HDFullHD", и замена стандартного ядра generic на ядро lowlatency субъективных улучшений не принесет;.
- На высокозагруженных пользовательских компьютерах (игровых, маломощных, планшетах, мобильных устройствах) применение ядра lowlatency вероятно улучшит субъективное впечатление пользователей от работы с устройством. Однако, следует помнить, что это субъективное улучшение снижение латентности происходит за счет еще большего повышения вычислительной нагрузки, что, в итоге, может привести к заметному ухудшению работы (например, критическому снижению показателя FPS в мультимедийных приложениях). В случае применения ядра lowlatency для портативных устройств следует также помнить про повышенное энергопотребление этого ядра;.
- Для серверов применение ядра lowlatency может иметь разные эффекты в зависимости от сбалансированности аппаратной платформы и сочетания различных настроек; На серверах в общем случае ядро lowlatency применять не следует. Отдельным случаем являются игровые и мультимедийные серверы, оценка качества работы которых определяется субъективным восприятием пользователей. В таких серверах стабильность (низкий джиттер) становится важным требованием, и применение ядра lowlatency может улучшить субъективные показатели работы.
- Ядро lowlatency не является ядром реального времени, однако низкая латентность и низкий джиттер могут быть полезны для применений в системах автоматизации и управления оборудованием. В этом случае применимость определяется характеристиками аппаратной платформы и требованиями к параметрам управления и энергопотребления.
Проверка текущих параметров установленных ядер
Параметры, с которыми собрано ядро, установленное в системе, доступны в каталоге /boot/
в фалах /boot/config-*
. Проверить, с какими параметрами задержек (точнее, с какой частотой переключения задач) собраны установленные в системе ядра можно командой:
Command |
---|
grep CONFIG_HZ= /boot/config-* |
Пример вывода команды:
Блок кода |
---|
/boot/config-5.15.0-33-lowlatency:CONFIG_HZ=1000 /boot/config-5.4.0-110-generic:CONFIG_HZ=250 /boot/config-5.4.0-54-generic:CONFIG_HZ=250 |
Пояснение: в системе установлено 3 ядра (5.15.0-33-lowlatency, 5.4.0-110-generic, 5.4.0-54-generic), первое ядро lowlatency с частотой переключения задач 1000 Гц, второе и третье - ядра общего назначения (generic) с частотой переключения 250 Гц.
Проверить, какое ядро загружено в системе, можно командой:
Command |
---|
uname -r |
Установка ядра lowlatency
Ядро lowlatency может быть установлено из основного репозитория Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) начиная с обновления БЮЛЛЕТЕНЬ № 2022-1110SE17 (оперативное обновление 1.7.3). Рекомендованная команда для установки:
Command |
---|
sudo apt install linux-5.15-lowlatency |