CPU загружен на 100%

Ras2607

Member
Здравствуйте!
Пользуюсь Вашим продуктом уже несколько лет.
Появилась новая проблема, которой раньше не было.

Версия 5.2.802

Периодически процессор забивается на 100%.
Процесс всего один - java под пользователем flashphoner
cpu на 100%, mem около 30-40%
при этом на сам сервер никакой дикой нагрузки не подается.
проводятся мероприятия с 1-2 потоком и 3-5 получателями.
в таком формате они проводятся уже давно и ничего нового с этой стороны нет.
ранее такого точно не было.
При этом мероприятие продолжает проходить в более-менее приемлемом виде, но иногда может подвисать у зрителей немного.
Так же файлы записей иногда могут повредиться и не проигрываться через браузер. Но прогон их через видеоредактор или конвертер все исправляет.

При этом даже когда мероприятие закончилось и потоков вообще нет, загрузка 100% продолжает висеть.
Помогает только webcallserver restart

Для таких небольших мероприятий я использую сервер с 1 cpu и 2 gb ram
Всегда хватало с большим запасом. Транскодинга нет, и ведущий и зрители используют chrome.

По логам сам я не смог отыскать ничего примечательного.
Единственное, что заметил аномальное - логи сборщика мусора в такие моменты могут разрастись до нескольких гигабайт.
С кучей одинаковых строчек
[GC (Allocation Failure) 2020-12-10T07:25:22.827+0000: 145407.245: [ParNew: 68250K->86K(76672K), 0.0048381 secs] 374227K->306076K(515776K), 0.0049307 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
Что наводит на мысли о том, что все-таки не хватает ресурсов серверу.
Но несколько лет их хватало и все было отлично.

Есть мысли как можно решить проблему или поискать причину?


-----Connection Stats-----
connections=7
connections_rtmfp=0
connections_websocket=7
connections_hls=0
-----Port Stats-----
ports_media_free=494
ports_media_busy=5
ports_media_quarantine=0
ports_wcs_agents_free=998
ports_wcs_agents_busy=0
ports_wcs_agents_quarantine=0
-----Stream Stats-----
streams_webrtc_in=2
streams_webrtc_out=3
streams_websocket_out=0
streams_rtmfp_in=0
streams_rtmfp_out=0
streams_rtmp_in=0
streams_rtmp_out=0
streams_hls=0
streams_viewers=scadhelp__88-%D0%94%D0%B5%D0%BD%D0%B8%D1%81%20%D0%94%D0%B5%D0%B3%20419-7fb9-domain-scadhelp-room-scadhelp__88/2;domain-scadhelp-room-scadhelp__88-type-screen_remote-%D0%98%D0%BB%D1%8C%D1%8F%20%D0%98%D1%81%D0%B0%D0%B1%D0%B5%D0%BA%D0%BE%D0%B2%201381/1
streams_synchronization=scadhelp__88-%D0%94%D0%B5%D0%BD%D0%B8%D1%81%20%D0%94%D0%B5%D0%B3%20419-7fb9-domain-scadhelp-room-scadhelp__88/-34;domain-scadhelp-room-scadhelp__88-type-screen_remote-%D0%98%D0%BB%D1%8C%D1%8F%20%D0%98%D1%81%D0%B0%D0%B1%D0%B5%D0%BA%D0%BE%D0%B2%201381/0
stats_size=0
streams_rtsp_in=0
streams_rtsp_out=0
streams_rtmp_client_out=0
streams_play_rate=0
streams_stop_rate=0
-----Native Resources-----
native_resources=139823414007488,vorbis,-33448883;139823068402992,FFOutputWriter:/usr/local/FlashphonerWebCallServer/records/_81.95.142.180_56898_192.168.0.4_8443-669f3dbc-fa98-45af-a5a0-87ba0b1dc2ba-7fb9b2a1-3ab5-11eb-9f4b-27db30215192-lu2uea5nlu5900it8b8380cgbv.webm,90208276;139823400018672,opus,402021120;139823401987504,RESAMPLER:48000/48000,0
native_resources.audio_codecs=2
native_resources.audio_resamplers=1
native_resources.video_transcoders=0
native_resources.video_decoders=0
native_resources.video_encoders=0
native_resources.writers=1
-----Core Stats-----
core_heap_memory_used=152477416
core_java_committedMemory=3637833728
core_java_threads=76
core_java_freePhysicalMemorySize=85618688
core_java_arch=amd64
core_java_availableProcessors=1
core_java_freeSwapSpaceSize=3213205504
core_java_maxFileDescriptorCount=20000
core_java_open_file_descriptors=230
core_java_cpu_usage=99.38
core_java_totalPhysicalMemorySize=2097111040
core_java_totalSwapSpaceSize=3221221376
core_java_uptime=146055848
core_java_version=1.8.0_275
-----Call Stats-----
sip_processed_calls=0
sip_calls_state=established/0;trying/0;ringing/0;ring/0;ring_media/0;hold/0;busy/0;finish/0;session_progress/0;pending/0;failed/0
sip_calls=0
sip_calls_established=0
sip_calls_in=0
sip_calls_out=0
sip_calls_per_second=0.00
-----Sip Stats-----
sip_registered=0
-----Recording Stats-----
recording_sessions=1
-----System Stats-----
system_java_cpu_usage=100.00
system_java_load_average=2.11
-----Network Stats (Mbit/s)-----
global_bandwidth_in=0.000
global_bandwidth_out=0.000
-----Version info-----
wcs_version=5.2.802-7855c3b8db86af5c436395aa67e57650c8b4aefc
wcs_client_version=0.5.28.2753-4b8279d6042dc16de985d57c0b61fcdc1ca2cebe
-----Errors info-----
javax.net.ssl.SSLException=113
java.net.SocketException=13
java.io.IOException=21
java.lang.NumberFormatException=2
com.flashphoner.server.commons.rmi.operations.exception.ClientNotFoundException=7
java.lang.IllegalArgumentException=36
java.io.FileNotFoundException=1
-----Degraded streams-----
degraded_streams=
degraded_streams_percent=0
-----Transcoding info-----
transcoding_video_decoding_resolutions=0x0/2
transcoding_video_decoding_average_time=0x0/-1.0
transcoding_video_decoding_max_time=0x0/-1
transcoding_video_decoding_average_queue_size=0x0/0.0
transcoding_video_decoding_max_queue_size=0x0/0
transcoding_video_decoding_load=0
transcoding_video_encoding_resolutions=0x0/2
transcoding_video_encoding_average_time=0x0/0.0
transcoding_video_encoding_max_time=0x0/0
transcoding_video_encoding_average_queue_size=0x0/0.0
transcoding_video_encoding_max_queue_size=0x0/0
transcoding_video_encoding_load=0
 

Ras2607

Member
Дополнение с наблюдениями:

1. По логам сервера нагрузка до 100% выросла вообще сегодня ночью, когда никакая трансляция не велась.
и держалась стабильно на 100% до перезапуска.

2. команда top -H -p <PID процесса>
показала, что забивают все два подпроцесса на каждом чуть менее 50% загрузки, в сумме как раз 100.
точное название к сожалению не успел записать, но начинались оба с HTTPS- и название было одинаковым

3. проверил server_logs в ночное время, возможно там есть ряд проблем. Выслал на почту support@flashphoner.com
 

Max

Administrator
Staff member
Code:
22:30:02,983 INFO  bstractNioWorkerPool - HTTPS-BOSS-pool-4-thread-1
Workers size 2
Cemetery size 1
index:id:state:dead_for_ms
0:HTTPS-pool-5-thread-209:RUNNABLE:140408

22:30:03,001 INFO  bstractNioWorkerPool - HTTPS-BOSS-pool-4-thread-1
Workers size 2
Cemetery size 2
index:id:state:dead_for_ms
0:HTTPS-pool-5-thread-209:RUNNABLE:140427
1:HTTPS-pool-5-thread-208:RUNNABLE:141242

22:30:12,588 INFO                Dumper - Thread-320 Jstack is done with exit code 0. Location: /usr/local/FlashphonerWebCallServer/logs/CemeteryDump.jstack
Нужен этот дамп
/usr/local/FlashphonerWebCallServer/logs/CemeteryDump.jstack

Там скорее всего будет видно причину блокировки.
 

Ras2607

Member
Файл отправил на почту, посмотрите пожалуйста.

Просто для информации:
Сейчас на том же сервере, с той же конфигурацией прошло мероприятие на более чем 30 участников с 2 входящими потоками.
нагрузка в пиках достигала 14% от одного ядра, ram не более 1.1gb
 

Max

Administrator
Staff member
Возможно проблема в версии JDK. OpenJDK 64-Bit Server VM (25.275-b01 mixed mode).
Здесь показано как установить JDK 12.

Code:
at sun.security.ssl.SSLEngineImpl.wrap(SSLEngineImpl.java:130)
по дампу видно, что наиболее нагруженные треды выполняются на стороне JDK. Поэтому возмжно обновление поможет.
Похожие репорты: https://github.com/eclipse-ee4j/grizzly/issues/2075
 

Ras2607

Member
Версии java это какой-то темный лес для меня. Совершенно сбивает столку нумерация.
команда java --version выдает следующее:
Code:
openjdk version "1.8.0_275"
OpenJDK Runtime Environment (build 1.8.0_275-8u275-b01-0ubuntu1~16.04-b01)
OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)
Что практически не отличается от похожего вывода от Вашей команды в примере в инструкции.
Раздел Проверка вывода.

