跨国在线课堂部署香港服务器,如何按师生并发估算实时音视频带宽?
要让香港服务器承载海外在线教育平台,不能只按“学生人数乘以一个固定带宽”采购。实时课堂的服务器流量取决于教师和学生分别上传什么、每个参与者订阅哪些视频流、服务器采用转发还是合流、是否有中继转发,以及上课开始时是否出现集中并发。实际规划时,应先分别计算入站和出站峰值,再根据端口口径、计费方式和容量余量选择带宽。
以一个教师、30名学生的典型课堂为例:如果教师上传720p视频,学生只上传音频,服务器出站可能约为60 Mbps;加上协议开销、集中开课突发和容量余量后,规划值可能接近110~120 Mbps,此时不宜选择刚好100 Mbps的端口。如果学生摄像头开启,并且学生视频需要转发给其他学生,出站流量可能迅速扩大到数百Mbps。下面按负载画像、资源变量、瓶颈判断、容量余量和扩容触发点逐步估算。
先确认课堂的负载画像
并发人数不是唯一变量
需要先把“并发”拆成四个维度:
- 同时在线的课堂数量;
- 每个课堂中的教师人数;
- 每个课堂中的学生人数;
- 每类参与者发布和订阅的音视频数量。
例如,200名学生分布在10个课堂,与200名学生集中在一个大课堂,对服务器带宽的影响并不相同。前者可能是10个教师视频分别向各自班级转发,后者可能涉及更多学生视频互相订阅,也更容易出现同一时间加入、切换摄像头和请求关键帧的突发流量。
建议先建立如下并发表,而不是只记录“当天注册学生数”:
| 变量 | 含义 | 估算时应记录的值 |
|---|---|---|
R | 同时活跃课堂数 | 高峰时的课堂数量 |
T | 每个课堂的教师数 | 通常为1,也可能包含助教 |
S | 每个课堂的学生数 | 按高峰平均值和上限分别记录 |
C_s | 同时开启摄像头的学生数 | 不等于全部学生数 |
K | 每个学生同时接收的视频流数 | 教师流、学生流或合流画面 |
A | 音频接收模式 | 单独音轨、混音或活跃发言人 |
P | 中继转发比例 | 直接连接失败后由服务器中继的比例 |
其中,C_s和K通常比学生总数更能解释带宽变化。课堂默认关闭学生摄像头时,学生人数增加主要影响音频和信令;课堂开启多人视频墙时,学生人数会同时影响服务器入站和出站。
先确认媒体架构
带宽计算前,要确认香港服务器在媒体链路中的角色:
- 服务器转发音视频流
服务器接收发布者的流,再复制给订阅者。出站带宽通常是主要瓶颈。
- 服务器合流后输出
服务器把多路视频合成一个或少量画面,再向每个接收者发送。出站流量可能较低,但应以合流后的实际编码码率为准。
- 部分参与者直接连接,失败时由服务器中继
平时服务器流量可能较低,但跨国网络质量波动时,中继比例上升,带宽会突然增加。
- 所有媒体都经过服务器中继
需要按照每个发布者到每个订阅者的转发关系计算,不能用“一个人一条上行流”简单替代。
如果使用的是转发模式,可以将服务器带宽拆成:
- 入站带宽:所有发布者上传到服务器的音视频总和;
- 出站带宽:服务器发往所有订阅者的音视频副本总和;
- 附加流量:协议头、重传、关键帧、信令、中继和监控数据。
把师生并发转换为带宽
先确定单路媒体的编码目标
下面的数值用于容量估算,不代表某个具体软件或服务器的固定规格:
| 媒体类型 | 参考码率范围 | 适用说明 |
|---|---|---|
| 教师720p视频 | 1.2~2.5 Mbps | 画面复杂度、编码器和帧率会影响实际码率 |
| 学生480p视频 | 0.4~1.0 Mbps | 缩略图通常低于主讲画面 |
| 学生720p视频 | 1.0~2.0 Mbps | 多人同时开启时出站增长明显 |
| 单路语音 | 40~80 Kbps | 应按编码器、冗余和音频模式确认 |
| 信令与课堂控制 | 通常较小 | 不应与实时媒体混为同一预算 |
| 协议、重传和突发修正 | 约增加15%~30% | 估算阶段使用,实测接口速率不再重复增加 |
在计算时必须统一单位。1 Mbps = 1,000,000 bit/s,1 MB = 8 Mb,这里按十进制换算。音频的60 Kbps应先换成0.06 Mbps,不能直接与1.8 MB/s混用。
入站带宽计算
当每个教师和学生发布的码率分别为r_t和r_s时,单个课堂的入站媒体带宽可写为:
B_in = T × r_t + C_s × r_s_video + (S - C_s) × r_s_audio + C_s × r_s_audio
如果教师也有音频,教师音频应并入r_t,或单独累加。更直接的做法是把每个发布者的音频和视频相加后再求和。
例如:
- 1名教师发布
1.8 Mbps视频和0.06 Mbps音频; - 8名学生发布
0.7 Mbps视频和0.06 Mbps音频; - 22名学生只发布
0.06 Mbps音频。
则单个课堂的入站媒体码率约为:
1.86 + 8 × 0.76 + 22 × 0.06 = 9.26 Mbps
这是媒体有效码率,不包括协议开销和重传。
出站带宽通常更值得优先计算
转发服务器的每个出站副本都要计入带宽。可用下面的关系理解:
B_out = 所有接收者实际订阅的视频和音频流之和
对于一个教师、30名学生的课堂,如果满足以下条件:
- 教师的视频和音频合计为
1.86 Mbps; - 30名学生都接收教师流;
- 教师接收30名学生的音频;
- 学生之间不互相接收视频;
- 学生音频在服务器侧以一条混音或活跃发言人音频下发;
则出站媒体码率约为:
30 × 1.86 + 30 × 0.06 = 57.6 Mbps
这里的第一项是教师流发送给30名学生,第二项是30名学生的音频发送给教师。这个结果说明,即使学生没有开启摄像头,出站流量也可能明显高于入站流量。
如果8名学生开启摄像头,且这些学生视频只发送给教师,那么入站约为9.26 Mbps,出站会在原有基础上增加约:
8 × 0.76 = 6.08 Mbps
如果这8路学生视频还要转发给30名学生,单是学生视频副本就可能增加:
8 × 0.76 × 30 = 182.4 Mbps
这还没有计算教师视频、教师接收的学生视频、音频、协议开销和重传。因此,“30名学生”在不同课堂互动模式下可能对应几十Mbps,也可能对应数百Mbps。
用课堂类型做第一轮估算
| 课堂模式 | 参考场景 | 单课堂入站媒体码率 | 单课堂出站媒体码率 | 主要风险 |
|---|---|---|---|---|
| 主讲模式 | 1名教师视频,学生仅音频 | 约3~5 Mbps | 约50~70 Mbps | 教师视频向全班复制 |
| 小范围互动 | 教师视频,6~10名学生开启视频,学生视频只给教师 | 约8~12 Mbps | 约60~85 Mbps | 学生同时开摄像头 |
| 多人视频墙 | 教师和8名学生视频互相转发 | 约8~12 Mbps | 约200~320 Mbps | 学生视频副本数量快速增加 |
| 大量中继 | 发布者和接收者多经过服务器转发 | 取决于发布者数量 | 需按实际订阅关系叠加 | 中继比例在高峰时上升 |
表中的数值是估算区间,不能代替上线后的接口采样。尤其是多人视频墙,如果平台使用低清缩略图、分层编码或服务器合流,实际流量可能低于表中范围;如果每个接收者获得独立高码率视频,实际流量可能更高。
加上峰值、开销和增长量
不要把平均并发当成峰值并发
实时课堂常见的峰值并不只发生在整点上课,还可能出现在:
- 大量学生在数十秒内同时进入课堂;
- 教师开始共享屏幕或切换高分辨率摄像头;
- 多名学生同时打开摄像头;
- 网络短暂抖动后集中重传;
- 课堂切换到小组讨论或多人发言;
- 服务器将更多连接切换到中继路径。
因此应至少维护三组数据:
- 平均并发:用于日常资源观察;
- 高峰并发:用于购买主带宽;
- 短时峰值:用于判断端口是否需要突发能力。
估算时可采用以下关系:
规划带宽 = 媒体有效峰值 × 协议开销因子 × 峰值突发因子 × 容量余量因子
一个便于执行的初始取值是:
- 协议开销因子:
1.15~1.30; - 峰值突发因子:
1.20~1.50; - 容量余量因子:
1.20~1.30。
这些因子只适用于由媒体码率推导出来的有效负载。如果已经从服务器接口采集到了包含协议开销的真实出入站速率,就不应再次乘协议开销因子,否则会重复计算。
单课堂示例
仍以1名教师、30名学生、学生只上传音频的课堂为例:
- 入站媒体码率:约
3.66 Mbps; - 出站媒体码率:约
57.6 Mbps; - 协议开销因子:
1.20; - 峰值突发因子:
1.30; - 容量余量因子:
1.25。
出站规划值为:
57.6 × 1.20 × 1.30 × 1.25 = 112.32 Mbps
因此,100 Mbps端口没有足够的工程余量。若服务商提供200 Mbps档位,并且该数值明确表示单方向可用速率,200 Mbps会比100 Mbps更适合作为起始选择。若“200 Mbps”表示上下行合计,则还要重新核对入站和出站相加后的总值。
多课堂并发示例
如果同一高峰时段有3个相同课堂,且它们的学生都只上传音频:
- 出站媒体码率:
57.6 × 3 = 172.8 Mbps; - 加上上述三个因子:
172.8 × 1.20 × 1.30 × 1.25 = 336.96 Mbps

