[直播技术实践]带宽与网络问题解析

在上次搭建好的框架,srs服务器部署到外网后,
发现推流一个client,拉流一个client的情况下比较顺畅,
但多个端拉流就出现掉线和卡的问题的
我们搭建srs服务器用的是阿里云1m带宽ECS服务器,4核8G

1,【理论支撑】直播1m带宽到底能承受多少拉流推流


码率 带宽的关系
客户端 码率=带宽
服务器 码率=带宽*人

1Mbps = 800kbpsx1.28,

如果是800k的码率 1.28个端
(嘤嘤嘤,不卡不掉才怪呢)

如果能查看ECS后台的话,可以看到监控面板上的报警,

[直播技术实践]带宽与网络问题解析_第1张图片
ECS后台监控图

篇外:ECS服务器1Mbps带宽能承受多少人在线

如果网络情况好,同时在线人数,按照如下的原则来评判:
1. 打开网站8秒原则;
2. 评判的只是:用户从云服务器下载文件的速度;
3. 页面的标准尺寸大小为:60KB(字节);
大概会有这样的一个结果,1Mbps的带宽支持的连接数为:17个【1x1024x8/(60x8)=17.06】
因此,N Mbps带宽可以支持的同时在线人数大概为N*17个
此17个是指,同一时间瞬间并发访问的人数。

2,【如何排除干扰找到问题】


排除问题,SRS本身这种量级没问题的,SRS可以承担推流7.5k的并发和拉流10K的量,那么问题可能在带宽或者很差的网络环境

【问题1:带宽】

如果没有外网ECS监控面板的情况下,
可以在内网部署一个1m带宽的srs服务器来模拟
利用mac端开发工具Network Link Conditioner去模拟固定的带宽 
Hardware_IO_Tools_for_Xcode
http://adcdownload.apple.com/Developer_Tools/Hardware_IO_Tools_for_Xcode_7.3/Hardware_IO_Tools_for_Xcode_7.3.dmg

【问题2:客户端网络环境差】

可以在内网部署一个1m带宽的srs服务器并且客户端网络环境很差的情况
利用手机端Network Link Conditioner去模拟比较差的网络环境

其他辅助工具

SRS本身自带测试带宽工具
https://github.com/ossrs/srs/wiki/v1_CN_BandwidthTestTool
SRS可以打印更详细的日志,需要配置
https://github.com/ossrs/srs/wiki/v1_CN_SrsLog
SRS本身有可以做模拟测试并发的工具
可参看SRS的performance和benchmark 
https://github.com/ossrs/srs/wiki/v1_CN_Performance

3,【问题如何解决】


【问题1:客户端网络状态差怎么处理】

竞品参考: 【花椒,映客】直播 在网络状况不好的情况下能做到什么效果

方法1:自适应码率
方法2:重连 (推流端、拉流端)

【问题2:带宽不够怎么办】

1.更高压缩率 h265 / vp9
难度系数极高,工作量在服务器和客户端

2.srs集群
难度系数较高,工作量在服务器和运维
参考http://my.oschina.net/fengjihu/blog/416883

方法1:用edge服务器
推流推到origin,拉流从edge走,origin和edge之间走内网
https://github.com/ossrs/srs/wiki/v2_CN_Edge

方法2:用ossfs+cdn
走cdn的带宽,oss的流量,好处是cdn比ecs的流量便宜,oss的存储比ecs的便宜
推流端不多的运营状态下合适,特别是公司现有oss和cdn的情况
ossfs阿里云的ecs挂载程序,
https://github.com/aliyun/ossfs,
使得oss像一个远程硬盘一样,内网不费流量
srs的生成路径写到oss,拉流走cdn的流量,推流走ecs的流量

3.买买买
难度系数各公司情况不一,工作量在众老板
开发状况下,可以再申请一个高带宽的阿里云服务器,按量付费,用完释放掉,可以做个镜像,方便使用时恢复备份
这种ecs按量付费简单粗暴的情况下计算
10m带宽 可满足 12.8个并发的带宽

800kbps的码率下,1小时 1个端350m 左右

如果按量付费,0.8元/GB推荐
100m带宽 并发数100个 35g左右 28元/小时 ,基础费用是600左右,见下图

一般开发状态下5m 既可,6个并发左右,基础费用596元,0.2元每小时,大概148.8/月

[直播技术实践]带宽与网络问题解析_第2张图片
IMG_1399.PNG
[直播技术实践]带宽与网络问题解析_第3张图片
IMG_1398.PNG

有兴趣一起啃源码,直播开源qq交流群:230586765

其他相关文档:
【直播】较为完整的开源直播框架[服务器,iOS,android]
http://www.jianshu.com/p/b40c871d77bd

你可能感兴趣的:([直播技术实践]带宽与网络问题解析)