如何压测流媒体服务器?
介绍一些用于压测流媒体服务器的工具:
st-load
SRS是一个开源的实时视频服务器,它可以支持RTMP、WebRTC、HLS、HTTP-FLV、SRT等多种实时流媒体协议;
SRS的作者为了能更好的验证SRS服务器的流媒体转发性能,同时提供了专门的测试套件 st-load
该套件中提供了:
- sb_hls_load 支持HLS点播和直播
- sb_http_load 支持HTTP负载测试,所有并发重复下载一个http文件
- sb_rtmp_load 支持RTMP流播放测试,一个进程支持5k并发
- sb_rtmp_publish 支持RTMP流推流测试,一个进程支持500个并发
该套件需要在 linux 下运行,它会模拟客户端行为拉流。
使用方法
Build from source, then run RTMP benchmark:
1 | git clone https://github.com/ossrs/srs-bench.git && |
Or directly by docker:
1 | docker run --rm -it --network=host --name sb ossrs/srs:sb \ |
For HTTP-FLV benchmark:
1 | docker run --rm -it --network=host --name sb ossrs/srs:sb \ |
For HLS benchmark:
1 | docker run --rm -it --network=host --name sb ossrs/srs:sb \ |
Or from Aliyun mirror:
1 | docker run --rm -it --network=host --name sb \ |
Note: Please use
docker kill sb
to stop it.
使用 ./objs/sb_rtmp_load
or ./objs/sb_hls_load
or ./objs/sb_http_load
去拉不同协议的流,-c
表示负载数
flazr
flazr 是 RTMP 的一个 java 实现,这个项目提供了一个流媒体服务器和相关的工具类;
该工具可以在 windows 上运行,我们可以使用它来压测 rtmp 拉流;
下载地址:https://sourceforge.net/projects/flazr/files/flazr/
JMeter
使用 JMeter 的BlazeMeter-HLS Plugin,可以压测 hls 播放