此时,300 Mbps档位会缺少余量,500 Mbps档位更容易覆盖课堂启动和短时重传。这个500 Mbps只是按照示例参数推导出的容量级别,不代表某个具体在售方案或固定承载保证。
实际流量如何换算为传输量
带宽和流量不是同一个计费维度。持续使用某个速率一小时,十进制换算公式为:
流量GB = 速率Mbps × 秒数 ÷ 8 ÷ 1000
例如:
100 Mbps × 3600 ÷ 8 ÷ 1000 = 45 GB/小时;200 Mbps × 3600 ÷ 8 ÷ 1000 = 90 GB/小时。
如果服务商同时统计入站和出站,就要将两个方向相加。假设出站为200 Mbps、入站为10 Mbps,持续一小时的合计传输量约为:
(200 + 10) × 3600 ÷ 8 ÷ 1000 = 94.5 GB
实际计费还可能按照采样周期、计费方向、峰值带宽或套餐规则统计,应以服务商的计量口径为准。
区分端口速率、可用带宽和计费带宽
端口速率不等于可长期使用的带宽
采购时至少要区分以下三个概念:
| 名称 | 关注点 | 不能直接推断的内容 |
|---|---|---|
| 端口速率 | 网卡或云平台允许的接口上限 | 不代表一定有同等持续吞吐 |
| 承诺带宽 | 服务商允许长期使用的速率 | 不一定等于端口的突发上限 |
| 计费带宽 | 按固定值、峰值、95分位或流量计费 | 不一定反映课堂的实时质量 |
例如,端口可以达到1 Gbps,但套餐只承诺100 Mbps;这并不等于可以把1 Gbps作为课堂长期规划值。相反,某个200 Mbps方案如果是上下行合计,出站达到180 Mbps时可能已经接近总上限,即使入站看起来很低。
下单或调整前,应明确询问:
- 带宽是上行和下行分别计算,还是合计计算;
- 端口速率和承诺带宽分别是多少;
- 是否允许短时突发,突发持续多久;
- 超过承诺值时是限速、丢包还是额外计费;
- 流量计费是否只算出站,还是入站和出站都算;
- 是否按固定带宽、峰值带宽、95分位带宽或GB计费;
- 中继、重传和控制流量是否包含在统计值中。
结合计费方式选择容量
固定带宽或承诺带宽
适合课堂时间集中、需要稳定上限的场景。选择时应按高峰规划值购买,而不是按全天平均值购买。缺点是低峰时仍可能为预留容量付费。
按传输量计费
适合并发规模波动较大的场景,但必须注意长期持续码率。在线课堂每天持续多个小时,即使单小时流量不高,月度累计也可能明显增加。学生视频墙和中继比例是影响流量的关键变量。
95分位计费
通常按固定采样周期记录带宽,再去掉最高的一部分采样值计算计费基准。它可能降低极短突发对费用的影响,但不能忽略持续高峰。实际合同可能对采样方向和计算方式有不同定义,不能自行把95分位当作“可无限超过的带宽”。
混合方式
部分方案同时包含端口、承诺带宽和超额流量。此时应分别估算:
- 高峰时每秒需要多少Mbps;
- 每天和每月传输多少GB;
- 超过承诺带宽的时间比例;
- 学生摄像头开启或中继增加后,两个指标分别如何变化。
把关键配置固定在可测量的范围内
带宽规划不能只依靠采购端口,还需要在课堂媒体策略中限制单路码率和订阅数量。以下是一个便于讨论的策略示例,不对应某个特定平台的可直接导入配置:
media_policy:
teacher:
audio_bitrate_kbps: 60
video_profile: 720p
video_bitrate_mbps: 1.8
max_fps: 30
student:
audio_bitrate_kbps: 60
camera_profile: 480p
video_bitrate_mbps: 0.7
max_fps: 15
classroom:
max_active_student_videos: 8
default_student_camera: false
subscribe_only_visible_tracks: true
enable_simulcast: true
capacity:
target_egress_utilization: 0.70
warning_egress_utilization: 0.80
critical_egress_utilization: 0.90
实际部署时,应把这些策略映射到平台已有的编码、订阅和课堂控制项,重点检查以下内容:
- 教师视频是否固定上限,还是会随画面复杂度持续升高;
- 学生视频是否默认关闭;
- 缩略图是否使用低码率层;
- 学生是否只订阅当前可见的视频;
- 服务器是否会为未观看的轨道继续发送数据;
- 多人视频墙是否存在最大活动窗口数;
- 中继连接是否有单独的并发和带宽统计;
- 屏幕共享是否会替换教师视频,还是额外增加一路视频。
如果平台支持分层编码,缩略图使用低层、主讲画面使用高层,可以显著降低多人订阅时的出站压力。但不能只看发布者上传了一路视频,还要统计服务器为每个接收者发送了哪一层。
按顺序完成部署前检查
1. 固定一张“并发—订阅关系表”
在开始购买或调整带宽前,至少填入以下内容:
| 项目 | 示例值 | 说明 |
|---|---|---|
| 高峰课堂数 | 3 | 以同一时段实际活跃课堂为准 |
| 每课堂教师数 | 1 | 包含是否有助教视频 |
| 每课堂学生数 | 30 | 区分平均值和上限 |
| 同时开摄像头学生数 | 8 | 统计高峰而非默认值 |
| 教师视频码率 | 1.8 Mbps | 按编码策略填写 |
| 学生视频码率 | 0.7 Mbps | 以缩略图或主画面区分 |
| 学生音频码率 | 0.06 Mbps | 统一换成Mbps |
| 学生视频订阅者数 | 30 | 不能只填写发布者数量 |
| 中继比例 | 估算或采样 | 高峰时单独观察 |
如果某项无法确认,不要直接填入0。应先在应用日志或媒体统计中确认,否则容易低估出站带宽。
2. 分别计算入站和出站
将每个课堂的发布者列表和订阅者列表展开。对每个视频流记录:
- 发布者是谁;
- 码率上限是多少;
- 被多少个接收者订阅;
- 是否按低层或高层发送;
- 是否可能因中继产生额外副本。
然后按课堂求和,再按高峰课堂数叠加。若不同课堂模式差异较大,应分别建立“主讲课”“互动课”和“视频墙课”三种模型,不要用一个平均值覆盖全部课堂。
3. 确认服务商端口口径
在容量计算结果出来后,再将结果映射到带宽档位。重点不是选择一个看起来接近的数字,而是确认:
- 计算结果是单方向还是双方向;
- 目标档位是否为持续带宽;
- 端口上限是否高于承诺带宽;
- 计费是否按流量或峰值另行统计;
- 达到端口上限时是否会丢包;
- 调整带宽是否需要重启服务或更换网络配置。
若计算得到出站规划值337 Mbps,不能仅因为入站只有20 Mbps,就把它按“总流量357 Mbps”与某个聚合端口直接比较。先确认端口是双向独立还是上下行合计,再决定档位。
4. 以实际课堂做分级压测
建议在正式高峰前,使用可控测试账号建立与生产课堂相同的媒体关系,至少覆盖:
- 50%的目标并发;
- 80%的目标并发;
- 100%的目标并发;
- 同时加入和同时开启摄像头的突发场景。
每个阶段保持足够时间,记录接口速率和媒体质量,而不是只观察能否成功进入课堂。测试记录应包括参与者数量、每人发布的媒体类型、视频分辨率、订阅数量、测试持续时间、入站峰值、出站峰值和丢包情况。
用接口和媒体指标验证结果
服务器接口采样
先识别实际承载媒体流量的网卡:
ip -br link
再使用系统已有的网络统计工具进行连续采样:
command -v sar || echo "未发现 sar,请使用发行版提供的 sysstat 采集工具"
sar -n DEV 1 10
rx通常表示入站方向,tx通常表示出站方向。不同工具的速率单位可能不同,换算时要核对输出说明。若直接读取网卡累计字节数,可使用下面的关系计算:
速率Mbps = (本次字节数 - 上次字节数) × 8 ÷ 间隔秒数 ÷ 1,000,000
至少保留以下统计值:
- 1秒或5秒峰值;
- 1分钟平均值;
- 5分钟平均值;
- 95分位和99分位;
- 入站与出站分别统计;
- 课堂总量与单课堂明细。
服务商控制台的带宽图可以作为计费核对依据,但采样周期可能与操作系统不同。若应用显示的媒体总码率与网卡出站速率差异较大,应检查协议开销、重传、监控流量和其他业务是否共用同一端口。
媒体质量指标
如果平台使用WebRTC,应从媒体统计中记录类似指标:
bytesSent和bytesReceived;packetsLost;jitter;- 重传字节数;
- 视频帧丢弃数;
- 实际分辨率和实际发送码率;
- 中继连接比例。
接口利用率升高时,若同时出现发送码率下降、丢包上升、抖动增大或视频频繁降层,通常说明带宽或队列已经影响课堂质量。反之,如果接口利用率只有40%,但部分学生仍然卡顿,应继续检查实际网络路径、连接类型、服务器处理能力和终端上行,不要盲目增加香港服务器带宽。
成功验证的判定条件
一次测试可以在以下条件同时满足时视为达到容量目标:
- 高峰课堂能够按计划建立连接;
- 入站和出站没有持续贴近端口上限;
- 规划时预留的余量没有被突发完全消耗;
- 教师视频不会因带宽不足频繁降级;
- 学生视频墙开启后,丢包和抖动仍处于可接受范围;
- 接口速率、应用媒体统计和服务商计量趋势能够相互解释;
- 测试结束后,流量回落且没有残留中继连接或异常重传。
发现瓶颈时先判断是哪一层
出站接近上限,入站正常
这通常与以下情况有关:
- 教师视频被复制给大量学生;
- 多路学生视频被转发给多个观看者;
- 学生订阅了不必要的视频轨道;
- 中继比例上升;
- 视频码率上限或帧率配置过高。
优先降低学生视频的默认分辨率和活动窗口数,确认只向可见接收者发送视频,再考虑提高端口带宽。
入站接近上限,出站相对较低
这可能是大量学生同时开启摄像头,或者每个发布者的上行码率没有受到限制。此时只增加出站带宽不能解决问题,应先限制发布者码率、摄像头数量和视频帧率,再重新计算入站规划值。
接口利用率不高,但课堂质量下降
应重点检查:
- 实际连接是否都走预期媒体路径;
- 部分用户是否存在较高丢包和抖动;
- 中继连接是否集中在特定课堂;
- 服务器处理能力是否不足;
- 应用是否发生频繁关键帧请求和重传;
- 端口是否存在突发限速,而监控采样没有捕捉到。
带宽是必要条件,但带宽充足不等于跨国实时音视频一定低延迟。对于香港服务器承载的跨国课堂,实际质量还与师生到服务器的网络路径、丢包和抖动有关。带宽规划的目标是避免服务器端排队和端口拥塞,而不是单独证明所有终端的网络质量。
账单流量异常增加
先按方向拆分统计,再检查:
- 是否把入站和出站都计费;
- 是否存在大量学生视频互相转发;
- 中继比例是否在高峰增加;
- 课堂结束后连接是否正常释放;
- 是否有录制、文件传输或其他业务共用媒体网卡;
- 服务商是否按峰值或超额带宽另行计费。
只有确认出站流量确实来自课堂媒体后,才应通过增加端口或限制视频订阅来处理。
配置变更和失败回滚
带宽调整和媒体策略调整都应先保留当前状态,包括当前端口参数、课堂媒体策略、视频码率上限、活动窗口数和监控阈值。不要在高峰课堂进行不可逆的批量修改。
推荐采用以下变更顺序:
- 先在测试课堂应用新的视频码率和订阅策略;
- 观察入站、出站、丢包、抖动和中继比例;
- 再应用到新建立的课堂;
- 确认已有课堂不受突然降层影响后,再扩大范围;
- 最后根据采样结果调整带宽档位或计费方式。
如果新策略导致画面质量明显下降,回滚时应恢复上一个已验证的码率和订阅关系,而不是直接取消所有视频:
- 恢复教师原有视频上限;
- 恢复学生原有视频分辨率;
- 恢复活动窗口数;
- 将新策略限制在测试课堂;
- 等当前高峰结束后再恢复服务商端口配置;
- 重新检查接口峰值和媒体质量。
如果端口已经持续接近上限,不建议先降低端口速率来“验证费用是否下降”。这样可能直接放大丢包和排队。应先降低非必要视频副本或限制新课堂进入,待流量回落后再进行计费方案回退。任何涉及服务重启的配置变更,都应先确认影响范围,并保留上一版配置和恢复时间点。
用容量余量和增长率决定下一档带宽
保留多少余量比较合适
余量应覆盖三类变化:
- 同一课堂的短时突发;
- 多个课堂同时达到高峰;
- 学生开启摄像头、重传或中继增加。
在没有长期生产数据时,可以先按规划峰值保留20%~30%的容量余量。若课堂经常整点集中开始,或多人视频墙是主要业务,突发余量可以进一步提高。余量只代表容量缓冲,不等于链路故障冗余,也不能替代故障切换能力。
对于已经运行的平台,应优先使用接口实测值:
- 以连续多个高峰日的95分位作为日常负载参考;
- 以99分位或短时峰值检查端口突发;
- 用最高并发课堂的实际订阅关系修正模型;
- 将接口监控中已经包含的协议和重传流量直接作为基准。
把增长率换算成规划并发
如果当前高峰有N个课堂,预计每个周期增长率为g,经过m个周期后的规划课堂数可以写为:
N_plan = N × (1 + g)^m
例如当前有3个高峰课堂,预计每季度增长20%,准备覆盖两个季度:
3 × 1.2 × 1.2 = 4.32
容量规划时不能只按4个课堂取整,还应考虑第5个课堂的突发,或者直接按预计学生人数和摄像头开启比例重新计算。若增长来自学生人数而不是课堂数量,还要同步更新每课堂的订阅副本数。
为监控设置可执行的扩容触发点
可以先用以下阈值作为初始规则,再根据连续几周的生产数据调整:
- 5分钟平均出站利用率达到承诺带宽的70%:进入容量观察;
- 5分钟平均出站利用率达到80%,并连续多个高峰时段出现:准备扩容或降低视频策略;
- 1分钟平均值达到90%,同时出现丢包、抖动或视频降层:立即限制新增高码率视频订阅;
- 95分位带宽连续两个计费周期超过承诺值的80%:重新比较固定带宽与流量计费;
- 中继比例明显高于基线,且出站同步上升:单独建立中继容量预算;
- 学生摄像头开启比例增长超过原模型:重新计算入站和出站,而不是只按原并发数加余量。
最终应形成一条可复核的判断链:先从师生并发和订阅关系得到实际媒体流量,再分离入站、出站和传输量,随后叠加协议开销、峰值突发和容量余量,最后根据端口口径与计费方式选择带宽。只要每次扩容都能回溯到课堂模式、实际峰值和监控数据,就能避免把平均流量当峰值,也能及时发现多人视频和中继转发造成的带宽跳升。