This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
software:msd:config [2014/10/20 01:55] – software:msd:config переименовано в ru:software:msd:config (translate) root | software:msd:config [2022/02/04 18:52] (current) – root | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Настройки ====== | ||
- | |||
Конфиг файл представляет из себя xml файл.\\ | Конфиг файл представляет из себя xml файл.\\ | ||
Размер в килобайтах, | Размер в килобайтах, | ||
Line 30: | Line 28: | ||
---- | ---- | ||
- | ===== log ===== | + | ====== log ====== |
Лог файл. | Лог файл. | ||
Line 37: | Line 35: | ||
</ | </ | ||
- | ==== file ==== | + | ===== file ===== |
Имя файла. Запись производится если в командной строке не указан -v, иначе лог пишется в stdout. | Имя файла. Запись производится если в командной строке не указан -v, иначе лог пишется в stdout. | ||
---- | ---- | ||
- | ===== threadPool ===== | + | ====== threadPool |
Настройки пула потоков. | Настройки пула потоков. | ||
Line 52: | Line 50: | ||
</ | </ | ||
- | ==== threadsCount ==== | + | ===== threadsCount |
Количество потоков. Если 0 = автоматически по количеству доступных ядер в системе. | Количество потоков. Если 0 = автоматически по количеству доступных ядер в системе. | ||
- | ==== fBindToCPU==== | + | ===== fBindToCPU |
Прикреплять потоки к процессорным ядрам. Если флаг задан то каждый поток будет выполнятся всегда только на одном ядре процессора. Такое поведение позволяет более эффективно использовать процессорный кеш. | Прикреплять потоки к процессорным ядрам. Если флаг задан то каждый поток будет выполнятся всегда только на одном ядре процессора. Такое поведение позволяет более эффективно использовать процессорный кеш. | ||
- | ==== fCacheGetTimeSyscall ==== | + | ===== fCacheGetTimeSyscall |
Кешировать системный вызов clock_gettime(). \\ | Кешировать системный вызов clock_gettime(). \\ | ||
clock_gettime() будет вызываться с задержкой указанной в [[software: | clock_gettime() будет вызываться с задержкой указанной в [[software: | ||
Line 64: | Line 62: | ||
На FreeBSD экономия будет меньше заметна.\\ | На FreeBSD экономия будет меньше заметна.\\ | ||
- | ==== timerGranularity ==== | + | ===== timerGranularity |
Задержка между вызовами clock_gettime() для обновления времени.\\ | Задержка между вызовами clock_gettime() для обновления времени.\\ | ||
Измеряется как 1/1000 секунды. Например: | Измеряется как 1/1000 секунды. Например: | ||
Line 71: | Line 69: | ||
---- | ---- | ||
- | ===== systemResourceLimits ===== | + | ====== systemResourceLimits |
Задаются лимиты системных ресурсов для msd. | Задаются лимиты системных ресурсов для msd. | ||
Line 81: | Line 79: | ||
</ | </ | ||
- | ==== maxOpenFiles ==== | + | ===== maxOpenFiles |
Максимально доступное для msd количество файлов/ | Максимально доступное для msd количество файлов/ | ||
- | ==== maxCoreFileSize ==== | + | ===== maxCoreFileSize |
Разрешить записывать дамп памяти (указанного размера) в случае сбоя приложения. | Разрешить записывать дамп памяти (указанного размера) в случае сбоя приложения. | ||
- | ==== maxMemLock ==== | + | ===== maxMemLock |
Максимально доступный объём памяти которую можно блокировать. | Максимально доступный объём памяти которую можно блокировать. | ||
- | ==== processPriority ==== | + | ===== processPriority |
Приоритет выполнения msd в системе: | Приоритет выполнения msd в системе: | ||
---- | ---- | ||
- | ===== HTTP ===== | + | ====== HTTP ====== |
Настройки HTTP сервера. | Настройки HTTP сервера. | ||
Line 134: | Line 132: | ||
</ | </ | ||
- | ==== ioBufInitSize ==== | + | ===== ioBufInitSize |
Начальный размер буфера для приёма http запроса от клиента. | Начальный размер буфера для приёма http запроса от клиента. | ||
- | ==== ioBufMaxSize ==== | + | ===== ioBufMaxSize |
Максимальный размер буфера для приёма http запроса от клиента. | Максимальный размер буфера для приёма http запроса от клиента. | ||
- | ==== skt ==== | + | ===== skt ===== |
Настройки сокета клиента. | Настройки сокета клиента. | ||
- | === rcvBuf === | + | ==== rcvBuf |
Максимальный размер буфера для приёма (SO_RCVBUF). | Максимальный размер буфера для приёма (SO_RCVBUF). | ||
- | === sndBuf === | + | ==== sndBuf |
Максимальный размер буфера для отправки (SO_SNDBUF). | Максимальный размер буфера для отправки (SO_SNDBUF). | ||
- | === rcvTimeout === | + | ==== rcvTimeout |
Таймаут приёма запроса от клиента. | Таймаут приёма запроса от клиента. | ||
- | === sndTimeout === | + | ==== sndTimeout |
Таймаут отправки ответа клиенту. | Таймаут отправки ответа клиенту. | ||
- | ==== bindList, bind ==== | + | ===== bindList, bind ===== |
bindList содержит секции bind, в которых описывается на каких адресах принимать запросы от клиентов и дополнительные параметры. | bindList содержит секции bind, в которых описывается на каких адресах принимать запросы от клиентов и дополнительные параметры. | ||
- | === address === | + | ==== address |
IPv4Address: | IPv4Address: | ||
- | === ifName === | + | ==== ifName |
Имя интерфейса, | Имя интерфейса, | ||
- | === backlog === | + | ==== backlog |
Максимальное количество ожидающих в очереди на подключение (listen(..., | Максимальное количество ожидающих в очереди на подключение (listen(..., | ||
- | === fAcceptFilter === | + | ==== fAcceptFilter |
Использовать SO_ACCEPTFILTER(httpready) для FreeBSD (accf_http модуль должен быть загружен) либо TCP_DEFER_ACCEPT под linux.\\ | Использовать SO_ACCEPTFILTER(httpready) для FreeBSD (accf_http модуль должен быть загружен) либо TCP_DEFER_ACCEPT под linux.\\ | ||
Использование данного флага позволяет уменьшить использование CPU при большом количестве HTTP запросов. | Использование данного флага позволяет уменьшить использование CPU при большом количестве HTTP запросов. | ||
- | === congestionControl === | + | ==== congestionControl |
TCP Congestion Control Algoritm. (TCP_CONGESTION) Алгоритм контроля перегрузки канала в TCP.\\ | TCP Congestion Control Algoritm. (TCP_CONGESTION) Алгоритм контроля перегрузки канала в TCP.\\ | ||
Позволяет выжать максимум из канала при передаче клиенту.\\ | Позволяет выжать максимум из канала при передаче клиенту.\\ | ||
Line 177: | Line 175: | ||
- | ==== hostnameList, | + | ===== hostnameList, |
Список доменных имён которые ассоциированы с этим адресом.\\ | Список доменных имён которые ассоциированы с этим адресом.\\ | ||
Данная подсекция может быть как в HTTP, тогда она применяется ко всем подсекциям в bindList, так и в отдельной подсекции bind, тогда заданные имена будут считатся локальными только для клиентов которые подключились на указанный в bind адрес. | Данная подсекция может быть как в HTTP, тогда она применяется ко всем подсекциям в bindList, так и в отдельной подсекции bind, тогда заданные имена будут считатся локальными только для клиентов которые подключились на указанный в bind адрес. | ||
- | === hostname === | + | ==== hostname |
Доменное имя или " | Доменное имя или " | ||
IP адреса проверяются автоматически, | IP адреса проверяются автоматически, | ||
Line 187: | Line 185: | ||
---- | ---- | ||
- | ===== limits ===== | + | ====== limits |
Лимиты применяемые к параметрам в URL запросов клиентов. См [[software: | Лимиты применяемые к параметрам в URL запросов клиентов. См [[software: | ||
Line 197: | Line 195: | ||
</ | </ | ||
- | ==== precacheMin, | + | ===== precacheMin, |
В килобайтах, | В килобайтах, | ||
Ограничивает значение [[software: | Ограничивает значение [[software: | ||
- | ==== sndBlockSizeMin, | + | ===== sndBlockSizeMin, |
В килобайтах, | В килобайтах, | ||
Минимальное значение 0, но на самом деле они ограничено параметром rcvLowat источника.\\ | Минимальное значение 0, но на самом деле они ограничено параметром rcvLowat источника.\\ | ||
Line 211: | Line 209: | ||
---- | ---- | ||
- | ===== hubProfileList, | + | ====== hubProfileList, |
hubProfileList содержит список шаблонов настроек Stream Hub - hubProfile, каждому hubProfile присваивается уникальное имя. | hubProfileList содержит список шаблонов настроек Stream Hub - hubProfile, каждому hubProfile присваивается уникальное имя. | ||
Line 248: | Line 246: | ||
</ | </ | ||
- | ==== name ==== | + | ===== name ===== |
Уникальное имя для hubProfile. | Уникальное имя для hubProfile. | ||
- | ==== fZeroCliPersistent ==== | + | ===== fZeroCliPersistent |
Продолжать работать даже если все клиенты отключились. Для каналов заданных в конфиге всегда выставлен. Если флаг не выставлен то хаб уничтожается по истечении времени [[software: | Продолжать работать даже если все клиенты отключились. Для каналов заданных в конфиге всегда выставлен. Если флаг не выставлен то хаб уничтожается по истечении времени [[software: | ||
- | ==== fZeroSrcBitratePersistent ==== | + | ===== fZeroSrcBitratePersistent |
Продолжать работать даже если все источники ничего не вещают. Для каналов заданных в конфиге всегда выставлен. | Продолжать работать даже если все источники ничего не вещают. Для каналов заданных в конфиге всегда выставлен. | ||
- | ==== fPrecacheWait ==== | + | ===== fPrecacheWait |
Ожидать пока в кольцевом буфере накопится заданное в precache параметре конфига/ | Ожидать пока в кольцевом буфере накопится заданное в precache параметре конфига/ | ||
Используется чтобы гарантировать что только что подключённый клиент сможет сразу получить указанное количество данных. | Используется чтобы гарантировать что только что подключённый клиент сможет сразу получить указанное количество данных. | ||
- | ==== fUsePollingForSend ==== | + | ===== fUsePollingForSend |
Добавлять сокет клиента в kqueue/ | Добавлять сокет клиента в kqueue/ | ||
Клиенты в kqueue/ | Клиенты в kqueue/ | ||
Обычно это случается во время отправки прекеша, | Обычно это случается во время отправки прекеша, | ||
- | ==== fDropSlowClients ==== | + | ===== fDropSlowClients |
Отключать клиентов которые медленно принимают данные. | Отключать клиентов которые медленно принимают данные. | ||
Если флаг выключен то клиентам будет пере запускаться вещание с пропуском/ | Если флаг выключен то клиентам будет пере запускаться вещание с пропуском/ | ||
- | ==== fMPEG2TSAnalyzing ==== | + | ===== fMPEG2TSAnalyzing |
Форсировать выставление флага для всех источников данного хаба. Если флаг выставлен то поток MPEG2-TS подвергается анализу: | Форсировать выставление флага для всех источников данного хаба. Если флаг выставлен то поток MPEG2-TS подвергается анализу: | ||
Так же этот флаг выключает отсылку всех служебных MPEG2-TS данных новым клиентам перед отправкой данных из кольцевого буфера, | Так же этот флаг выключает отсылку всех служебных MPEG2-TS данных новым клиентам перед отправкой данных из кольцевого буфера, | ||
Побочный эффект: | Побочный эффект: | ||
- | ==== fSocketHalfClosed ==== | + | ===== fSocketHalfClosed |
Вызывать shutdown(SHUT_RD) для клиентов.\\ | Вызывать shutdown(SHUT_RD) для клиентов.\\ | ||
Явно указывает клиенту что больше данные передавать на сервер нельзя.\\ | Явно указывает клиенту что больше данные передавать на сервер нельзя.\\ | ||
Некоторые клиенты ошибочно принимают за закрытие соединения и отключаются. | Некоторые клиенты ошибочно принимают за закрытие соединения и отключаются. | ||
- | ==== fSocketTCPNoDelay ==== | + | ===== fSocketTCPNoDelay |
Выставлять TCP_NODELAY флаг на сокет клиента. | Выставлять TCP_NODELAY флаг на сокет клиента. | ||
- | ==== fSocketTCPNoPush ==== | + | ===== fSocketTCPNoPush |
Выставлять TCP_NOPUSH FreeBSD / TCP_CORK Linux флаг на сокет клиента. | Выставлять TCP_NOPUSH FreeBSD / TCP_CORK Linux флаг на сокет клиента. | ||
- | ==== fZeroCopyOnSend ==== | + | ===== fZeroCopyOnSend ===== |
+ | ZCoS\\ | ||
Использовать sendfile() вместо sendmsg().\\ | Использовать sendfile() вместо sendmsg().\\ | ||
Использование sendfile() позволяет уменьшить нагрузку на процессор при отправке данных клиентам за счёт уменьшения количества операций копирования, | Использование sendfile() позволяет уменьшить нагрузку на процессор при отправке данных клиентам за счёт уменьшения количества операций копирования, | ||
- | см так же [[software: | + | см так же [[software: |
+ | Эффект особенно заметен на качественный сетевых адаптерах с включённым offloading опциями. | ||
- | ==== flagMergeSources ==== | + | ===== flagMergeSources |
Экспериментальная возможность объединения потоков разных источников с целью коррекции ошибок, | Экспериментальная возможность объединения потоков разных источников с целью коррекции ошибок, | ||
- | ==== ringBufSize ==== | + | ===== ringBufSize |
В килобайтах, | В килобайтах, | ||
- | ==== ringBufStorePath ==== | + | ===== ringBufStorePath |
Путь к файлам где хранить файлы с содержимым кольцевого буфера.\\ | Путь к файлам где хранить файлы с содержимым кольцевого буфера.\\ | ||
Актуально только когда выставлен флаг [[software: | Актуально только когда выставлен флаг [[software: | ||
Line 303: | Line 303: | ||
Рекомендуется хранить файлы в tmpfs.\\ | Рекомендуется хранить файлы в tmpfs.\\ | ||
- | === Особенности === | + | ==== Особенности |
Если msd аварийно завершился то требуется ручное удаление файлов кольцевых буферов, | Если msd аварийно завершился то требуется ручное удаление файлов кольцевых буферов, | ||
Line 313: | Line 313: | ||
- | ==== zeroCliTimeout ==== | + | ===== zeroCliTimeout |
В секундах, | В секундах, | ||
- | ==== errorRateInterval ==== | + | ===== errorRateInterval |
В секундах, | В секундах, | ||
- | ==== errorRateMax ==== | + | ===== errorRateMax |
Форсировать выставление максимального количества ошибок если задан флаг [[software: | Форсировать выставление максимального количества ошибок если задан флаг [[software: | ||
- | ==== precache ==== | + | ===== precache |
В килобайтах, | В килобайтах, | ||
Так же [[software: | Так же [[software: | ||
Имеет [[software: | Имеет [[software: | ||
- | ==== sndBlockSize ==== | + | ===== sndBlockSize |
В килобайтах, | В килобайтах, | ||
Так же [[software: | Так же [[software: | ||
[[software: | [[software: | ||
- | ==== skt ==== | + | ===== skt ===== |
Настройки клиентских сокетов | Настройки клиентских сокетов | ||
- | === sndBuf === | + | ==== sndBuf |
Максимальный размер буфера для отправки клиенту (SO_SNDBUF). | Максимальный размер буфера для отправки клиенту (SO_SNDBUF). | ||
- | === sndTimeout === | + | ==== sndTimeout |
Таймаут отправки данных клиенту. | Таймаут отправки данных клиенту. | ||
- | === congestionControl === | + | ==== congestionControl |
TCP Congestion Control Algoritm. (TCP_CONGESTION) Алгоритм контроля перегрузки канала в TCP.\\ | TCP Congestion Control Algoritm. (TCP_CONGESTION) Алгоритм контроля перегрузки канала в TCP.\\ | ||
Позволяет выжать максимум из канала при передаче клиенту.\\ | Позволяет выжать максимум из канала при передаче клиенту.\\ | ||
Line 347: | Line 347: | ||
[[software: | [[software: | ||
- | ==== headersList ==== | + | ===== headersList |
- | === header === | + | ==== header |
Дополнительный HTTP заголовок и его значение добавляемые перед отправкой клиенту данных из кольцевого буфера.\\ | Дополнительный HTTP заголовок и его значение добавляемые перед отправкой клиенту данных из кольцевого буфера.\\ | ||
Такие заголовки требуются некоторым UPnP/DLNA клиентам для работы. | Такие заголовки требуются некоторым UPnP/DLNA клиентам для работы. | ||
Line 355: | Line 355: | ||
---- | ---- | ||
- | ===== sourceProfileList, | + | ====== sourceProfileList, |
sourceProfileList содержит список шаблонов настроек источников потока - sourceProfile, | sourceProfileList содержит список шаблонов настроек источников потока - sourceProfile, | ||
Line 408: | Line 408: | ||
</ | </ | ||
- | ==== name ==== | + | ===== name ===== |
Уникальное имя для sourceProfile. | Уникальное имя для sourceProfile. | ||
- | ==== fMPEG2TSAnalyzing ==== | + | ===== fMPEG2TSAnalyzing |
Если флаг выставлен то поток MPEG2-TS подвергается анализу. [[software: | Если флаг выставлен то поток MPEG2-TS подвергается анализу. [[software: | ||
- | ==== ringBufSize ==== | + | ===== ringBufSize |
В килобайтах, | В килобайтах, | ||
- | ==== errorRateInterval ==== | + | ===== errorRateInterval |
В секундах, | В секундах, | ||
- | ==== errorRateMax ==== | + | ===== errorRateMax |
Максимальное количество ошибок за интервал времени если задан флаг [[software: | Максимальное количество ошибок за интервал времени если задан флаг [[software: | ||
- | ==== skt ==== | + | ===== skt ===== |
Настройки принимающего сокета источника. | Настройки принимающего сокета источника. | ||
- | === rcvBuf === | + | ==== rcvBuf |
Максимальный размер буфера для приёма (SO_RCVBUF). | Максимальный размер буфера для приёма (SO_RCVBUF). | ||
- | === rcvLowat === | + | ==== rcvLowat |
Минимальный размер данных в буфере сокета для начала считывания в кольцевой буфер и анализа (если задан флаг [[software: | Минимальный размер данных в буфере сокета для начала считывания в кольцевой буфер и анализа (если задан флаг [[software: | ||
- | На Linux данный параметр игнорируется и чтение для udp осуществляется по пакетно, | + | На Linux данный параметр игнорируется |
- | + | Для tcp чтение осуществляется | |
- | === rcvTimeout === | + | Для Linux данный параметр реализован в программе, |
+ | ==== rcvTimeout | ||
Таймаут приёма данных, | Таймаут приёма данных, | ||
- | ==== udp ==== | + | ===== udp ===== |
Настройки и информация для подключения UDP источника. | Настройки и информация для подключения UDP источника. | ||
- | === address === | + | ==== address |
IPv4Address: | IPv4Address: | ||
- | ==== multicast ==== | + | ===== multicast |
Настройки и информация для подключения multicast источника. Так же должны присутствовать настройки для UDP. | Настройки и информация для подключения multicast источника. Так же должны присутствовать настройки для UDP. | ||
- | === ifName === | + | ==== ifName |
Имя интерфейса для подписки на multicast. Используется как значение по умолчанию. | Имя интерфейса для подписки на multicast. Используется как значение по умолчанию. | ||
- | ==== tcp ==== | + | ===== tcp ===== |
Настройки и информация для подключения TCP источника. | Настройки и информация для подключения TCP источника. | ||
- | === remonteHostname === | + | ==== remonteHostname |
IPv4Address: | IPv4Address: | ||
- | === connectTimeout === | + | ==== connectTimeout |
В секундах, | В секундах, | ||
- | === reconnectInterval === | + | ==== reconnectInterval |
В секундах, | В секундах, | ||
- | === reconnectCount === | + | ==== reconnectCount |
Количество попыток подключения. | Количество попыток подключения. | ||
- | === fSocketHalfClosed === | + | ==== fSocketHalfClosed |
Использовать полу закрытые соединения (Half Closed Connections).\\ | Использовать полу закрытые соединения (Half Closed Connections).\\ | ||
Вызывать shutdown(SHUT_WR) сразу после: подключения (для TCP) / отправки запроса (HTTP).\\ | Вызывать shutdown(SHUT_WR) сразу после: подключения (для TCP) / отправки запроса (HTTP).\\ | ||
Line 469: | Line 470: | ||
Некоторые реализации HTTP серверов и HTTP прокси не поддерживают полу закрытые соединения. | Некоторые реализации HTTP серверов и HTTP прокси не поддерживают полу закрытые соединения. | ||
- | ==== http ==== | + | ===== http ===== |
Настройки и информация для подключения HTTP источника. Так же должны присутствовать настройки для TCP. | Настройки и информация для подключения HTTP источника. Так же должны присутствовать настройки для TCP. | ||
- | === urlPath === | + | ==== urlPath |
Строка для GET запроса: | Строка для GET запроса: | ||
- | === headersList === | + | ==== headersList |
Дополнительные HTTP заголовки и их значения добавляемые в запрос. | Дополнительные HTTP заголовки и их значения добавляемые в запрос. | ||
---- | ---- | ||
- | ===== streamProxy ===== | + | ====== streamProxy |
Настройки динамически генерируемых стрим хабов. | Настройки динамически генерируемых стрим хабов. | ||
См [[software: | См [[software: | ||
Line 502: | Line 503: | ||
</ | </ | ||
- | ==== Общие настройки динамических Stream Hub ==== | + | ===== Общие настройки динамических Stream Hub ===== |
Эти настройки одинаковые для всех динамических Stream Hub. | Эти настройки одинаковые для всех динамических Stream Hub. | ||
- | === fEnable === | + | ==== fEnable |
Разрешить использование динамическим прокси. | Разрешить использование динамическим прокси. | ||
- | === hubProfileName === | + | ==== hubProfileName |
Имя профиля с настройками Stream Hub, см [[software: | Имя профиля с настройками Stream Hub, см [[software: | ||
- | === sourceProfileName === | + | ==== sourceProfileName |
Имя профиля с настройками источника, | Имя профиля с настройками источника, | ||
---- | ---- | ||
- | ===== channelList ===== | + | ====== channelList |
В секции содержится описание каналов (Stream Hub + источники).\\ | В секции содержится описание каналов (Stream Hub + источники).\\ | ||
Описание каналов может быть вынесено во множество внешних файлов. | Описание каналов может быть вынесено во множество внешних файлов. | ||
Line 566: | Line 567: | ||
</ | </ | ||
- | ==== includeFile ==== | + | ===== includeFile |
путь к файлу с каналами. Параметр не обязательный. Можно использовать много раз для загрузки каналов из множества файлов. | путь к файлу с каналами. Параметр не обязательный. Можно использовать много раз для загрузки каналов из множества файлов. | ||
- | ==== channel ==== | + | ===== channel |
Описание канала.\\ | Описание канала.\\ | ||
Включается в себя Stream Hub и как минимум один источник.\\ | Включается в себя Stream Hub и как минимум один источник.\\ | ||
Line 582: | Line 583: | ||
- | === name === | + | ==== name ==== |
Уникальное имя канала.\\ | Уникальное имя канала.\\ | ||
По этому имени клиенты будут подключатся к Stream Hub.\\ | По этому имени клиенты будут подключатся к Stream Hub.\\ | ||
Line 590: | Line 591: | ||
Рекомендую использовать окончание " | Рекомендую использовать окончание " | ||
- | === hubProfileName === | + | ==== hubProfileName |
Имя шаблона настроек Stream Hub, см [[software: | Имя шаблона настроек Stream Hub, см [[software: | ||
- | === sourceList, source === | + | ==== sourceList, source |
Список настроек источников потока.\\ | Список настроек источников потока.\\ | ||
Настройки источника потока.\\ | Настройки источника потока.\\ | ||
Line 604: | Line 605: | ||
Флаги не могут быть сброшены, | Флаги не могут быть сброшены, | ||
- | == type == | + | === type === |
Тип источника потока, | Тип источника потока, | ||
* udp | * udp | ||
Line 614: | Line 615: | ||
* tcp-http-hls - не реализовано | * tcp-http-hls - не реализовано | ||
- | == sourceProfileName == | + | === sourceProfileName |
Имя шаблона источника потока, | Имя шаблона источника потока, | ||