===== Тюнинг Debian GNU/Linuх 10 (Buster) для работы с Flussonic Media Server ===== {{:flussonic:pasted:20200928-191019.png }} После [[flussonic:installing-flussonic-media-server-on-debian-linux-10-buster|установки]] ПО **Flussonic Media Server** рекомендуется выполнить ряд изменений параметров работы операционной системы для достижения лучших показателей производительности работы ПО. Основные рекомендации производителя можно найти по ссылке [[https://flussonic.ru/doc/admin/optimizatsiya-flussonic-media-server-i-operatsionnoy-sistemy/|Документация Flussonic Media Server - Оптимизация Flussonic Media Server и операционной системы]]. Здесь будет рассмотрен пример дополнительной настройки ОС **Debian GNU/Linuх 10 (Buster)**, выполняющейся на базе аппаратной платформы **HPE ProLiant DL20 Gen10**. ---- \\ ==== Общая настройка сетевого стека ==== Увеличим размер памяти под буферы сетевого стека. Для этого откроем на редактирование системный конфигурационный файл:
# nano /etc/sysctl.confВ конец файла добавим фрагмент:
# sysctl -pС помощью настройки параметра **txqueuelen** увеличим длину очереди передачи данных для сетевых интерфейсов сервера Проверим текущее значение txqueuelen (qlen) на примере сетевого интерфейса с именем ''eth0'':
# ip link show eth0 | grep qlen eth0:По значению в конце строки видим, что текущее значение по умолчанию - 1000. Чтобы увеличить его в 10 раз, выполним команду следующего вида и следующей командой проверим результат:mtu 9000 qdisc noqueue state UP mode DEFAULT group default qlen 1000
# ip link set eth0 txqueuelen 10000 # ip link show eth0 | grep qlenОднако такая настройка будет действовать только до перезагрузки. Чтобы настройка восстанавливалась при запуске сервера, отредактируем файл настроек сетевых интерфейсов:
# nano /etc/network/interfacesВ этом файле в конец секции описания интересующего нас сетевого интерфейса добавим строку вида:
# 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**. {{ :flussonic:pasted:20200929-094229.png }} Здесь последовательно переходим в разделы **System Configuration** > **BIOS/Platform Configuration** (**RBSU**) и значение параметра **Workload Profile** определяем как, **Custom**, чтобы у нас появилась возможность редактировать параметры электропотребеления. {{ :flussonic:pasted:20200929-093138.png }} Перейдём в раздел **Power and Perfomance Options** и значение опции **Power Regulator** выставим в режим повышенной производительности - **Static High Perfomance Mode**, а также отключим режимы **C-states** {{ :flussonic:pasted:20200929-093618.png }} Клавишей **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
# cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor # egrep '(MHz)' /proc/cpuinfo---- Дополнительные источники информации: * [[https://flussonic.ru/doc/admin/optimizatsiya-flussonic-media-server-i-operatsionnoy-sistemy/|Документация Flussonic Media Server - Оптимизация Flussonic Media Server и операционной системы]] ---- Проверено на следующих конфигурациях: ^ Версия Debian Linux ^ Версия базового пакета Flussonic Media Server ^ | Debian GNU/Linux 10.5 (Buster) | flussonic 20.09 (amd64) | ---- {{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 28.09.2020 17:54 {{tag>Flussonic "Flussonic Media Server" Streaming Linux "Debian 10" "Debian Buster" HPE ProLiant DL20}} ~~DISCUSSION~~