Unreponsive due to high CPU usage

Max

Administrator
Staff member
Can I do this UDP socket buffer tuning while WCS is running and handling streams?
Yes. You can.

Or do I need to stop the service first?
Not need.

Will it retain these values at server reboot ?
Yes. It will be saved.

You can see actual params any time. Example:

Code:
sudo sysctl -a | grep rmem

net.core.rmem_default = 212992
net.core.rmem_max = 212992
net.ipv4.tcp_rmem = 4096    131072    6291456
net.ipv4.udp_rmem_min = 4096
 

Max

Administrator
Staff member
Are there any downsides of this setting:
ice_tcp_transport=true
This setting will enable TCP transport instead of UDP.
It may increase stream latency.
 

SLM

Member
Thanks.

Current values after these rmem settings are now:

net.core.rmem_default = 26214400
net.core.rmem_max = 26214400
net.ipv4.tcp_rmem = 4096 87380 6291456
net.ipv4.udp_rmem_min = 4096

I will monitor the situation the next 48 hours
 

SLM

Member
No more issues concerning unresponsiveness after update to version 1924, so that's great. Thanks.

I'm still seeing the socketexceptions in the logs though and sometimes quite a lot:
Code:
21:00:00,029 WARN         StunUdpSocket - STUN-UDP-pool-40-thread-1749 [id: 0x5935f9c6, /172.xx.xx.xxx:31618] Failed to send or receive message
java.net.SocketException: Message too long
    at java.base/sun.nio.ch.DatagramChannelImpl.send0(Native Method)
    at java.base/sun.nio.ch.DatagramChannelImpl.sendFromNativeBuffer(DatagramChannelImpl.java:860)
    at java.base/sun.nio.ch.DatagramChannelImpl.send(DatagramChannelImpl.java:837)
    at java.base/sun.nio.ch.DatagramChannelImpl.send(DatagramChannelImpl.java:780)
    at org.jboss.netty.channel.socket.nio.SocketSendBufferPool$UnpooledSendBuffer.transferTo(SocketSendBufferPool.java:209)
    at org.jboss.netty.channel.socket.nio.NioDatagramWorker.write0(NioDatagramWorker.java:291)
    at org.jboss.netty.channel.socket.nio.NioDatagramWorker.writeFromUserCode(NioDatagramWorker.java:240)
    at org.jboss.netty.channel.socket.nio.NioDatagramPipelineSink.eventSunk(NioDatagramPipelineSink.java:98)
    at org.jboss.netty.channel.Channels.write(Channels.java:733)
    at com.flashphoner.ice.A.I.A(Unknown Source)
    at com.flashphoner.ice.A.I.handleDownstream(Unknown Source)
    at org.jboss.netty.channel.Channels.write(Channels.java:712)
    at com.flashphoner.ice.D.B.A.send(Unknown Source)
    at com.flashphoner.D.F.M.A(Unknown Source)
    at com.flashphoner.D.F.M$3.A(Unknown Source)
    at com.flashphoner.D.A.A.A(Unknown Source)
    at com.flashphoner.D.F.M.B(Unknown Source)
    at com.flashphoner.D.F.O.A(Unknown Source)
    at com.flashphoner.D.F.D.A(Unknown Source)
    at com.flashphoner.D.F.D.A(Unknown Source)
    at com.flashphoner.D.F.D.A(Unknown Source)
    at com.flashphoner.D.F.D.A(Unknown Source)
    at com.flashphoner.D.F.M.A(Unknown Source)
    at com.flashphoner.D.F.B.C.G.A(Unknown Source)
    at com.flashphoner.D.F.B.A$_A.A(Unknown Source)
    at com.flashphoner.D.F.M.C(Unknown Source)
    at com.flashphoner.D.F.M.dataPacketReceived(Unknown Source)
    at com.flashphoner.D.F.G.D(Unknown Source)
    at com.flashphoner.D.F.G.dataPacketReceived(Unknown Source)
    at com.flashphoner.ice.D.C.A(Unknown Source)
    at com.flashphoner.ice.D.B.A.A(Unknown Source)
    at com.flashphoner.ice.D.B.A$_A.messageReceived(Unknown Source)
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
    at com.flashphoner.ice.A.G.handleUpstream(Unknown Source)
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
    at org.jboss.netty.channel.socket.nio.NioDatagramWorker.read(NioDatagramWorker.java:96)
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:373)
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:247)
    at org.jboss.netty.channel.socket.nio.NioDatagramWorker.run(NioDatagramWorker.java:42)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    at java.base/java.lang.Thread.run(Thread.java:832)
Code:
-----Errors info-----
java.lang.IndexOutOfBoundsException=2
java.net.SocketException=233338
java.nio.channels.ClosedChannelException=18
javax.net.ssl.SSLHandshakeException=13
java.net.SocketTimeoutException=13
com.flashphoner.media.rtp.D.E.A.E=105
java.lang.ArrayIndexOutOfBoundsException=8
java.lang.IllegalArgumentException=4
java.lang.NullPointerException=25
java.lang.reflect.InvocationTargetException=6
 

Max

Administrator
Staff member
I'm still seeing the socketexceptions in the logs though and sometimes quite a lot:
Please try to switch to TCP transport as we recommended above
Code:
ice_tcp_transport=true
 

Max

Administrator
Staff member
Good day.
We found a probable reason for SocketException and fixed it in build 5.2.1963. We also added some logging to detect a problem if it persists. Please update and check.
 
Top