===== Тюнинг 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
В конец файла добавим фрагмент: # 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
В этом файле в конец секции описания интересующего нас сетевого интерфейса добавим строку вида: post-up /sbin/ip link set eth0 txqueuelen 10000 После внесения изменений в файл ''interfaces'', перезагрузим сервер и убедимся в том что значение параметра txqueuelen устанавливается так, как запланировано. ---- \\ ==== Отключение IPv6 ==== Если в локальной сети не используется протокол **IPv6**, то можно отключить поддержку этого протокола на сервере. Общий порядок отключения IPv6 на Debian описан в заметке [[unix-linux:debian:how-to-turn-off-ipv6-in-debian-linux|Как отключить 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**. {{ :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
GOVERNOR="performance" После этого перезагрузим сервер и проверим результат уже знакомыми командами:
# 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~~