1. 背景与目标说明
针对电商大促与直播场景,目标是保证新加坡 CMI 线路 VPS 在高并发、上/下行大带宽时稳定可用。重点包括:选择合适的带宽计费与承诺、网络质量测试、系统和内核调优、流媒体架构设计(RTMP/SRT/HLS)、带宽优先级与限流、CDN 与多节点负载、监控与告警,以及应急切换流程。下面按步骤给出可复制的操作指南。
2. 第一步:选择供应商与带宽类型
先确认供应商是否提供“专线/独享带宽(dedicated)”或“承诺带宽(committed)”。实操步骤:A) 向销售索要峰值丢包和延迟 SLA 文档;B) 选择按固定带宽计费的方案(例如 100Mbps 专享)优先于按流量计费的突发包;C) 验证是否支持 BGP 多线或 CMIVPN 路由;D) 要求开通端口镜像或 q-in-q 用于后续监控。
3. 第二步:上线前的网络测试(必做)
在购买后但部署前做双向测速:从大陆机房到新加坡 VPS,以及从新加坡 VPS 回测中国目的地。实操命令示例:A) 在 VPS 上安装 iperf3:apt-get install -y iperf3;B) 在测试机(大陆或同城)执行:iperf3 -c
-t 60 -P 8 -R 得到上行/下行带宽;C) 用 mtr 检查路由跳数和丢包;D) 记录 3 次不同时间窗口数据用于比较。
4. 第三步:内核与 TCP 参数调优(开启 BBR 与系统调整)
操作步骤(Debian/Ubuntu)如下:A) 编辑 /etc/sysctl.conf 添加:net.core.default_qdisc=fq, net.ipv4.tcp_congestion_control=bbr, net.ipv4.tcp_tw_reuse=1, net.core.netdev_max_backlog=250000, net.core.rmem_max=134217728, net.core.wmem_max=134217728, net.ipv4.tcp_rmem="4096 87380 134217728", net.ipv4.tcp_wmem="4096 65536 134217728";B) 执行 sysctl -p;C) 确认 BBR 生效:sysctl net.ipv4.tcp_congestion_control && lsmod | grep bbr;D) 如需更细粒度,调整 /etc/rc.local 加入 iptables conntrack 限制与 ulimit 提升(ulimit -n 200000)。
5. 第四步:部署流媒体接入层(RTMP/HTTP-FLV/SRT)
实操建议:A) 在多个 VPS 上部署 nginx + nginx-rtmp-module,配置监听 1935 及 HTTP-FLV;B) 配置 sample nginx-rtmp.conf:chunk_size,ping,publish_validation,接入多 bitrate;C) 使用 ffmpeg 做转码把主码流转为 3 个档位(720p/480p/360p),命令示例:ffmpeg -i rtmp://localhost/live/stream -c:v libx264 -b:v 2500k -maxrate 3000k -bufsize 5000k -s 1280x720 -c:a aac -b:a 128k -f flv rtmp://localhost/live/stream_720p;D) 把转码任务放到单独规格更高的机器,减轻接入 VPS 负载。
6. 第五步:带宽优先级与流量整形(使用 tc 与 iptables)
实操步骤:A) 按服务类型设置 QoS:优先保证直播上行(Publisher)和电商交易 API;B) 示例 tc 命令:tc qdisc add dev eth0 root handle 1: htb default 30; tc class add dev eth0 parent 1: classid 1:1 htb rate 80mbit ceil 100mbit; tc class add dev eth0 parent 1: classid 1:10 htb rate 60mbit ceil 100mbit; tc class add dev eth0 parent 1: classid 1:20 htb rate 30mbit ceil 50mbit;C) 用 iptables 标记流量再由 tc 匹配:iptables -t mangle -A PREROUTING -p tcp --dport 1935 -j MARK --set-mark 10;D) 定期根据监控调整 rate/ceil。
7. 第六步:使用 CDN 与多节点架构降低源站带宽压力
实操要点:A) 直播延时敏感可选支持中国节点的低延迟 CDN(例如国内云厂商或合作伙伴),配置 CDN Pull 源为 nginx-rtmp HTTP-FLV/HLS 路径;B) 配置多 origin:将多个新加坡 VPS 加入 CDN 源池或使用智能 DNS;C) 对 HLS 进行短切片(2s-4s)并启用预取;D) 对关键静态资源(电商页面、图片、脚本)使用国内 CDN,加速页面加载并把动态 API 请求限流到后端。
8. 第七步:负载均衡与自动伸缩策略
实操步骤:A) 部署 LVS/Nginx/TCP-Proxy 或云厂商流量均衡器做接入层分发,并结合健康检查自动剔除异常节点;B) 使用脚本或云 API 实现自动扩容(CPU/带宽/Conn 指标触发),例如达到 70% 带宽使用率时触发扩容;C) 对直播使用水平扩展:增加接入节点 + 统一分发到 CDN;D) 提前演练扩容流程并在促销前冻结变更窗口。
9. 第八步:监控、告警与容量规划
实操清单:A) 部署 Prometheus + node_exporter + netdata 采集网卡带宽、连接数、丢包率、RTT;B) 设置告警阈值:带宽使用率 75%、丢包 1%、RTT 超过 200ms;C) 定期生成 95th/99th 峰值报告用于下一周期采购带宽;D) 在流量高峰时同时开通备用带宽并设置自动 DNS 切换脚本。
10. 第九步:演练与容灾(实战检查表)
演练要点与步骤:A) 做压力测试:使用 wrk/tsung 或自建模拟器模拟并发观看和推流;B) 模拟节点故障:把一台接入节点下线,验证 LB 与 CDN 是否平滑切换;C) 演练计费边界:确认突发带宽是否自动限速或额外计费;D) 在每次大促前三周完成一次全链路演练并记录问题与修复清单。
11. 第十步:上线前的最终检查与清单
上线前检查清单包括:A) 确认带宽 SLA 与计费模式;B) 测试 BBR 与 tcp 参数;C) 确认转码与 CDN 节点可用;D) 设置监控告警与应急联系方式;E) 检查防火墙与端口策略;F) 准备备用链路和扩容脚本。
12. Q&A 1:如何判断是否需要专线/独享带宽?
判断标准:如果直播或交易高峰期带宽持续占用超过 60% 且你不能容忍丢包或抖动,优先选择专线/独享带宽。通过连续一周、不同时间段的 iperf3 与 mtr 测试数据,查看峰值/平均值与丢包率,若 95th 峰值接近或者超过当前套餐,说明需要升级到专享或增加 CDN/多节点。
13. Q&A 2:在 CMI 线路常见的网络问题有哪些?如何定位?
常见问题包括偶发丢包、跨境路由抖动、端到端延迟突增。定位步骤:先用 mtr 定位丢包跳点,再用 iperf3 确认链路吞吐;若问题集中在运营商出口,联系云厂商/运营商提供路由快照和 BGP 路由表;同时对比不同时间段的监控曲线判断是否为临时拥塞或持续路由问题。
14. Q&A 3:直播编码与带宽配比怎么设置最稳妥?
推荐做法:使用自适应码流(ABR)至少配置三档:720p(2.5–4 Mbps)、480p(1.2–2 Mbps)、360p(600–900 kbps);对主播端设置上限并在 OBS 中启用动态比特率控制,遇到带宽波动时优先保证关键帧与音频,降低分辨率而非完全掉线。配合 CDN 的边缘缓存可明显降低回源带宽压力。
来源:电商与直播场景下新加坡cmi线路vps带宽保障策略