diff --git a/rtmp拉流性能测试.md b/rtmp拉流性能测试.md new file mode 100644 index 0000000..5db6a54 --- /dev/null +++ b/rtmp拉流性能测试.md @@ -0,0 +1,77 @@ +# 一、测试环境 +- 测试日期:2022/5/18 +- 代码版本:git hash: c7d7999f +- cpu: Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz +- 操作系统:CentOS release 6.3 (Final) +- 内存:16GB +- 网卡:127.0.0.1 +- 测试码流: [200kbps.768x320.flv](https://raw.githubusercontent.com/ossrs/srs/develop/trunk/doc/source.200kbps.768x320.flv) +- 编译器:gcc (GCC) 8.2.0 +- zlmediakit编译类型:Release +- malloc库:ptmalloc(未开启jemalloc) + +# 二、rtmp拉流性能测试 +- config.ini配置文件修改(主要开启合并写、按需转协议): +```patch +diff --git a/conf/config.ini b/conf/config.ini +index c2d4613f..99ce5c84 100644 +--- a/conf/config.ini ++++ b/conf/config.ini +@@ -51,12 +51,12 @@ addMuteAudio=1 + #如果不删除将会接着上一次的数据继续写(录制hls/mp4时会继续在前一个文件后面写) + resetWhenRePlay=1 + #是否默认推流时转换成hls,hook接口(on_publish)中可以覆盖该设置 +-publishToHls=1 ++publishToHls=0 + #是否默认推流时mp4录像,hook接口(on_publish)中可以覆盖该设置 + publishToMP4=0 + #合并写缓存大小(单位毫秒),合并写指服务器缓存一定的数据后才会一次性写入socket,这样能提高性能,但是会提高延时 + #开启后会同时关闭TCP_NODELAY并开启MSG_MORE +-mergeWriteMS=0 ++mergeWriteMS=300 + #全局的时间戳覆盖开关,在转协议时,对frame进行时间戳覆盖 + #该开关对rtsp/rtmp/rtp推流、rtsp/rtmp/hls拉流代理转协议时生效 + #会直接影响rtsp/rtmp/hls/mp4/flv等协议的时间戳 +@@ -72,15 +72,15 @@ enable_audio=1 + ###### 如果某种协议你想获取最好的用户体验,请置0(第一个播放者可以秒开,且不花屏) + + #hls协议是否按需生成,如果hls.segNum配置为0(意味着hls录制),那么hls将一直生成(不管此开关) +-hls_demand=0 ++hls_demand=1 + #rtsp[s]协议是否按需生成 +-rtsp_demand=0 ++rtsp_demand=1 + #rtmp[s]、http[s]-flv、ws[s]-flv协议是否按需生成 +-rtmp_demand=0 ++rtmp_demand=1 + #http[s]-ts协议是否按需生成 +-ts_demand=0 ++ts_demand=1 + #http[s]-fmp4、ws[s]-fmp4协议是否按需生成 +-fmp4_demand=0 ++fmp4_demand=1 +``` +- 推流命令: +```bash +ffmpeg -stream_loop -1 -re -i ~/Downloads/source.200kbps.768x320.flv -acodec copy -vcodec copy -f flv rtmp://ip:port/live/test +``` +- 拉流命令: +```bash +#加大文件描述符个数 +ulimit -n 102400 +#启动1万个rtmp拉流 +./test_bench_pull -c 10000 -i rtmp://127.0.0.1/live/test +``` + +- top信息: + +![图片](https://user-images.githubusercontent.com/11495632/169045558-bcf711b8-b27c-4372-a1d2-ccb0e1a33d65.png) + + +- perf top信息: + +![图片](https://user-images.githubusercontent.com/11495632/169045971-ebf7da67-00f1-4c63-8c17-3c27937a5016.png) + +- nload信息(平均2.34Gb/s): + +![图片](https://user-images.githubusercontent.com/11495632/169046147-39376f04-471b-4de2-a345-0e41982a612b.png)