Введение
В состав дистрибутива Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) начиная с обновления БЮЛЛЕТЕНЬ № 2022-1110SE17 (оперативное обновление 1.7.3) в дополнение к вариантам сборки ядра generic (сборка общего назначения) и hardened (сборка с усиленными внутренними проверками) включен вариант сборки ядра lowlatency.
Современные компьютеры являются многозадачными, т. е. , с точки зрения пользователя компьютер одновременно выполняет несколько задач. В самом деле задачи выполняются не одновременно, а по очереди некоторыми » квантами «, но переключения между задачами происходят с человеческой точки зрения «очень быстро» и «незаметно». Операция переключения задач сама является квантом задачи и, как любой квант, требует некоторого времени и энергозатрат. В какой момент происходит переключение задач решает ядро операционной системы (планировщик ядра), и, если выполняемая задача не совпадает с ожидаемой пользователем, то пользователь замечает «задержку» (была нажата клавиша, но символ на экране появился не сразу ). Ядро lowlatency предназначено для снижения подобных задержек (снижения «латентности»).
Латентность (latency) в широком смысле представляет собой временную задержку между причиной и следствием. Применительно к теме данной статье, например, временной интервал между действием пользователя и реакцией компьютера на него. Синонимом термина » латентность» можно считать термин «время реакции». Понятие латентности применяется к операциям, которые оцениваются субъективно, т.е. пользователями, и неприменимо к оценке производительности информационных систем. Например, объективной оценкой производительности сервера СУБД могут быть различные варианты показателя TPC (количество транзакций в секунду) , а объективной оценкой мультимедийного компьютера — FPS (кадровая частота, количество кадров в секунду) .
С субъективным восприятием качества работы компьютера также связано понятие » джиттер» (jitter) — разброс значений задержек для одного и того же события. Например, с точки зрения пользователя, некоторые нажатия клавиш отображаются на экране мгновенно, а некоторые — с видимой задержкой, или в воспроизведении мультимедиа появляются заметные сбои. Снижение латентности ведет к снижению значений джиттера. Важность значений джиттера зависит от применения компьютера: для сервера СУБД джиттер неважен, для мультимедийного компьютера — критичен.
Латентность и джиттер зависят от частоты переключения задач в системе. Частота измеряется в Герцах (Гц) — количество переключений в секунду. В ядрах общего назначения частота переключения задач 250 Гц, в ядре lowlatency — 1000 Гц.
Основной технической особенностью ядра lowlatency является увеличенная до 1000 Гц частота переключения задач. Эта особенность обеспечивает субъективно более комфортную реакцию системы, однако вызывает увеличение накладных расходов на переключение задач. Субъективное улучшение работы компьютера происходит за счет снижения полезной производительности и повышения энергопотребления.
Пояснительные примеры
Пользовательские компьютеры
Рассмотрим условно маломощный пользовательский компьютер, на котором пользователь выполняет редактирование и последующее сохранение файла, одновременно слушая музыку.
При использовании сборки generic вследствие высоких значений латентности и джиттера выполнение операций редактирования происходит с некоторой неприятной для пользователя переменной задержкой или сопровождается сбоями воспроизведения мультимедиа. Сохранение файла выполняется, условно, за одну секунд у, при этом нарушается воспроизведение музыки и компьютер не реагирует на нажатия клавиш . Субъективно, с точки зрения пользователя, «компьютер работает плохо».
При использовании сборки lowlatency выполнение каждой отдельной операции редактирования происходит субъективно быстрее, а музыка воспроизводится без помех как при редактировании, так и при сохранении. Однако, сохранение файла при этом выполняется не за одну, а за две секунды, что на фоне музыки не заметно пользователю, т. е. субъективно «компьютер работает хорошо».
Вне субъективного восприятия пользователя остается повышенное энергопотребление: при низкой нагрузке (условное редактирование файла) компьютер, работая в режиме lowlatency, выполняет больше операций переключения, что повышает расход энергии.
Серверы
Общая производительность сервера зависит от сбалансированности работы процессора, памяти, подсистемы ввода-вывода, сетевой подсистемы. Эта сбалансированность определяется сочетанием многих параметров, и применение наряду с другими параметрами ядра lowlatency может иметь положительный эффект некоторых сценариях применения.
Трактовка результата применения тех или иных настроек зависит от используемых метрик производительности. Например:
- для серверов СУБД, производительность которых оценивается в метриках TPC, эффект от применения ядра lowlatency будет ограниченным;
- для серверов обработки сообщений , работа которых требует обработки большого количества мелких сообщений, и приближается к работе в режиме реального времени, может применяться метрика производительности вида «количество сообщений в секунду, при котором 95-ый процентиль задержки обработки стремится к превышению 500 миллисекунд». Такая метрика с высокой вероятностью может быть улучшена за счет снижения значения джиттера при использовании ядра lowlatency;
- для игровых и мультимедийных серверов, оценка качества работы которых определяется субъективным восприятием пользователей (полнота отрисовки игровых сцен, качество воспроизведения мультимедиа) , стабильность воспроизведения мультимедийного контента (низкое значение джиттера) становится важным требованием, и применение ядра lowlatency может улучшить субъективные показатели работы.
Рекомендации по применению ядра lowlatency
- Предпочтительными всегда являются стандартные решения. Поэтому, если нет веских причин, то не следует заменять стандартное ядро (generic) на lowlatency.
- Производительность современных пользовательских (персональных) компьютеров более чем достаточна для качественного решения задачи из приведенного выше примера «пользователь редактирует файл и слушает музыку» или даже «пользователь редактирует файл и смотрит кино в FullHD » , и замена стандартного ядра generic на ядро lowlatency субъективных улучшений не принесет.
- На высокозагруженных пользовательских компьютерах (игровых, маломощных, планшетах, мобильных устройствах) применение ядра lowlatency вероятно улучшит субъективное впечатление пользователей от работы с устройством. Однако, следует помнить, что снижение латентности происходит за счет повышения вычислительной нагрузки, что, в итоге, может привести к заметному ухудшению работы (например, критическому снижению показателя FPS в мультимедийных приложениях) . В случае применения ядра lowlatency для портативных устройств следует также помнить про повышенное энергопотребление.
- Для серверов применение ядра lowlatency может иметь разные эффекты в зависимости сбалансированности аппаратной платформы и сочетания различных настроек;
- Ядро lowlatency не является ядром реального времени, однако низкая латентность и низкий джиттер могут быть полезны для применений в системах автоматизации и управления оборудованием. В этом случае применимость определяется характеристиками аппаратной платформы и требованиями к параметрам управления и энергопотребления.
Проверка текущих параметров установленных ядер
Параметры, с которыми собрано ядро, установленное в системе, доступны в каталоге /boot/ в фалах /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 Гц.
Проверить, какое ядро загружено в системе, можно командой:
Установка ядра lowlatency
Ядро lowlatency может быть установлено из основного репозитория Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) начиная с обновления БЮЛЛЕТЕНЬ № 2022-1110SE17 (оперативное обновление 1.7.3). Рекомендованная команда для установки:
Обновление Astra Linux Common Edition: актуальное ядро и новые возможности
Вышло обновление ОС общего назначения Astra Linux Common Edition 2.12.43.
В состав продукта вошло актуальное ядро Linux 5.10 в обычном и защищенном вариантах, которое поддерживает новейшие чипсеты от Intel® Core™ 11 поколения и современные видеокарты. Также в нем улучшена поддержка процессоров AMD на микроархитектурах Zen 2 и Zen 3. В числе ключевых изменений – устранение ряда уязвимостей, обновление средств электронной подписи fly-csp-cryptopro, поддержка новой сертифицированной версии СКЗИ «КриптоПро CSP» 5.0R2 и новые утилиты. Кроме того, разработчики обновили сервер графических приложений и оконный менеджер Fly.
Пользователям ОС стал доступен новый комплект драйверов для видеоадаптеров Nvidia, а в файловом менеджере fly-fm значительно оптимизированы работа с сетевыми каталогами и расширениями документов, скроллирование каталогов, предпросмотр аудио-видео файлов и т.д. Работа с принтерами стала удобнее: появилась поддержка новых моделей, можно просматривать документы, которые отправил на печать какой-либо конкретный пользователь, сохранять имена и пароли для сетевых принтеров, доступен функционал для их группировки и поиска.
Обновленная операционная система содержит актуальные версии браузеров firefox и chromium, почтовой подсистемы, e-mail-клиента thunderbird и комплект современных видео- и аудиокодеков ffmpeg.
Улучшения также коснулись использования внешних устройств и графических служебных утилит, теперь есть возможность добавлять или удалять шрифты и проверять директории.
В состав продукта включили новый файловый сервер Samba 4.12 с удобной интеграцией с сетевым доменом AD, обновили и доработали консольные утилиты настройки доменов FreeIPA и SambaDC, реализовали NTP-сервер chrony.
В части средств управления тоже произошли изменения: для удаленного управления Linux-серверами в репозиторий добавлен Cockpit, а кроме этого, актуализирована утилита для управления средствами удаленного управления конфигурациями и сетевого развертывания foreman.
Еще одно важное новшество в Astra Linux Common Edition – это центр системных отчетов fly-sosreport. Он позволяет собирать, сохранять и отправлять в службу сопровождения данные о работе системы для диагностики и отладки.
Среди прочих доработок можно отметить комплект утилит для «облачной» установки, обновление средств для работы в виртуальной среде VMware, реализацию возможностей проверять, достаточно ли свободного места на диске, и отключать перед обновлением функционал, отвечающий за безопасность. В репозиторий добавлен python 3.7, который можно использовать для разработки приложений, и доступен компилятор языка golang 1.15.
«Мы позиционируем Astra Linux Common Edition как платформу для инфраструктур, предназначенных для самого широкого круга задач: от обычной офисной работы до разработки ПО и онлайн-игр. Поэтому наши специалисты стремятся заложить в продукт все, что может понадобиться заказчикам: защиту от уязвимостей, интуитивно понятный интерфейс, удобный функционал для работы с принтерами, документами и почтой, также средства для управления, развертывания систем в виртуальной среде и разработки софта. Мы надеемся, что новшества, реализованные в этом обновлении, удовлетворят потребности наших клиентов, и всегда открыты для обратной связи. Отзывы пользователей, которые теперь можно направлять нам прямо из ОС, помогают ГК Astra Linux развивать свои решения именно в том направлении, которое актуально для российского рынка», – комментирует Роман Мылицын, директор по инновациям ГК Astra Linux.