【问题标题】:COTURN using too much CPU !!. Is this normal?COTURN 使用过多的 CPU !这是正常的吗?
【发布时间】:2020-08-11 12:12:59
【问题描述】:

谢谢大家,

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

这是我的 TURN 服务器配置:

我错过了什么吗?

在任何情况下 coturn(或任何转弯服务器)使用那么多 CPU 吗?

【问题讨论】:

    标签: video-streaming webrtc turn video-conferencing coturn


    【解决方案1】:

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

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

    按照实施 WebRTC 会议的任何常规指南,您可以创建一个名为 mesh topology 的东西,其中每个连接都被复制到存在的每个其他客户端。

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

    我建议查看您可以实施的different topologies,看看是否符合您的想法并且负载影响较小。

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

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

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

    【讨论】:

    • 恐怕系统有100个客户端通过WebRTC Mesh相互连接,发送视频/音频甚至都无法启动。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    相关资源
    最近更新 更多