каскадное обрушение CDN

Oleg.D

New Member
подскажите пожалуйта что это может быть?

мы настроили простенькую тестовую ЦДН с упором на транскодинг

Code:
[origin 2CPU 4GB ram]
  \
   \-> #1 [transcoder 24cpu 64ram]  -->\
    \-> #2 [transcoder 24cpu 64ram]  -->\
                                         \--> [edge 8cpu 16ram]


и запустили не более 16 стримов на вход через РТМП.

а на выходе хотели получить многообразие форматов, несколько видов HLS, RTMP, WEBRTC.
все потоки читались исключительно через "профили транскодирования"

и буквально через несколько минут после запуска чтения из egde,
упали оба транскодера, и что удивительно за ними ушел и origin.

то что они упали сами , говорит статус выхода. signal=ABRT


Loaded: loaded (/etc/systemd/system/webcallserver.service; enabled; vendor preset: enabled)
Active: failed (Result: signal) since Mon 2019-04-15 14:37:26 UTC; 1h 3min ago
Process: 14909 ExecStop=/bin/bash webcallserver stop (code=exited, status=0/SUCCESS)
Process: 15002 ExecStart=/bin/bash webcallserver start (code=killed, signal=ABRT)
Main PID: 15002 (code=killed, signal=ABRT)

и вот от другого
Loaded: loaded (/etc/systemd/system/webcallserver.service; enabled; vendor preset: enabled)
Active: failed (Result: signal) since Mon 2019-04-15 14:57:54 UTC; 43min ago
Process: 2306 ExecStop=/bin/bash webcallserver stop (code=exited, status=0/SUCCESS)
Process: 2398 ExecStart=/bin/bash webcallserver start (code=killed, signal=ABRT)
Main PID: 2398 (code=killed, signal=ABRT)

--------------------------
в логах транскодера последние строки такие:
x14:37:26,340 ERROR WCSAgent - API-ASYNC-pool-12-thread-27 e02cda4d-a8e4-46ee-b7cb-057b3d3b4021 Stream local failed x
x14:37:26,340 INFO WCSAgent - API-ASYNC-pool-12-thread-27 Agent ws://ИП.ИП.ИП.ИП:8080/websocket-e02cda4d-a8e4-46ee-b7cb-057b3d3b4021 changed state to FAILED x
x14:37:26,340 ERROR WCSAgent - API-ASYNC-pool-12-thread-32 b24ca663-336f-4f62-a578-a168e9a78735 Stream local failed x
x14:37:26,340 INFO WCSAgent - API-ASYNC-pool-12-thread-32 Agent ws://ИП.ИП.ИП.ИП:8080/websocket-b24ca663-336f-4f62-a578-a168e9a78735 changed state to FAILED

в логах ориджина, есть записи что он не может сконтачится с транскодерами, и затем логи тоже обрываются.





вы не подскажете в чем может быть дело?....
нам бы конечно хотелось использовать WCS для CDN.
ведь в целом WCS по функционалу устраивает,
но вот такая нестабильность не годится.
 

Max

Administrator
Staff member
Скорее всего транскодеры скрэшились на транскодировании и утянули за собой другие серверы.
Пришлите SSH доступы ко всем серверам CDN, проверим настройки и логи.
Если с отправкой доступов проблема, пришлите папку logs и conf с каждого сервера. Если файлы слишком большие, пришлите ссылку на скачивание.
support@flashphoner.com

Сейчас готовим несколько обновлений по транскодерам и балансировке транскодеров. Если пришлете данные, сможем включить ваши настройки в сценарии тестирования.
Транскодинг - ноды были введены не так давно. Поэтому на отдельных конфигурациях возможны крэши. Работаем над стабилизацией.

а на выходе хотели получить многообразие форматов, несколько видов HLS, RTMP, WEBRTC
Эти форматы не требуют транскодинга. Разве что для более качественной нарезки HLS.
Т.е. получить на выходе HLS, RTMP, WebRTC можно и без Транскодинг-нод в CDN. И далее аккуратно вводить Транскодинг-ноды для конкретных целей.

