Video streaming COTURN使用了太多的CPU!!。这正常吗?

Video streaming COTURN使用了太多的CPU!!。这正常吗?,video-streaming,webrtc,turn,video-conferencing,coturn,Video Streaming,Webrtc,Turn,Video Conferencing,Coturn,谢谢大家, 我有一个视频会议项目,使用webrtcapi开发,我使用开源COTURN构建了自己的TURN服务器。根据我的阅读,turn和stun服务器不是cpu或内存密集型服务器,但我的turn服务器使用的cpu超过90%8核的ubuntu服务器,只有100个客户端。到目前为止,我已经设法提供视频会议服务,但现在我将为75000名客户提供服务,我恐怕,有了这些数字,我无法管理它 以下是我的回合服务器配置: 我错过什么了吗 是否有coturn(或任何turn服务器)使用那么多CPU的情况?这10

谢谢大家,

我有一个视频会议项目,使用webrtcapi开发,我使用开源COTURN构建了自己的TURN服务器。根据我的阅读,turn和stun服务器不是cpu或内存密集型服务器,但我的turn服务器使用的cpu超过90%8核的ubuntu服务器,只有100个客户端。到目前为止,我已经设法提供视频会议服务,但现在我将为75000名客户提供服务,我恐怕,有了这些数字,我无法管理它

以下是我的回合服务器配置:

我错过什么了吗


是否有coturn(或任何turn服务器)使用那么多CPU的情况?

这100个客户端是否相互连接?像一个超级会议

在这种情况下,负荷如此之大是有道理的

按照实现WebRTC会议的任何常规指南,您将创建一个所谓的Web RTC会议,其中每个连接都会为其他客户机复制

让我们为你的案例举个例子。当您加入呼叫且已有99人在场时,您的视频(和音频)将分别为每个客户端发送99次。 因此,您的配置是为100人创建100*99/2=4950个连接

我建议您检查一下您可以实现的,看看是否适合您的想法,并且对负载的影响较小

您可能还认为4950个连接仍然不多,但请记住,WebRTC即使在没有音频或视频的情况下也会传输,因此4950个连接同时具有数据流

作为一个著名的例子,Discord能够处理大量的并发连接,因为它们优化了每个连接中的每一件小事。其中一个优化是,当没有媒体流动时,它们停止传输数据,这是可以实现的(需要更多的WebRTC知识,但不是那么难)


如果您选择的是WebRTC,我建议您更深入地研究WebRTC,因为您的案例需要更多的知识。

恐怕有100个客户端通过WebRTC Mesh相互连接,发送视频/音频的系统甚至无法启动。