Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


flussonic:debian-linux-10-buster-operating-system-tuning-to-work-with-fussonic-media-server

Тюнинг Debian GNU/Linuх 10 (Buster) для работы с Flussonic Media Server

После установки ПО Flussonic Media Server рекомендуется выполнить ряд изменений параметров работы операционной системы для достижения лучших показателей производительности работы ПО. Основные рекомендации производителя можно найти по ссылке Документация Flussonic Media Server - Оптимизация Flussonic Media Server и операционной системы. Здесь будет рассмотрен пример дополнительной настройки ОС Debian GNU/Linuх 10 (Buster), выполняющейся на базе аппаратной платформы HPE ProLiant DL20 Gen10.



Общая настройка сетевого стека

Увеличим размер памяти под буферы сетевого стека. Для этого откроем на редактирование системный конфигурационный файл:

# nano /etc/sysctl.conf

В конец файла добавим фрагмент:

sysctl.conf
# Tuning for Flussonic
# Increasing the memory size for TCP/UDP buffers
# 
net.core.rmem_max = 1048576
net.core.wmem_max = 16777216
net.core.rmem_default=1048576
net.ipv4.udp_mem = 8388608 12582912 16777216
net.ipv4.tcp_wmem = 4096 4194394 16777216

Сохраним изменения и выполним применение новых параметров:

# sysctl -p

С помощью настройки параметра txqueuelen увеличим длину очереди передачи данных для сетевых интерфейсов сервера Проверим текущее значение txqueuelen (qlen) на примере сетевого интерфейса с именем eth0:

# ip link show eth0 | grep qlen

eth0: mtu 9000 qdisc noqueue state UP mode DEFAULT group default qlen 1000

По значению в конце строки видим, что текущее значение по умолчанию - 1000. Чтобы увеличить его в 10 раз, выполним команду следующего вида и следующей командой проверим результат:

# ip link set eth0 txqueuelen 10000
# ip link show eth0 | grep qlen

Однако такая настройка будет действовать только до перезагрузки. Чтобы настройка восстанавливалась при запуске сервера, отредактируем файл настроек сетевых интерфейсов:

# nano /etc/network/interfaces

В этом файле в конец секции описания интересующего нас сетевого интерфейса добавим строку вида:

interfaces
post-up /sbin/ip link set eth0 txqueuelen 10000

После внесения изменений в файл interfaces, перезагрузим сервер и убедимся в том что значение параметра txqueuelen устанавливается так, как запланировано.



Отключение IPv6

Если в локальной сети не используется протокол IPv6, то можно отключить поддержку этого протокола на сервере. Общий порядок отключения IPv6 на Debian описан в заметке Как отключить IPv6 в Debian GNU/Linux

После установки Flussonic Media Server, можно заметить, что в системе появляются новые TCP-прослушиватели для протокола IPv6, даже не смотря на то, что на уровне системы IPv6 выключен. Посмотреть все открытые порты можно командой:

# ss -lnptu | sort

Чтобы отучить Flussonic от IPv6, можно откорректировать основной конфигурационный файл:

# nano /etc/flussonic/flussonic.conf

Здесь потребуется вписать либо определённый IPv4 адрес, на котором Flussonic должен слушать тот или иной порт, либо указать адрес вида 0.0.0.0, например следующим образом:

http 0.0.0.0:80;
https 0.0.0.0:443;
rtsp 0.0.0.0:554;
rtmp 0.0.0.0:1935;

Для вступления изменений в силу перезапускам службу flussonic и проверяем результат:

# systemctl restart flussonic.service
# ss -lnptu | sort

Отучить вспомогательную службу flussonic-epmd использовать IPv6 мне так и не удалось. Теоретически, должно было хватить переопределения переменной ERL_EPMD_ADDRESS на уровне среды исполнения службы:

# systemctl edit flussonic-epmd

В открывшемся файле можно вписать:

[Service]
Environment=ERL_EPMD_ADDRESS=0.0.0.0

После сохранения заставим ситсему перечитать конфигурацию служб и проверим сводную текущую конфигурацию службы flussonic-epmd:

# systemctl daemon-reload
# systemctl cat flussonic-epmd

Однако указанное переопределение службы желаемого эффекта не даёт. И этот вопрос пока остаётся открытым.



Использование swap

В документации к Flussonic Media Server можно встретить рекомендацию о полном отключении раздела подкачки swap (или файла подкачки). Однако есть мнение, что полностью отключать swap - ни есть хорошо. Вместо этого можно минимизировать размер раздела (или файла) подкачки и с помощью сторонних средств мониторинга ОС следить за уровнем использования подкачки.

При достаточном объёме ОЗУ на сервере Flussonic Media Server, swap использоваться не должен. Если же средства мониторинга указывают на факт использования swap, то следует увеличивать объём ОЗУ на сервере.



Производительность процессоров

Для увеличения производительности серверной платформы HPE ProLiant DL20 Gen10 выполним дополнительную настройку ну уровне микрокода сервера. Для этого на этапе инициализации аппаратной платформы, нажимаем F9, чтобы попасть в главное меню System Utilities.

Здесь последовательно переходим в разделы System Configuration > BIOS/Platform Configuration (RBSU) и значение параметра Workload Profile определяем как, Custom, чтобы у нас появилась возможность редактировать параметры электропотребеления.

Перейдём в раздел Power and Perfomance Options и значение опции Power Regulator выставим в режим повышенной производительности - Static High Perfomance Mode, а также отключим режимы C-states

Клавишей F10 сохраняем сделанные изменения и выходим из RBSU.

Помимо настройки аппаратной части сервера, нам потребуется выполнить настройку на уровне ОС Linux, где в конфигурации по умолчанию включён энергосберегающий режим (регулятор scaling_governor находится в режиме powersave). Проверить это можно командой:

# cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

powersave powersave powersave powersave

Текущую тактовую частоту процессорных ядер можем проверить командой:

# egrep '(MHz)' /proc/cpuinfo

cpu MHz : 1000.342 cpu MHz : 1000.296 cpu MHz : 1000.084 cpu MHz : 1000.222

Как видно из нашего примера, процессоры работают лишь на четверть от своей номинальной мощности. Установить производительный режим работы можно командами типа:

# echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
# echo performance > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
# echo performance > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor

Проверим результат:

# cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

performance performance performance performance
# egrep '(MHz)' /proc/cpuinfo

cpu MHz : 3912.051 cpu MHz : 3974.400 cpu MHz : 3924.952 cpu MHz : 3934.710

Однако, изменённая нами конфигурация будет действовать только до перезагрузки сервера. Чтобы настроить производительный режим работы процессора на постоянной основе, установим вспомогательный пакет:

# apt-get install cpufrequtils

Отредактируем конфигурационный файл cpufrequtils, вписав туда нужным нам режим работы scaling_governor:

# nano /etc/default/cpufrequtils
cpufrequtils
GOVERNOR="performance"

После этого перезагрузим сервер и проверим результат уже знакомыми командами:

# cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
# egrep '(MHz)' /proc/cpuinfo

Дополнительные источники информации:


Проверено на следующих конфигурациях:

Версия Debian Linux Версия базового пакета Flussonic Media Server
Debian GNU/Linux 10.5 (Buster) flussonic 20.09 (amd64)

Автор первичной редакции:
Алексей Максимов
Время публикации: 28.09.2020 17:54

Обсуждение

Ваш комментарий:
 

flussonic/debian-linux-10-buster-operating-system-tuning-to-work-with-fussonic-media-server.txt · Последнее изменение: 30.09.2020 16:33 — Алексей Максимов