这个负载测试工具是网游分享的工具,可以在http://blog.csdn.net/win_lin/article/details/11835011 或者https://github.com/winlinvip/st-load 找到非常详细的介绍,包括如何安装,如何使用。

服务器负载测试工具(st-load):

  1. 模拟huge并发:2G内存就可以开300k连接。基于states-threads的协程。
  2. 支持HLS解析和测试,下载ts片后等待一个切片长度,模拟客户端。支持HLS点播和直播。
  3. 支持HTTP负载测试,所有并发重复下载一个http文件。可将80Gbps带宽测试的72Gbps。
  4. 支持RTMP流测试,一个进程支持5k并发。使用nginx-rtmp的协议直接将chunk流解析为messgae。

流媒体相关补充

rtmp://10.169.0.66/rtmp/live 这样的格式,我们称之为一个rtmp流。通用格式为 rtmp://ip_addr/application_name/stream_name(id)

使用方法

将工具下载下来:Git clone https://github.com/winlinvip/st-load.git

编译:

  • cd st-load
  • ./configure
  • make

使用:./objs/sb_rtmp_load -c 1 -r rtmp://127.0.0.1:1935/live/livestream

更多使用方法

Usage: ./sb_rtmp_publish <Options> <-u URL>

./sb_rtmp_publish base on st(state-threads), support huge concurrency.

Options:

 -c CLIENTS, --clients CLIENTS    The concurrency client to start to request. defaut: 1
-r URL, --url URL The load test url for each client to download/process.
-t REPEAT, --repeat REPEAT The repeat is the number for each client to download the url.
ie. rtmp://127.0.0.1:1935/live/livestream_{i}
default: 0. 0 means infinity.
-s STARTUP, --start STARTUP The start is the ramdom sleep when thread startup in seconds.
defaut: 5.00. 0 means no delay.
-d DELAY, --delay DELAY The delay is the ramdom sleep when success in seconds.
default: 1.00. 0 means no delay. -1 means to use HLS EXTINF duration(HLS only).
-e ERROR, --error ERROR The error is the sleep when error in seconds.
defaut: 3.00. 0 means no delay.
-m SUMMARY, --summary SUMMARY The summary is the sleep when report in seconds.
etasks is error_tasks, statks is sub_tasks, estatks is error_sub_tasks.
duration is the running time in seconds, tduration is the avarage duation of tasks.
nread/nwrite in Mbps, duration/tduration in seconds.
defaut: 30.00. 0 means no delay.
-v, --version Print the version and exit.
-h, --help Print this help message and exit.

Examples:1. start a client

  ./sb_rtmp_publish -i doc/source.200kbps.768x320.flv -c 1 -r rtmp://127.0.0.1:1935/live/livestream

2. start 1000 clients

  ./sb_rtmp_publish -i doc/source.200kbps.768x320.flv -c 1000 -r rtmp://127.0.0.1:1935/live/livestream_{i}

3. start 10000 clients

  ./sb_rtmp_publish -i doc/source.200kbps.768x320.flv -c 10000 -r rtmp://127.0.0.1:1935/live/livestream_{i}

4. start 100000 clients

  ./sb_rtmp_publish -i doc/source.200kbps.768x320.flv -c 100000 -r rtmp://127.0.0.1:1935/live/livestream_{i}

http负载:./objs/sb_http_load

hls负载: ./objs/sb_hls_load

rtmp收看负载: ./objs/sb_rtmp_load

rtmp创建直播流负载: ./objs/sb_rtmp_publish

如果不知道需要跟什么参数可以使用 ./objs/sb_http_load -help 查看

Report分析

[2015-06-01 17:00:06.981][0][trace] params url=rtmp://10.169.0.66/rtmp/live, threads=1, start=5.00, delay=1.00, error=3.00, report=30.00, count=0

[2015-06-01 17:00:06.981][0][trace] create thread for task #1 success

[2015-06-01 17:00:06.981] [report] [4391] threads:0 alive:0 duration:0 tduration:0 nread:0.00 nwrite:0.00 tasks:0 etasks:0 stasks:0 estasks:0

[2015-06-01 17:00:06.981][1][trace] start random sleep 4338ms

[2015-06-01 17:00:11.324][1][trace] start to process RTMP play task #1, schema=rtmp, host=10.169.0.66, port=1935, tcUrl=rtmp://10.169.0.66:1935/rtmp, stream=live, startup=5.00, delay=1.00, error=3.00, count=0

[2015-06-01 17:00:36.981] [report] [4391] threads:1 alive:1 duration:30 tduration:0 nread:2.62 nwrite:0.00 tasks:1 etasks:0 stasks:0 estasks:0

[2015-06-01 17:01:06.981] [report] [4391] threads:1 alive:1 duration:60 tduration:0 nread:2.88 nwrite:0.00 tasks:1 etasks:0 stasks:0 estasks:0

