记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

流媒体压力测试程序编译与使用

流媒体压力测试程序编译与使用

srs-bench
webRTC协议压力测试(新)
hls/http/rtmp-play/rtmp-publish/flv压力测试(经典)
服务器负载测试工具SB(SRS Bench):
模拟huge并发:2G内存就可以开300k连接。基于states-threads的协程。
支持HLS解析和测试,下载ts片后等待一个切片长度,模拟客户端。支持HLS点播和直播。执行程序:./objs/sb_hls_load
支持HTTP负载测试,所有并发重复下载一个http文件。可将80Gbps带宽测试的72Gbps。执行程序:./objs/sb_http_load 
支持RTMP流播放测试,一个进程支持5k并发。执行程序:./objs/sb_rtmp_load
支持RTMP流推流测试,一个进程支持500个并发。执行程序:./objs/sb_rtmp_publish
RTMP协议使用高性能服务器SRS(SimpleRtmpServer)的协议栈。
下载编译过程:
XML/HTML代码
  1. 安装编译需要组件:
  2. apt-get -y install git curl wget uzip build-essential cmake
  3. 下载编译:
  4. git clone https://github.com/ossrs/srs-bench.git
  5. git checkout master
  6. ./configure
  7. make
编译srs-bench,出现http_parser.c:2093:18: error: this statement may fall through [-Werror=implicit-fallthrough=] found_at = 1;
原因是http-parser的编译同时打开了-Wall -Wextra -Werror
-Wimplicit-fallthrough,是C++17标准引入的警告选项,因为这个地方没有break。如果编译时有编译选项-Wextra,该编译选项将添加。-Werror将警告视为错误报出。
解决方案
vim objs/http-parser-2.1/Makefile
把其中的     CFLAGS += -Wall -Wextra -Werror
改为           CFLAGS += -Wall -Wextra
再把config文件中的解压的那两行改为
#rm -rf ${GLOBAL_DIR_OBJS}/http-parser-2.1 && cd ${GLOBAL_DIR_OBJS} && unzip ../3rdparty/http-parser-2.1.zip &&
cd objs/http-parser-2.1 &&
再重新./configure就OK啦。
其实就是给Makefile文件中 -Werror 去掉,然后根目录的 configure 文件中删除http-parser-2.1文件重新解压的命令前面加上#注释掉,不让刚才修改的删除了,当然也可以直接给 3rdparty/http-parser-2.1.zip 这个文件中Makefile修改下上传,就可以直接编译。编译的程序在 objs 目录中。
docker直接测试:
XML/HTML代码
  1. docker run --rm -it --network=host --name sb ossrs/srs:sb \
  2.     ./objs/sb_rtmp_load -c 1 -r rtmp://127.0.0.1:1935/live/livestream
  3. For HTTP-FLV benchmark:
  4.  
  5. docker run --rm -it --network=host --name sb ossrs/srs:sb \
  6.     ./objs/sb_http_load -c 1 -r http://127.0.0.1:8080/live/livestream.flv
  7. For HLS benchmark:
  8.   
  9. docker run --rm -it --network=host --name sb ossrs/srs:sb \
  10.     ./objs/sb_hls_load -c 1 -r http://127.0.0.1:8080/live/livestream.m3u8
  11. Or from Aliyun mirror:
  12.   
  13. docker run --rm -it --network=host --name sb \
  14.     registry.cn-hangzhou.aliyuncs.com/ossrs/srs:sb \
  15.     ./objs/sb_rtmp_load -c 1 -r rtmp://127.0.0.1:1935/live/livestream
使用命令 docker kill sb 可以直接关闭并删除程序。

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):