SRS srs-bench
1 srs-bench
音视频压测工具,包括RTMP/FLV/WebRTC/GB28181等,未来还会完善。
SB(SRS Bench) is a set of benchmark and regression test tools, for SRS and other media servers, supports HTTP-FLV, RTMP, HLS, WebRTC and GB28181.
For RTMP/HLS/FLV benchmark, please use branch master.
1下载代码和编译:
git clone -b feature/rtc https://github.com/ossrs/srs-bench.git && cd srs-bench && make
编译依赖golang环境 ubuntu16.04安装高版本 golang
flag provided but not defined: -mod
1.2 golang安装
到官网:All releases - The Go Programming Language查找对应的版本
wget https://www.golangtc.com/static/go/1.9.2/go1.9.2.linux-amd64.tar.gz --no-check-certificate
tar -xvf go1.20.linux-amd64.tar.gz
vi ~/.bashrc
//设置环境变量export GOPATH=$HOME/go_1.20/go
export PATH=$PATH:$GOPATH/binsource ~/.bashrc
//test
go version
go version go1.20 linux/amd64
1.3 更改go源
make
下载依赖报错

尝试手动下载 失败
go get -u golang.org/x/sys
更改GO源
t@ubuntu:~/go_1.20$ go env -w GOPROXY=https://goproxy.cn,direct
设置完之后,我以为直接生效了,又去go get了一下,发现还是报一样的错,有点失望,原来需要依赖于 go module 功能,即go的环境变量GO111MODULE要打开,如何打开?如下命令即可,在终端执行
go env -w GO111MODULE=on
下载依赖
go mod vendor
1.4 编译srs-bench
make

编译会生成下面的工具:
./objs/srs_bench压测,模拟大量客户端的负载测试,支持SRS、GB28181和Janus三种场景。./objs/srs_test回归测试(SRS),SRS服务器的回归测试。./objs/srs_gb28181_test回归测试(GB28181),GB服务器的回归测试。./objs/srs_blackbox_test黑盒测试(SRS),SRS服务器的黑盒测试,也可以换成其他媒体服务器。
Note: 查看工具的全部参数请执行
./objs/xx -h
2 负载测试 单机 rtc 能力
注意 srs-bench分支 不同分支测试目标不同
webrtc: feture/rtc分支
rtmp;tree/srs-librtmp
2.1 启动srs
./objs/srs -c conf/console.conf

Player for Live
直播播放压测,一个流,很多个播放。
首先,推流到SRS:
2 .2obs推流 rtc

然后,启动压测,比如100个:
2.3 测试用例说明
通过 ./objs/srs_bench -h命令,我们可以查看srs-bench提供了哪些压测的手段:

2.4 压测播放rtc
./objs/srs_bench -sr webrtc://192.168.1.116/live/livestream -nn 100
2.5 sdata查看负载情况
压测过程如何查看srs服务器的性能呢,有两种方式:
- 直接通过desktop提供的容器状态可视化看板,但是能看到的内容有限
- 通过docker ps/sdat/top等命令来监测,监测的维度就比较多了
dstat -tglmsn --top-cpu --top-mem --top-io

srs server log 负载信息

