Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

Версия 1 Следующий »

Данная статья применима к:

  • Astra Linux с ядром lowlatency

Введение

В состав дистрибутива Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) начиная с обновления БЮЛЛЕТЕНЬ № 2022-1110SE17 (оперативное обновление 1.7.3) в дополнение к вариантам сборки ядра generic (сборка общего назначения) и hardened (сборка с усиленными внутренними проверками) включен вариант сборки ядра lowlatency.

Современные компьютеры являются многозадачными. С точки зрения пользователя компьютер одновременно выполняют несколько задач. В самом деле задачи выполняются не одновременно, а по очереди некоторыми "отрезками", но переключения между задачами происходят с человеческой точки зрения "очень быстро" и "незаметно". Выполнение каждого "отрезка" задачи требует какого-то времени и энергозатрат, и сама операция переключения задач требует некоторого времени и энергозатрат. Когда и какая задача выполняется решает ядро операционной системы (планировщик), и, если выполняемая задача не совпадает с ожидаемой пользователем, то пользователь замечает "задержку" (нажата кнопка - а символ на экране появился не сразу). Ядро lowlatency предназначено снижения подобных задержек (снижения латентности).

Латентность (latency) с общей точки зрения, представляет собой временную задержку между причиной и следствием. Применительно к теме данной статье, например, период времени от момента нажатия пользователем клавиши до момента появления символа на экране. Синонимом термина латентность можно считать термин "время реакции". Понятие латентности применяется к операциям, которые оцениваются субъективно, т.е. пользователям, и неприменимо к оценке производительности информационных систем. Объективной оценкой производительности, например, сервера СУБД является показатель TPC-C (количество транзакций в секунду).

С понятием латентности связано понятие джиттер (jitter) - разброс значения задержек для одного и того же события. Например, с точки зрения пользователя, некоторые нажатия клавиш отображаются на экране мгновенно, а некоторые - с видимой задержкой. Снижение латентности ведет к снижению значений джиттера.

Латентность и джиттер зависят от частоты переключения задач в системе. Частота измеряется в Герцах (Гц) - количество переключений в секунду. В ядрах общего назначения частота переключения задач 250 Гц, в ядре lowlatency - 1000 Гц.

Далее в статье рассматриваются особенности и применимость варианта сборки lowlatencу.

Особенности ядра lowlatency

Основной технической особенностью ядра lowlatency является увеличенная частота переключения задач. Эта особенность позволяет улучшить субъективное впечатление пользователя от работы компьютера за счет снижения производительности и повышения энергопотребления. Увеличение частоты переключения задач обеспечивает субъективно более быструю реакцию системы, однако вызывает увеличение накладных расходов, так как каждая операция переключения задач занимает какое-то время и требует расхода энергии. 

Пояснительные примеры

Пользовательские компьютеры

Рассмотрим условно маломощный пользовательский компьютер, на котором пользователь выполняет редактирование и последующее сохранение файла, одновременно слушая музыку.

При использовании сборки generic выполнение операции редактирования происходят с некоторой заметной и неприятной для пользователя задержкой (а что еще неприятнее - с разной задержкой из за высокого джиттера) или сопровождается сбоями воспроизведения мультимедиа (следствие высокого джиттера). Сохранение файла выполняется, условно, за одну секунду,  и при этом полностью нарушается воспроизведение музыки и компьютер "не реагирует на клавиши". Субъективно, с точки зрения пользователя, "компьютер работает плохо". 

При использовании сборки lowlatency выполнение каждой отдельной операции редактирования происходит субъективно быстрее, а музыка воспроизводится без помех как при редактировании, так и при сохранении.  Однако, сохранение файла при этом выполняется не за одну, а за две секунды, что субъективно на фоне музыки не заметно пользователю, т.е. субъективно "компьютер работает хорошо".

Вне субъективного восприятия пользователя остается повышенное энергопотребление: при низкой нагрузке (условное редактирование файла) компьютер, работая в режиме lowlatency, выполняет больше операция переключения, что повышает расход энергии.

Серверы

В общем случае сервер баз данных, в отличие от пользовательского компьютера, не обрабатывает "нажатия клавиш" и не воспроизводит музыку. Оценкой работы сервера является, условно, показатель производительности 1000 TPC-C, при этом на больших выборках высокие значения джиттера усредняются и нивелируются. Использование ядра lowlatency не принесет никаких полезных изменений, но, из-за увеличения затрат на переключение задач, превратит 1000 TPC-C в 900 TPC-C, т.е. в целом объективно ухудшит работу сервера.

Рекомендации по применению ядра lowlatency

  1. Предпочтительными всегда являются стандартные решения. Поэтому, если нет веских причин заменить стандартное ядро (generic), то использовать следует его;
  2. Производительность современных компьютеров более чем достаточна для качественного решения задач класса задачи из приведенного выше примера "пользователь редактирует файл и слушает музыку" или даже "пользователь редактирует файл и смотрит кино в Full HD",  и замена стандартного ядра generic на ядро lowlatency субъективных улучшений не принесет;
  3. На высокозагруженных пользовательских компьютерах (игровых, маломощных, планшетах, мобильных устройствах) применение ядра lowlatency вероятно улучшит субъективное впечатление пользователей от работы с устройством. Однако, следует помнить что это субъективное улучшение происходит за счет еще большего повышения вычислительной нагрузки, что, в итоге, может привести к заметному ухудшению работы. В случае применения ядра lowlatency для портативных устройств следует также помнить про повышенное энергопотребление этого ядра;
  4. На серверах в общем случае ядро lowlatency применять не следует. Отдельным случаем являются игровые и мультимедийные серверы, оценка качества работы которых определяется субъективным восприятием пользователей. В таких серверах стабильность (низкий джиттер) становится важным требованием, и применение ядра lowlatency может улучшить субъективные показатели работы. 
  5. Ядро lowlatency не является ядром реального времени, однако низкая латентность и низкий джиттер могут быть применимы для применений в системах автоматизации и управления оборудованием. В этом случае применимость определяется характеристиками аппаратной платформы и требованиями к параметрам управления.

Проверка текущих параметров установленных ядер

Параметры, с которыми собрано ядро, установленное в системе, доступны в каталоге /boot/ в фалах /boot/config-*. Проверить, с какими параметрами задержек (точнее, с какой частотой переключения задач) собраны установленные в системе ядра можно командой:

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 Гц.

Проверить, какое ядро загружено в системе, можно командой:

uname -r

Установка ядра lowlatency

Ядро lowlatency может быть установлено из основного репозитория Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) начиная с обновления БЮЛЛЕТЕНЬ № 2022-1110SE17 (оперативное обновление 1.7.3). Рекомендованная команда для установки:

sudo apt install linux-5.15-lowlatency



  • Нет меток