Обновление по транскодерам должно выйти на днях. По результатам отпишем.
 

Oleg.D

New Member
Отправил письмо с сылкой.
"Эти форматы не требуют транскодинга. Разве что для более качественной нарезки HLS."
да, я не совсем правильно выразился не форматы как таковые,
а разные битрейты и разрешения, вот что мы хотим получить на выходе.


те логи что я прислал, заканчиваются ровно там где рухнули сервера они не перезапускались, так что вы сможете
увидет ту самую "конечную картину" как они остановились.

origin - упал
tr1, tr2 - упал
edge - продолжил работу.

вот в таком виде логи и были собраны как есть.
 

Max

Administrator
Staff member
Спасибо, отчеты получили.
В логах информация по крэшам отсутствует.
Это может указывать на то, что процесс сервера был убит OOM киллером.
Проверьте пожалуйста логи /var/log/messages на T1 и T2 серверах.
У вас в настройках wcs-core.properties
Code:
-Xmx32g
Это теоретически может вывести использование общей памяти за 64g под нагрузками. Если процесс был убит системой, можно попробовать выставить -Xmx16g и контроллировать RES память через 'top' или другую программу. Проверим транскодеры на утечки со своей стороны.
По результатам отпишем.
 

Oleg.D

New Member
вот что нашлось для
tr1

специально привожу записи вокруг падения:

Apr 15 14:54:56 cs2413 ntpd[3497]: Soliciting pool server 2001:67c:1560:8003::c7
Apr 15 14:55:01 cs2413 CRON[5412]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Apr 15 14:55:36 cs2413 kernel: [25852157.776589] [UFW BLOCK] IN=eth0 OUT= MAC=00:25:90:c9:3a:20:00:d0:01:27:3c:00:08:00
Apr 15 14:55:51 cs2413 kernel: [25852173.097993] [UFW BLOCK] IN=eth1 OUT= MAC=33:33:00:00:00:01:00:22:19:57:1c:13:86:dd
Apr 15 14:55:51 cs2413 kernel: [25852173.109707] [UFW BLOCK] IN=eth1 OUT= MAC=01:00:5e:00:00:01:00:22:19:57:1c:13:08:00
Apr 15 14:55:55 cs2413 kernel: [25852176.893000] [UFW BLOCK] IN=eth0 OUT= MAC=00:25:90:c9:3a:20:00:d0:02:fe:a8:00:08:00
Apr 15 14:56:03 cs2413 ntpd[3497]: Soliciting pool server 91.189.94.4
Apr 15 14:57:08 cs2413 ntpd[3497]: Soliciting pool server 91.189.89.198
Apr 15 14:57:14 cs2413 kernel: [25852256.304065] [UFW BLOCK] IN=eth0 OUT= MAC=00:25:90:c9:3a:20:00:d0:02:fe:a8:00:08:00
Apr 15 14:57:43 cs2413 kernel: [25852284.578563] [UFW BLOCK] IN=eth0 OUT= MAC=00:25:90:c9:3a:20:00:d0:01:27:3c:00:08:00
Apr 15 14:57:54 cs2413 systemd[1]: webcallserver.service: Main process exited, code=killed, status=6/ABRT
Apr 15 14:57:54 cs2413 systemd[1]: webcallserver.service: Failed with result 'signal'.
Apr 15 14:57:56 cs2413 kernel: [25852298.100194] [UFW BLOCK] IN=eth1 OUT= MAC=33:33:00:00:00:01:00:22:19:57:1c:13:86:dd
Apr 15 14:57:56 cs2413 kernel: [25852298.101315] [UFW BLOCK] IN=eth1 OUT= MAC=01:00:5e:00:00:01:00:22:19:57:1c:13:08:00
Apr 15 14:58:12 cs2413 ntpd[3497]: Soliciting pool server 91.189.89.199


