Hi:
To support WebRTC clients to our existing conferencing solution, we are using Janus Gateway. For security reasons, we have placed the
TURN server behind the NAT server and mapped to an external/public IP address - Janus Gateway also placed behind the NAT server.
The TURN server configuration is passed to the WebRTC clients and are used by the Janus Gateway.
Performance Test #1:
================
With the libnice library patch/fix for the global lock issue, we were able to successfully complete the performance test for the 800 Peer connections
with the following CPU specifications for the Janus Gateway:
1. I CPU X 1 Core = 1 Core with 8GB RAM
2. 1 CPU X 2 Cores = 2 Cores with 8 GB RAM
3. 2 CPU X 2 Cores = 4 Cores with 8 GB RAM.
Note: 95% of the WebRTC clients (with our conferencing application we have 8 Peer Connection per WebRTC client - 4 OPUS audio and 4 H264 video)
are generated using our automated test tool which is placed in our internal network.
Performance Test #2:
================
However, when we generate those 95% of the WebRTC clients from the Internet (from AWS) we are seeing performance issues with the Appshare
(H264 Video) feature. We have tried the following CPU specification for the Janus Gateway:
1. 1 CPU X 1 Core = 1 Core with 8GB RAM.
We didn't see the appshare showing up in the WebRTC clients - only blank screen.
2. 2 CPU X 2 Cores = 4 Cores with 8 GB RAM
With this hardware specification, audio seems to be working, but the we were able to see the appshare in the WebRTC client window, however, we saw
frequent freeze and catch up which may not be an acceptable solution for Appshare/Video.
We are seeing the UDP packets drops in the Janus Gateway.
Note: We saw similar symptoms (udp packets drops in the Janus Gateway) that we experienced for the performance test #1 specified above, but with
the libnice library global lock issue. Once the libnice library global lock issue is fixed the media (Audio/Video/Appshare) were working fine.
Anyone tried similar TURN server topology and have experienced any issue(or similar issue), let's know.