A. Решение проблем и рекомендации¶
Компания «Майкроимпульс» оказывает услуги профессиональной технической поддержки по проектам, включая услуги по администрирования и настройке серверов Smarty, порталов, систем управления БД, а также осуществляет настройку репликации данных, балансировки нагрузки, кеширования, резервирования и прочее.
Подробную информацию о стоимости технической поддержки можно получить у своего менеджера.
Кроме того, задать свой вопрос или найти решение той или иной проблемы можно на официальном техническом сообществе http://forum.micro.im
A.1. Проблемы в работе сервера Middleware и сопутствующих системах и их решение¶
Не отображается список телеканалов на устройстве абонента¶
Возможные причины и решения:
- Для абонента/аккаунта не установлены тарифные пакеты, содержащие необходимый набор каналов и стриминг-сервисов.
- В составе подключенных для абонента/аккаунта тарифных пакетов не найдено ни одного доступного стриминг-сервиса.
- Кеш списка телеканалов пуст, необходимо выполнить команду cache_channel_list, см. в Кеширование списка телеканалов.
- После установки обновления не выполнена команда flushall, что привело к порче кеша. См. в Установка обновлений Smarty.
В работе приложения у абонента возникают ошибки и/или при включении приставки возникает ошибка авторизации¶
Возможные причины и решения:
- После установки обновления не выполнена команда flushall, что привело к порче кеша. См. в Установка обновлений Smarty.
- Если используется единственный сервер Redis и в директории для сохранения дампа закончилось место, то это может приводить к ошибкам «MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk». Необходимо освободить свободное место и отключить опцию stop-writes-on-bgsave-error, см. в Настройка кеширования.
В телепрограмме на устройстве абонента не отображаются значки доступности записи телепередач¶
Проблема: при включенном и настроенном сервисе PVR абоненту недоступно включение передач из записи.
Возможные причины и решения:
- Для абонента/аккаунта не установлен тарифный пакет, содержащий соответствующий и доступный стриминг-сервис.
- Созданы технические работы, затрагивающие работу сервиса, см. в Технические работы.
Высокая нагрузка на CPU на сервере MongoDB¶
Проблема: потребление CPU на сервере MongoDB близко к 100% по всем ядрам, недоступны отчеты телесмотрения.
Возможные причины и решения:
- Сервер MongoDB запущен без поддержки NUMA (такое также может быть при использовании виртуализации). Решение: https://docs.mongodb.com/manual/administration/production-notes/#mongodb-and-numa-hardware
- В процессе установки Smarty и настройки сервера MongoDB не были добавлены индексы. Решение: запустить команду migrate, которая добавляет нужные индексы в настроенную БД MongoDB, см. в Установка обновлений Smarty.
В ходе установки обновления Smarty возник всплеск нагрузки на сервер Middleware и СУБД¶
Возможные причины и решения:
- Если в момент обновления планировщиком была запущена команда импорта EPG, то попытка выполнить команду flushall может привести к конфликту инвалидации объектов, т.к. один процесс их создает, а другой инвалидирует. Это может привести к массовой инвалидации объектов в кеше. Для предотвращения такой ситуации при установке обновления необходимо завершать фоновые команды epg_import и cache_channel_list. См. в Установка обновлений Smarty.
При массовом количестве абонентов возникает повышенная нагрузка на CPU и она не уменьшается¶
Возможные причины и решения:
- Недостаточно воркеров uwsgi или nginx. Необходимо провести оптимальную настройку сервера приложений и веб-сервера согласно общим рекомендациям под высокую нагрузку.
- Недостаточно оперативной памяти или CPU. См. в Системные требования. Временным решением проблемы может быть включение кеша nginx, для этого необходимо для наиболее частых запросов задействовать обработчик @cached в конфиге nginx, например:
location /tvmiddleware/api/channel/list/ {
try_files $uri @cached;
}
location /tvmiddleware/api/program/list/ {
try_files $uri @cached;
}
Периодически возникает всплек нагрузки на сеть на сервере Middleware¶
Возможные причины и решения:
- Включена опция «Включить автообновление данных без перезагрузки устройства» в настройках устройства (см. в Настройки STB и виджетов). Если данная нагрузка нежелательна, то необходимо отключить опицю. Тогда полный список телеканалов и EPG не будет осуществляться.
- При некорректной работе сети или использовании виртуализации может возникать ситуация задерживания пакетов в очередях, что при освобождении очереди может привести к всплеску запросов, и как следствие - к всплескам трафика. Необходимо устранить сетевые проблемы и обеспечить быструю передачу данных.
Некоторые страницы панели администратора открываются с существенной задержкой, также возникают задержки в работе устройств¶
Возможные причины и решения:
- Проверьте доступность сервера СУБД для сервера Smarty. Необходимо обеспечить минимальное время отклика для быстрой работы системы. Также может помочь отключение DNS resolving на сервере БД, например для MySQL: http://pe-kay.blogspot.ru/2011/08/problem-of-high-number-of.html)
Сервер приложений uwsgi не загружается, Smarty недоступна¶
Возможные причины и решения:
- Нет прав на запись для пользователя www-data в директорию /var/log/microimpuls или /var/log/microimpuls/smarty. Необходимо разрешить запись в эти директории.
- Другая причина - см. в логи /var/log/uwsgi/.
Команда импорта EPG epg_import останавливается, EPG не импортируется из панели администратора¶
Возможные причины и решения:
- Нет прав на запись в директорию /usr/share/nginx/html/microimpuls/smarty/media. Необходимо назначить пользователя и группу www-data на директорию smarty, выполнив команду: chown -R www-data:www-data /usr/share/nginx/html/microimpuls.
- Другая причина - см. в логи /var/log/microimpuls/smarty/smarty_epg.log.
В приложении абонента не отображаются иконки телеканалов и картинки передач¶
Возможные причины и решения:
- Некорректно установлено значение опции MEDIA_BASE_URL (см. в Описание основных параметров), либо некорректно настроен nginx. Для отладки необходимо открыть портал в браузере и с помощью инструментов разрабочика (например, Firebug) отследить запросы к картинкам.
В приложении абонента спустя некоторое время сбиваются часы и EPG¶
Возможные причины и решения:
- Если на устройстве используется синхронизация времени с NTP, то при разрыве соединения с NTP-серверов время может испортиться. Необходимо обеспечить корректную работу и доступность NTP-сервера. Время на сервере Middleware также должно быть синхронизировано со временем на серверах PVR.
Не работает опрос серверов MicroTS, возникают ошибки при взаимодействии Smarty с видео-серверами Microimpuls¶
Проблема: данные мониторинга не собираются, не отображается мониторинг транскодирования потоков, заданий записи и др.
Возможные причины и решения:
- Порт JSON-RPC API соответствующих сервисов недоступен для сервера Smarty. Необходимо обеспечить их доступность.
- Установлена неверная версия пакета python-jsonrpctcp. Необходимо установить пакет из репозитория Microimpuls, см. в Установка Smarty и модулей.
Сторонее приложение, использующее TVMiddleware API, не может получить доступ с другого домена из-за политики CORS¶
Возможные причины и решения:
- В файле конфигурации Smarty необходимо прописать исключение CORS для этого домена в опции CORS_ORIGIN_WHITELIST, тогда в заголовках HTTP для запросов с этого домена будут выданы необходимые разрешения. Пример: CORS_ORIGIN_WHITELIST = ( „example.com“, )
Не загружаются обложки и описание фильма с сервиса Кинопоиск¶
Возможные причины и решения:
- При частом использовании функции скачивания информации с сервиса Кинопоиск в панели администратора IP-адрес сервера Smarty может быть заблокирован системой защиты от ботов Кинопоиска. Для решения этой проблемы необходимо снизить активность запросов либо обратиться в службу технической поддержки сервиса Кинопоиск.
Медленно обрабатываются запросы к Billing API, медленно сохраняются изменения в панели администратора при редактировании тяжелых объектов¶
Возможные причины и решения:
- При длительной работе Smarty накапливает много данных в кэше для быстрой работы приложений. При редактировании данных администратором,
при обработке API-запросов от биллинга может возникнуть необходимость инвалидации данных по большому числу связанных объектов, что
вызывает длительную работу сервера для обработки такого запроса. Чтобы данные операции производились в фоновом режиме и не тормозили работу
необходимо включить поддержку потоков, установив опцию
enable-threads
в значениеtrue
в файле конфигурации uwsgi, после чего перезапустить uwsgi.
A.2. Рекомендации¶
Рекомендуемые параметры ядра¶
Изменения нужно вносить в файл /etc/sysctl.conf:
kernel.shmmax = 2473822720
kernel.shmall = 4097152000
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_default = 8388608
net.core.wmem_max = 16777216
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_keepalive_time = 10
net.ipv4.tcp_fin_timeout = 5
Затем выполнить команду для применения изменений:
sysctl -p