Сервер лег под нагрузкой

Добрый день, подскажите, плиз. Есть ситуация - сервер лег под нагрузкой в 300 человек, т.е. тупо перестал отображать стрим у всех кто был свыше. При это загрузка проца в среднем 20-30% на каждый камень из 24, оперативы забито было гиг 6 из 80.

от конфиги сервера, подскажите, что могло к такому привести?

#Config

ws.port =8080

wss.port =8443
#File will be located in conf directory
wss.keystore.file =wss.jks
wss.keystore.password =password
wss.cert.password =password

rtmp.port =1935
rtmfp.port =1935

#keep_alive_algorithm may be INTERNAL, NONE, HIGH_LEVEL
keep_alive.algorithm =HIGH_LEVEL
keep_alive.peer_interval =20000
keep_alive.server_interval =50000
keep_alive.probes =10
keep_alive_streaming_sessions_enabled =true
send_receive_buffer_size = 1600

#Reliability: on, partial, off
video_reliable =partial
audio_reliable =partial

audio_frames_per_packet =6
burst_avoidance_count =100
flush_audio_interval =80
flush_video_interval =80


port_from =30000
port_to =31000
media_port_from =31001
media_port_to =32000
waiting_answer =60
user_agent =Flashphoner/1.0
balance_header =balance
cost_header =cost
video_enabled =true
domain =
outbound_proxy =
outbound_port =
log_level =5
enable_context_logs =false
rtp_activity_detecting =true,60
sip_msg_listener =com.flashphoner.sdk.sip.ChangeCallIdListener
call_record_listener =com.flashphoner.server.client.DefaultCallRecordListener
dtmf =rfc2833
auto_login_url =/usr/local/FlashphonerWebCallServer/conf/account.xml
get_callee_url =/usr/local/FlashphonerWebCallServer/conf/callee.xml
#codecs =opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,h264,vp8,flv,mpv
codecs =opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,vp8,h264,flv,mpv
codecs_exclude_sip =mpeg4-generic,flv,mpv
codecs_exclude_streaming =flv,telephone-event
codecs_exclude_sip_rtmp =opus,g729,g722,mpeg4-generic,vp8,mpv
on_record_hook_script =on_record_hook.sh
#rtmp_transponder_stream_name_prefix =rtmp_
webrtc_cc_min_bitrate=30000
webrtc_cc_max_bitrate=400000
webrtc_cc2 = true
webrtc_cc2_сс = false
webrtc_cc2_bitrate_overuse_event_threshold=0.05
webrtc_cc2_min_remb_bitrate_bps =100000
#streaming_video_decoder_fast_start=false
record_flash_published_streams =true
#audio_incoming_buffer_size =10 # def is 50
#video_incoming_buffer_size =10 # def is 50
 

Max

Administrator
Staff member
Добрый день. Необходимы логи сервера, чтобы расследовать причину. Вышлите запакованную папку logs нам на logs@flashphoner.com.
 
Подскажите, а можно ли кинуть вам доступ к серваку? Просто папка логс больше 30 гигов в архиве(
 
Апд: Упирается в 246 в канале коннектов и далее падает с Unexpected error. Как исправить?
 
Если поможет - могу дать дать доступ к свежему серверу, вчера как раз взял конский сервер и купил у вас еще инстанс, поставил - в итоге загрузка сервера менее 10%, дошло до 246 и все. Там логи только за 1 день, как раз с падением.
 

Aleksey

New Member
Есть какая-то информация по этой проблеме?

Столкнулись с аналогичной проблемой во время нагрузочного тестирования.
Проверяем работу цепочки origin -> edge. Через webrtc вещаем на origin и через webrtc забираем с edge.

В тесте участвуют 3 физических сервера, на каждом гигабитный внешний интерфейс и 12 виртуалок из Amazon.
Через nc сервер отдает 1гигабит, во время нагрузочного тестирования ~400мегабит = около 300 подключений.
Когда утилизация исходящего канала приближается к 400мегабитам, в логах(flashphoner_manager.log) появляются сообщения NOT_ENOUGH_BANDWIDTH, после чего просмотр начинает жутко лагать.

Конфигурация EDGE:
- 48 x E5-2650 v4 @ 2.20GHz
- 64GB ram
- 2TB raid 1 sata

cpu нагружен меньше 5%, памяти использовано 16GB, диски не нагружны, iowait не растет.
 

Max

Administrator
Staff member
Что такое nc?
Сообщение NOT_ENOUGH_BANDWIDTH говорит о появлении потерь на канале.
Т.е. пакеты от сервера к принимающему не влезают в канал между сервером и принимающим, в результате теряются. Далее идут потери кадров на просмотре.

Следующие настройки должны помочь улучшить результаты тестов
wcs-core.properties
Code:
-Xmx8g -Xms4g
flashphoner.properties
Увеличиваем диапазон портов.
Code:
media_port_from=31000
media_port_to=41000
Включаем VP8 кодек в приоритет:
Code:
codecs=opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,vp8,h264,flv,mpv
 

Aleksey

New Member
nc - netcat(speed test - https://jbowes.wordpress.com/2010/10/13/measuring-network-speeds-with-netcat-and-dd/)

Во время тестирования у нас уже стояли эти настройки:
wcs-core.properties:
-Xms32768M -Xmx49152M

flashphoner.properties:
media_port_from = 41001
media_port_to = 55000

Попробовали с vp8, вместо h264 - уменьшилось кол-во трафика почти в 2 раза, но если поднакинуть коннектов, то после 300мегабит начинаются такие же проблемы, в логах появляются сообщения NOT_ENOUGH_BANDWIDTH

 

Aleksey

New Member
скрины nc тестов:
flashphoner edge -> сервер нагрузочного тестирования
сервер нагрузочного тестирования -> flashphoner edge

У нас есть сервера с 10Gbps, на них wowza в пиках держит 4к подключений, с утилизацией исходящего в 2Gbps(rtmp).
Мы хотим отказаться от flash, в пользу webrtc, но судя по тесту, сервер ляжет под такой нагрузкой.
Учитывая, что утилизация сервера чуть меньше чем ничего, проблема где-то в настройках, помогите найти bottleneck.
 

Attachments

Max

Administrator
Staff member
Добрый день.
Попробуем повторить тест на собственных серверах в гигабитной сети. Если выявим похожие проблемы, сообщим.
Если у вас есть 2 железных сервера, свободных для тестирования, можем провести несколько тестов на них. Доступ можно отправить на logs@flashphoner.com
 

Max

Administrator
Staff member
В тесте участвуют 3 физических сервера, на каждом гигабитный внешний интерфейс и 12 виртуалок из Amazon.
Не понятно как связаны физические серверы и Amazon.
Серверы Amazon дают нагрузку?

В остальном понятно. Попробуем воспроизвести проблему.
 

Aleksey

New Member
да, на виртуалках запускается chrome headless и воспроизводит стрим
 

Max

Administrator
Staff member
Ушли с ваших серверов. Пока тестируем на своих.
На своих пока получилось разогнать до 600 Mbps с настройками wcs-core.properties
Code:
-XX:+UseConcMarkSweepGC
-XX:NewSize=512m
Планируем сделать несколько оптимизаций.
 
Top