Там устаревшие данные и нужно чтобы версия была 12 ?

Ну и несколько смущает то, что по этой инструкции уже несколько лет настраиваю разные медиа-серверы и такой проблемы на этой версии ранее никогда не было. А сейчас повторяется периодически.
 
Last edited:

Max

Administrator
Staff member
Похожая проблема встречалась на JDK 11. Возможно, в свежие сборки JDK 8 попала та же проблема.
Попробуйте обновиться до JDK 12 или 14.
 

Ras2607

Member
Поставил 14 jdk отсюда https://jdk.java.net/java-se-ri/14
Долго еще не мог стартануть сервер, пока опытным путем не вычислил, что параметр -XX:+PrintGCDateStamps мешает запуску.
Убрал его и вроде все работает.

Буду наблюдать за стабильностью. К сожалению не знаю как воспроизвести эту проблему, чтобы проверить помогло ли решение.
 

Max

Administrator
Staff member
Долго еще не мог стартануть сервер, пока опытным путем не вычислил, что параметр -XX:+PrintGCDateStamps мешает запуску.
Параметры, которые необходимо убрать из wcs-core.properties при обновлении JDK до 12 и выше, перечислены здесь (п. 4).
При обновлении или установке сервера на JDK 12 и выше, эти параметры вычищаются автоматически.
 
Top