跳转到内容

压力测试工具 stress

stress 是面向 Monibuca 服务器的独立压测程序,与 Monibuca 进程分离部署。使用原生 RTMP / RTSP / HTTP-FLV / HLS 等客户端,以 MP4 或 FLV 文件循环作为媒体源,不依赖 FFmpeg,可对目标服务器施加可规模的推流与拉流负载。

能力说明
多协议推流RTMP、RTSP;完整构建另含 SRT 推流、WebRTC WHIP 推流
多协议拉流HTTP-FLV、HLS、RTSP、RTMP
媒体源本地 MP4/FLV 循环;Web UI 可上传测试文件
控制台默认 http://localhost:8787/,启停推拉、查看连接与码率
CLI无界面批量压测、定时结束、适合 CI / 脚本
与 Monibuca 关系仅需目标地址可达,不要求 Monibuca 开启内置压测 API
  1. 启动 Monibuca(例如 安装部署 中的默认端口)。
  2. 下载并解压对应平台的 stress 包(见下方下载),或使用仓库内 cargo build -p stress --release --features full 自行编译。
  3. 将测试用 MP4 放在工作目录(默认查找 test.mp4,可在配置中修改 default_input)。
  4. 启动 stress:
Terminal window
./stress --config config.yaml
  1. 浏览器打开 **http://localhost:8787/**,配置推流 URL(如 rtmp://127.0.0.1:1935/live/stress_%d)与路数后启动;拉流示例:http://127.0.0.1:8180/live/stress_0.flv
Terminal window
# 仅 Web UI + API
./stress --config config.yaml
# 启动时推 10 路 RTMP,保留控制台
./stress --push 10 --push-url rtmp://127.0.0.1:1935/live/test_%d
# 推 5 路、拉 20 路,运行 120 秒后退出(不监听 HTTP)
./stress --push 5 --push-url rtmp://127.0.0.1:1935/live/p_%d \
--pull 20 --pull-url http://127.0.0.1:8180/live/test.flv \
--duration 120 --no-serve
# 完整手册
./stress help

%d 在 URL 中会被替换为连接序号,用于多路不同流名。

发布包内附带示例 config.yaml

listen: "0.0.0.0:8787"
default_input: "test.mp4"
loop_file: true
media_dir: "."
字段说明
listenHTTP 控制台与 API 监听地址
default_input未指定文件时使用的预设名
loop_file是否循环播放媒体文件
media_dir扫描本地 MP4/FLV 预设的目录
方法路径说明
GET/api/stress/status指标、会话状态、已扫描预设
GET/api/stress/presetsmedia_dir 中的 MP4/FLV 列表
POST/api/stress/media上传测试文件(multipart file
DELETE/api/stress/media清除已上传文件
POST/api/stress/push/{count}JSON {"remoteURL","presetFile?"} 启动推流
POST/api/stress/pull/{count}JSON {"remoteURL"} 启动拉流
POST/api/stress/stop/push停止推流
POST/api/stress/stop/pull停止拉流

Monibuca 主程序下载 相同,预编译包由 Release CI 发布到 https://download.m7s.live

  • 正式版https://download.m7s.live/bin/<文件名>
  • Betahttps://download.m7s.live/beta/<文件名>

解压后包含 stress(或 Windows 下 stress.exe)及示例 config.yaml。Linux / macOS 包内二进制名分别为 stress_linux_*stress_darwin_*

也可在 GitHub Releases 获取与 tag 绑定的同名附件。

  1. 在一台(或多台)机器上部署 Monibuca,确认推流/拉流端口与防火墙。
  2. 在另一台机器运行 stress,避免与服务器争抢 CPU。
  3. 先小规模验证(如推 1 路、拉 1 路),再在控制台逐步提高路数。
  4. 通过 Monibuca Admin 或 API 观察连接数、码率与延迟;stress 控制台查看客户端侧统计。
  5. 结束后在 UI 或 API 停止推拉,确认状态归零。

联系我们

微信公众号:不卡科技 微信公众号二维码
腾讯频道:流媒体技术 腾讯频道二维码
QQ 频道:p0qq0crz08 QQ 频道二维码
QQ 群:751639168 QQ 群二维码