[2015-06-01 17:01:36.981] [report] [4391] threads:1 alive:1 duration:90 tduration:0 nread:2.96 nwrite:0.00 tasks:1 etasks:0 stasks:0 estasks:0

[2015-06-01 17:02:06.981] [report] [4391] threads:1 alive:1 duration:120 tduration:0 nread:3.01 nwrite:0.00 tasks:1 etasks:0 stasks:0 estasks:0

收看直播与创建直播只需要关注:nread与nwrite即可。其他内容有待进一步调查

HTTP/HLS/RTMP超级负载测试工具(转)的更多相关文章

  1. HTTP/HLS/RTMP超级负载测试工具

    这个负载测试工具是网游分享的工具,可以在http://blog.csdn.net/win_lin/article/details/11835011 或者https://github.com/winli ...

  2. Locust分布式负载测试工具入门

    忽略元数据末尾 回到原数据开始处 Locust简介 Locust是一个简单易用的分布式负载测试工具,主要用来对网站进行负载压力测试. 以下是github上的仓库地址 https://github.co ...

  3. 开源负载测试工具k6比JMeter更容易的5件事

    k6是GitHub上提供的开源负载测试工具.它是用Go编写的,并运行用JavaScript编写的测试脚本.它受到了开发人员,测试人员和DevOps团队的强烈兴趣,并拥有超过4400名GitHub明星. ...

  4. loadrunner(预测系统行为和性能的负载测试工具)

    LoadRunner,是一种预测系统行为和性能的负载测试工具.通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试.企业使用LoadRu ...

  5. Apache JMeter开源压力测试/负载测试工具 2.12 官方最新版

    软件介绍   Jmeter是一款使用Java开发的,开源免费的,测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试),而且用Jmeter 来测试 Restful API, 非常好用. 如何学 ...

  6. 网站压力负载测试工具:Web版已逝,只好送大伙单机版

    前言: 最近老板资金周转出了点问题,工资好久没发了,于是暂闲置在家,静待老板弄到钱东山再起的消息: QQ群里,偶尔不时的会有人问,原来的分布式网站负载工具怎么下载不了啦?或者不能用啦?之类的问题. 我 ...

  7. 系统负载测试工具-LoadRunner

    LoadRunner的主要作用是对系统压力测试进行分析 与之相类似的工具是:badboy:录制脚本工具+jmeter:分析结果工具

  8. apache 负载测试工具 ab

    1.ab工具是apache自带的工具,可以测试服务器的负载能力 2.ab工具的参数 -v:版本 -c:并发数 -n:请求数 -t: 测试所进行的最大秒数 3.例子:ab -c 100 -n 100 - ...

  9. Web性能和负载测试工具补充

    压力测试文档:https://yq.aliyun.com/articles/377543https://www.cnblogs.com/ahjxxy/archive/2012/09/17/268899 ...

随机推荐

  1. 发掘StateListAnimator的全部潜能

    原文地址:https://blog.stylingandroid.com/statelistanimator/ 原文作者:Leave a reply 译文出自:安卓巴士 译者: MrlLee 校对者: ...

  2. DevExpress.XtraTreeList

    1. DevExpress.XtraTreeList控件         将其简称为tree,tree其实就是一个树表控件,他像树一样包含具有父子关系的若干节点,同时每个节点又是一个带有多个字段的记录 ...

  3. Winform 遍历 ListBox中的所有项

    foreach(DataRowView row in listBox.Items ) { MessageBox.Show(row["displayMember"].ToString ...

  4. js获取上传图片的尺寸大小

    当上传图片时,有时候需要控制下上传图片的尺寸大小,需要给个提示 //获取图片的尺寸,控制尺寸大小 var reader = new FileReader(), img = new Image(); / ...

  5. Linux7个runlevel

    Linux系统有7个运行级别(runlevel) 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 运行级别 ...

  6. InternalNative.cpp

    1 /* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Ver ...

  7. Angular 学习笔记——sublime

    div.row>div.col-md-12*10 就等于 <div class="row">    <div class="col-md-12&q ...

  8. 【MVC5】First Unit Test

    1.控制器测试 注意点: 1.控制器中不要包含业务逻辑 2.通过构造函数传递服务依赖 例:MathController中有一个Add的Action using FirstUnitTest.Servic ...

  9. Laravel之中间件

    一.中间件的作用 HTTP 中间件提供了一个便利的机制来过滤进入应用的 HTTP 请求.例如,Laravel 包含了一个中间件来验证用户是否经过授权,如果用户没有经过授权,中间件会将用户重定向到登录页 ...

  10. mysql中show processlist过滤和杀死线程

    select * from information_schema.processlist where HOST LIKE '%192.168.1.8%'; kill ID列