平台 → 负载测试

Janus 负载测试

单台 Krona.Chat 服务器能承载多少观众:Janus 视频服务器负载测试结果。

测试日期:2026年10月10日

测试服务器
8 vCPUAMD EPYC 9645 处理器16 GB内存1 Gbit/s网络端口1080p视频,约 2.5 Mbit/s
混合服务器模特和观众在同一台服务器上 最多 330 名观众 模特向这台服务器推流,她的观众也从这台服务器观看。这是最简单的方案——所有任务只用一种服务器。
观众服务器分离方案 最多 360 名观众 只有观众连接到它。它从模特服务器获取模特的视频,再分发给观众。
模特服务器分离方案 约 220 路直播 只有模特连接到它。它接收模特的直播,并转发到观众服务器。根据实测数据推算:我们测试了 120 路直播,服务器负载仅为 14%。

各方案的工作方式

混合方案: 模特 → 混合服务器 → 该模特的观众。同一场直播的所有观众都必须容纳在一台服务器上。

分离方案(级联): 模特 → 模特服务器 → 一台或多台观众服务器 → 观众。服务器之间的视频转发(级联)由模特服务器自身完成,无需为此单独配备服务器。当一场直播有大量观众时,他们会被分配到多台观众服务器上。

要点

  • 一台服务器可稳定地同时向 330–360 名观众传输视频——不卡顿,画质无损。
  • 如果将接收直播的任务移到单独的服务器上,观众服务器可比混合服务器多承载约 10% 的观众,而且一场直播的观众数量不受限制——他们会被分配到多台观众服务器上。
  • 接收直播几乎不占用服务器资源。主要负载来自向观众传输视频。
  • 服务器几乎能用满网络端口:在 1 Gbit/s 端口上,可无丢失地向观众传输最高 900 Mbit/s 的视频。一旦超出上限,所有观众的画质会同时下降,因此服务器的负载要留有余量——页面底部的计算器正是按此计算的。

测试方法

我们测试的是 Krona.Chat 视频服务器。模特和观众均为行为与浏览器一致的软件客户端:进入直播间,发送和接收视频。

  1. 启动直播

    模特开始推送约 2.5 Mbit/s 的 1080p 视频——与真实网络摄像头相当。

  2. 增加观众

    每 2 秒接入一名新观众,负载平稳增长。

  3. 监测画质

    针对每位观众,统计视频在传输途中的丢失量。只要丢失率低于 1%,画面就是流畅的。

  4. 找到上限

    当画质开始下降时,测试停止。无丢失时的最大观众数即为服务器容量。

每种方案分别单独测试。图表中的每条曲线都是一次独立测试,曲线之间不能相加。

测试结果

服务器向观众发送的视频量

观众越多,服务器发送的视频就越多。只要曲线平稳上升,每位观众都能完整接收视频。当曲线向下折断时,说明服务器已过载,无法向所有观众传输视频。

显示表格

Mbit/s——服务器每秒向所有观众发送的视频量。绿色边框——画质无损时的最大观众数;红色背景——过载。

观众端的视频质量

未能送达观众的视频所占比例。不超过 1% 时观众察觉不到;超过后画面会卡顿、出现花屏。丢失率急剧上升之处即为服务器的上限。

显示表格

观众端视频丢失率,%。绿色边框——画质无损时的最大观众数;红色背景——过载。

服务器 CPU 负载

CPU 负载始终达不到 100%:服务器会先在视频传输上达到上限。超过上限后,负载甚至会下降——服务器在丢失视频,而不是发送视频。

显示表格

CPU 负载,%。绿色边框——画质无损时的最大观众数;红色背景——过载。

如何选择方案

所有数据均针对约 2.5 Mbit/s 的 1080p 视频,且画质无损。

混合服务器

最多 330 名观众

模特及其观众在同一台服务器上。测试中每场直播约有 33 名观众。

适合每场直播观众不超过几百人的情况。如果直播数量多而每场观众少(约 10 人),服务器的承载量会略低——约 280 人。

分离方案

最多 360 名观众

模特服务器接收直播,观众服务器负责播放。观众服务器比混合服务器多承载约 10% 的观众。

适合大规模观众:同一场直播的观众会被分配到多台观众服务器上,因此不存在“全部观众必须在同一台服务器上”的限制。

模特服务器

约 220 路直播

分离方案的组成部分:接收模特的视频并转发到观众服务器。这项工作负载很轻:120 路直播仅使服务器负载达到 14%。

约 220 是根据实测数据推算的:对这种服务器而言,每路直播就是一路输入视频加一次向下游的转发。

与网站计算器的对比

网站上的服务器计算器按每台服务器向观众传输约 700 Mbit/s 视频来计算。测试表明,配备 1 Gbit/s 端口的服务器可无丢失地传输最高 900 Mbit/s,因此网站上的计算器留有充足余量。

对于 2.5 Mbit/s 的视频,即每台服务器 330–360 名观众。对于码率 3 Mbit/s 的 1080p 视频,按计算约为 290 名观众。

计算估算,而非测试结果

计算器:您需要多少台服务器

采用测试中得出的系数。请输入您的负载以及您所用服务商的服务器价格。

所需服务器—
每月费用—
观众总数—同时在线
每台服务器观众数—

以上结果在测试服务器上获得,可能因服务商、网络和直播设置不同而有所差异。

本报告由 orchestration/capacity_report.py 根据各轮测试数据(Locust + Prometheus + 观众端 RTP 统计)生成。