srs服务没有开多进程或者多线程来处理高并发 内部通过协程来实现高并发 ,100多播放一路 1280*720 i5cpu 16G内存 cpu已占用 50% 内存剩余2G
2.6 官方压测数据
上述srs 下行播放并发压测比较简单 rtmp hls等压测 参照官网
SRS Server - 高性能、高并发、高扩展性和可读性的网络服务器架构 | SRS
相关文章:
SRS srs-bench
1 srs-bench 音视频压测工具,包括RTMP/FLV/WebRTC/GB28181等,未来还会完善。 SB(SRS Bench) is a set of benchmark and regression test tools, for SRS and other media servers, supports HTTP-FLV, RTMP, HLS, WebRTC and GB28181. For RTMP/HLS/F…...
HackTheBox-Starting Point--Tier 1---Appointment
文章目录 一 题目二 实验过程 一 题目 Tags Web、Databases、Injection、Apache、MariaDB、PHP、SQL、Reconnaissance、SQL Injection译文:Web、数据库、注入、Apache、MariaDB、PHP、SQL、侦察、SQL 注入Connect To attack the target machine, you must be on …...
【工具】Java请求带http重定向的地址 自动进行重定向
【工具】Java请求带http重定向的地址 自动进行重定向 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL;public class HTTPGETWithMultipleHeaders {public static voi…...
接口自动化测试方案
1、引言 1.1 文档版本 版本 作者 审批 备注 V1.0 XXXX 创建测试方案文档 1.2 项目情况 项目名称 XXX 项目版本 V1.0 项目经理 XX 测试人员 XXXXX,XXX 所属部门 XX 备注 1.3 文档目的 本文档主要用于指导XXX-YY项目常用接口自动化测试…...
TikTok文化探索:热议时事与社会话题
在当今数字时代,社交媒体平台如TikTok已经成为了我们日常生活中不可或缺的一部分。它不仅仅是一个娱乐应用,也是一扇窥视世界、探讨时事和社会话题的窗户。本文将深入探讨TikTok如何成为文化探索的平台,热议时事和社会话题,以及它…...
springboot操作nosql的mongodb,或者是如何在mongodb官网创建服务器并进行操作
第一步:在mongodb的官网里面创建云服务器 点进去 这是免费的,由于是一个项目只可以创建一个,这里我已经创建好了 用本地的mongodb服务也是可以的 第二步:点击connect,下载连接mongodb的软件:MongoDBCompass 第三步&am…...
QWEN technical report
通义千问-Qwen技术报告细节分享 - 知乎写在前面大家好,我是刘聪NLP。 阿里在很早前就开源了Qwen-7B模型,但不知道为什么又下架了。就在昨天阿里又开源了Qwen-14B模型(原来的7B模型也放出来了),同时还放出了Qwen的技术报…...
提升MODBUS-RTU通信数据刷新速度的常用方法
SMART PLC的MODBUS-RTU通信请参考下面文章链接: 【精选】PLC MODBUS通信优化、提高通信效率避免权限冲突(程序+算法描述)-CSDN博客MODBUS通讯非常简单、应用也非常广泛,有些老生常谈的问题,这里不再赘述,感兴趣的可以参看我的其它博文:SMART200PLC MODBUS通讯专题_RXXW…...
PyTorch 与 TensorFlow:机器学习框架之战
深度学习框架是简化人工神经网络 (ANN) 开发的重要工具,并且其发展非常迅速。其中,TensorFlow 和 PyTorch 脱颖而出,各自在不同的机器学习领域占有一席之地。但如何为特定项目确定理想的工具呢?本综合指南[1]旨在阐明它们的优点和…...
超简单理解冒泡排序
1.冒泡排序(Bubble Sort) 较简单排序算法。 它会遍历若干次要排列的数列,每次遍历,会从前往后比较相邻两个数的大小。 如果前者比后者大,就交换他们位置。遍历一次最大元素在数列末尾。重复直到数列有序。 那么遍历需要一个变量控制范围。…...
模拟IC设计工程师成长日记
很多IC设计的新人,不知道进入IC设计行业后会有哪些成长和学习的地方。 很多初入IC设计职场的人也都会比较恐慌,成长进步需要一个时间和经验的积累 今天给大家找了一个叫“模拟IC设计“攻城狮”的成长日记供大家参考. 以模拟IC设计工程师的身份进入职场&a…...
修炼k8s+flink+hdfs+dlink(六:学习namespace,service)
一:什么是namespace? 你可以认为namespaces是你kubernetes集群中的虚拟化集群。在一个Kubernetes集群中可以拥有多个命名空间,它们在逻辑上彼此隔离。 他们可以为您和您的团队提供组织,安全甚至性能方面的帮助! 二&a…...
法语导游就业前景如何?
随着国际交流的日益频繁,旅游业正在迅猛发展。尽管全球讲法语的人数并不算多,但讲法语的国家分布广泛。因此,如何成为一名合法的法语导游,以及法语导游的就业前景如何,成为了法语爱好者比较关注的问题。 我们知道&…...
iOS自动混淆测试处理笔记
1 打开 ipa,导出ipa 路径和配置文件路径会自动填充 2 点击 开始自动混淆测试处理 自动混淆测试是针对 oc 类和oc方法这两个模块进行自动混淆ipa,并ipa安装到设备中运行,通过检测运行ipa包是否崩溃,来对oc类和oc方法进行筛选。如果…...
C51--单片机中断
51单片机是单线程模式,需要用到硬件中断。 一、中断系统 中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。 当中央处理器CPU正在处理某件事的时候,外界发生了紧急事件请求,要求CPU暂停当前工作,转而去处理这个紧急…...
Linux中关于glibc包导致的服务器死机或者linux命令无法使用的情况
glibc是gnu发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX …...
艾泊宇产品战略:华为手机品牌是如何从低端到高端的
华为在过去一直以几百块钱的低端手机为主,但如今已经可以跟苹果一争高下。 这个转变是华为经过了近二十年的艰苦努力才实现的。 我艾泊宇作为一个亲历者深度研究了华为的成长历程,发现这是一个经典的商业教科书案例。 这里面有很多值得今天中国企业学…...
视频批量AI智剪:提升剪辑效率的秘密方法
随着视频内容的爆炸式增长,剪辑师面临着巨大的工作压力。传统的剪辑方法往往效率低下,无法满足快速、高质量的剪辑需求。为了解决这个问题,视频批量AI智剪技术应运而生,成为提升剪辑效率的秘密方法。 视频批量AI智剪是指利用人工…...
linux环境执行jar脚本
一、前言 平常工作中,我们的开发的项目部署到linux环境,以jar包的方式运行,涉及jar包的启动、停止、查看状态等,我们可以通过脚本的方式进行维护,减少自己敲打一长串的命令少敲一个字母或者多敲一个字母,方…...
特权同学FPGA官方全资料包括电子书下载
特权同学FPGA官方全资料包括电子书下载 特权同学倾情奉献海量FPGA学习资料 链接:http://pan.baidu.com/s/1bptgnKF 下载器安装说明 链接:http://pan.baidu.com/s/1dFNXvrV SF-AT7 USB3.0+LVDS+FPGA开发套件 链接:http://pan.baidu.com/s/1c24bVZa SF-HSC USB3.0+LVDS…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