на тр2

Apr 15 14:36:56 cs2406 ntpd[26971]: Soliciting pool server 69.195.142.11
Apr 15 14:37:14 cs2406 ntpd[26971]: Soliciting pool server 184.60.28.49
Apr 15 14:37:16 cs2406 ntpd[26971]: Soliciting pool server 45.79.111.114
Apr 15 14:37:26 cs2406 systemd[1]: webcallserver.service: Main process exited, code=killed, status=6/ABRT
Apr 15 14:37:26 cs2406 systemd[1]: webcallserver.service: Failed with result 'signal'.
Apr 15 14:37:35 cs2406 ntpd[26971]: Soliciting pool server 2600:3c00::e:d0bb
Apr 15 14:37:35 cs2406 ntpd[26971]: Soliciting pool server 91.189.91.157
Apr 15 14:37:50 cs2406 kernel: [1625550.257634] [UFW BLOCK] IN=eth0 OUT= MAC=00:25:90:c9:3b:50:00:d0:02:fe:a8:00:08:00
Apr 15 14:38:01 cs2406 ntpd[26971]: Soliciting pool server 192.111.144.114

======================================

кстати, а не может ли поправки NTP валить сервер?.
я просто вспомнил что однажды мы видели чудесный баг у Wowza, когда она вылетала во время транскодинга
если в это же время происходили "скачки времени" изза того что ntpd решило поправить часы. и возвращало время на доли секунд в прошлое.
 

Max

Administrator
Staff member
Когда сервер падает из-за транскодинга, он пишет в логи файл WCS_HOME/logs/errorPID.log
В данном же случае, процесс был прибит чем-то внешним.
Попробуйте найти "OOM kill" в логах. Если найдется, то процесс был остановлен по памяти. Если нет, то что-то другое.
Code:
Oct 25 07:28:04 nldedip4k031 kernel: [87946.529511] oom_kill_process: 9 callbacks suppressed
Oct 25 07:28:04 nldedip4k031 kernel: [87946.529514] irqbalance invoked oom-killer: gfp_mask=0x80d0, order=0, oom_adj=0, oom_score_adj=0
Oct 25 07:28:04 nldedip4k031 kernel: [87946.529516] irqbalance cpuset=/ mems_allowed=0
 

Max

Administrator
Staff member
Добрый день.
В сборке 5.2.88 содержится фикс, предотвращающий падения сервера из-за транскодинга. Пожалуйста, обновитесь и проверьте, воспроизводится ли проблема.
 

Oleg.D

New Member
хорошо, сейчас поставлю новую версию.
кстати в логах нет никаких следов OOM

также, я отправил вам письмо с доступами к серверам. так что сами можете глянуть.
 

Oleg.D

New Member
на новой версии 5.2.88 оно проработало несколько дней, и затем все равно упало.
в этот раз Origin + Tr2, a другой транскодер остался цел.

сразу после падения до перезапуска, я сделал архивы-копии логов и конфига.
отправлю доступ к логам и серверам письмом на support.
 

Max

Administrator
Staff member
Пока не понятно где произошол выход сервера.
Явных сообщений в логах нет. Проверяем кодек OpenH.264. Если с ним все в порядке, порекомендуем его в транскодерах.
 

Max

Administrator
Staff member
Рекомендации по настройкам для использования OpenH264 в CDN
- на всех серверах установить
Code:
decoder_priority=OPENH264,FF
encoder_priority=OPENH264,FF
- на Origin-серверах включить periodic_fir_request (иначе при воспроизведении WebRTC видео может появиться с задержкой)
Code:
periodic_fir_request=true
и при необходимости уменьшить periodic_fir_request_interval (по умолчанию 5000 - 5 секунд)
Code:
periodic_fir_request_interval=1000
- на Edge-серверах в профилях в cdn_profiles.yml codecImpl должно быть OPENH264 (или не указано)
Code:
codecImpl : OPENH264
 
Top