原文链接:

http://blog.csdn.net/win_lin/article/details/11835011

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

1. 模拟huge并发:2G内存就可以开300k连接。基于states-threads的协程。

2. 支持HLS解析和测试,下载ts片后等待一个切片长度,模拟客户端。支持HLS点播和直播。

3. 支持HTTP负载测试,所有并发重复下载一个http文件。可将80Gbps带宽测试的72Gbps。

4. 支持RTMP流测试,一个进程支持5k并发。使用nginx-rtmp的协议直接将chunk流解析为messgae。

state-threads用来模拟超级并发,并简化异步socket的逻辑为同步socket,http-parser解析http协议部分。

这两个库设计都很巧妙,所以我开了一个项目:

state-threads之前就有写过文章说明,那时候主要是支持高并发的rtmp服务器,也是并发和异步变为同步的协程很方便。

http-parser用yum就可以search到,它其实设计得也相当巧妙,相当于只是解析buffer的http内容,并不负责网络部分。libcurl/poco等都带了网络处理,所以不合适。

举例说明,http_parser_parse_url这个函数,解析url,设计得非常有意思,不是返回字符串,而是返回位置索引,譬如主机头在什么位置长度多长等等。

[winlin@dev6 st-hls-load-run]$ ./objs/http-parser-2.1/url_parser_g get

Parsing

Parse ok, result :

field_set: 0xf, port: 3080

field_data[0]: off: 0 len: 4 part: "http

field_data[1]: off: 7 len: 13 part: "192.168.2.111

field_data[2]: off: 21 len: 4 part: "3080

field_data[3]: off: 25 len: 13 part: "/hls/hls.m3u8

提供了url_parser这个示例程序。

另外,还有个例子是nginx大牛Igor写的,parsetrace.c:

/* Based on src/http/ngx_http_parse.c from NGINX copyright Igor Sysoev

就是读取文件,然后用http-parser解析。

这个工具写完,支持HTTP文件和HLS两种负载测试。

对比下代码行数:

[winlin@dev6 src]$ find . -name "*.*pp"|xargs wc -l

35 ./upp/upp.upp

156 ./main/htl_main_hls_load.cpp

156 ./main/htl_main_http_load.cpp

45 ./app/htl_app_http_client.hpp

53 ./app/htl_app_http_base.cpp

32 ./app/htl_app_http_base.hpp

44 ./app/htl_app_http_load.cpp

172 ./app/htl_app_m3u8_parser.cpp

228 ./app/htl_app_http_client.cpp

138 ./app/htl_app_hls_load.cpp

18 ./app/htl_app_http_load.hpp

30 ./app/htl_app_m3u8_parser.hpp

28 ./app/htl_app_hls_load.hpp

91 ./os/htl_os_st.hpp

280 ./os/htl_os_st.cpp

67 ./core/htl_core_log.hpp

40 ./core/htl_core_error.hpp

48 ./core/htl_core_log.cpp

2 ./core/htl_core_error.cpp

138 ./core/htl_core_http_parser.cpp

53 ./core/htl_core_http_parser.hpp

20 ./core/htl_stdinc.hpp

1874 total

对比httpload,只能做http文件测试的工具:

[winlin@dev6 http_load-12mar2006]$ ls|xargs wc -l

1857 http_load.c

107 port.h

328 timers.c

106 timers.h

8 version.h

2406 total

当ts文件码率为400kbps时,一个进程能开10000连接。http load只能开1024每进程。

效率大约是http-load的10倍,若进行小文件测试,可以到100倍以上。

单进程开启1k连接,不sleep取完一个接着取下一个,能将虚拟机的回环网卡带宽请求到8Gbps,1CPU的虚拟机。

基本上这个工具用来做http测试模拟大并发足够了。

直播网站并发测试软件,HTTP/HLS/RTMP超级负载测试工具相关推荐

  1. 手机模拟续航测试软件,续航能力:使用场景模拟测试_平板电脑评测-中关村在线...

    ■电池容量 龙酷 X战神官方标配的是一块4000mAh的锂聚合物电池,并且可通过拆卸机身后盖的方式来更换电池,延长续航时间.不影响整体便携性的情况下还能做成可拆卸后盖的设计,这一点起码给了用户一种额外 ...

  2. 中文打字速度测试软件官网,中文打字速度测试软件

    使用该软件能够帮助用户测试自己的打字速度,阿宽中文打字速度测试软件专业的字数测试软件想知道自己打字速度水平赶快下载试试吧! 软件介绍: 中文打字速度测试软件是一款专业的用来测试打字速度的软件,软件安精 ...

  3. win7x64注册表显卡渲染速度_Geek3D GpuTest GUI(显卡测试软件)下载-Geek3D GpuTest GUI(显卡测试软件)免费版下载v0.7.0...

    Geek3D GpuTest GUI 能够对显卡的GPU.OpenGL进行基准压力的测试,而且测试完成也相当的快捷,功能强大,体积小巧,目前支持在windows 64位系统上进行测试,帮助用户检测显卡 ...

  4. 小学生数学测试软件c语言流程图,小学生数学测试软件-C语言课程设计

    小学生数学测试软件-C语言课程设计 C语言课程设计 设计期限 2013 年 6 月 17 开始 至 2013 年 6 月 20 结束 系 别 信息管理与信息系统 专 业 班级 学生姓名 学号 指导教师 ...

  5. 测试软件jm,JM3818无线静态应变测试分析系统

    JM3818无线静态应变测试分析系统每台仪器8点,可无限扩展.特别适合测点分布相对分散的工程测试场合. 系统支持有线和无线组网测试方式.有线方式支持单台USB接口直接联机测试:多台之间通过总线级联组网 ...

  6. 显卡测试软件3d mark,AllBenchmark(3D显卡测试工具)1.3 免费版

    ALLBenchmark是一个3D显卡测试软件和CPU测试超强工具,适合配置比较高的计算机,老电脑就不要拿出来测了,会宕机的. 以下为官方介绍(机器翻译,凑合看吧): 它可以检查您的计算机的图形处理能 ...

  7. 手机网络专业测试软件,3个专业网速测试APP,免费无广告

    3个专业网速测试APP,免费无广告 2021-02-01 22:01:54 332点赞 2352收藏 139评论 创作立场声明:应用市场大部分测速APP不是有内购就是充满广告,分享3个专业又免费无广告 ...

  8. 温度压力测试软件什么好,鲁大师温度压力测试多少度正常?鲁大师压力测试靠谱吗?...

    类似鲁大师这样的测试软件其实都是制造硬件处理压力,通过主板上的温度传感器的数据得出结论,也并非是不靠谱,至少可以作为一个有效的参考,我们通过鲁大师温度压力测试后多少度正常呢?请听下文分析. 教程中使用 ...

  9. 智能电视 屏幕测试软件,详解如何使用液晶电视测试软件

    详解如何使用液晶电视测试软件 昨天舅舅要买液晶电视,邀我前往相助,带了相机和本本,又下载了TFTTest和LCD-Test这俩测试软件,整装出发. 要了解一台高清电视的性能,最好的方法就是进行详细的测 ...

  10. 网络通信误码率测试软件,DMR终端直通模式误码率测试软件的设计与实现

    摘要: 直通模式下的DMR(Digital Mobile Radio)数字移动无线电终端,其通信性能受到的噪声和干扰的影响.采用误码率测试仪测量DMR终端点对点通信过程中产生的误码率,可以评估研发出来 ...

最新文章

  1. linux ping监控脚本,WINDOWS和LINUX下带时间的PING包监控脚本
  2. 进程共享变量#pragma data_seg用法
  3. 创业不要把大公司当直接对手
  4. Java查询图书信息
  5. c语言连接别人的网络,链接别人的无线网络WIFI不知道密码该如何获取
  6. kinetis时钟模块MCG详解
  7. Himall商城文件帮助类IOHelper(2)
  8. 微信小程序订单支付后端demo
  9. 腾讯应用宝正式开放 手游渠道争抢首发
  10. RSF 分布式 RPC 服务框架的分层设计
  11. 缠论-2011.4.11晚
  12. Permission denied(publickey) 解决办法
  13. C++ 一文解决 数据库ODB 安装/调试/使用的问题
  14. 输入数字输出中文大写python_阿拉伯数字转换成中文大写,中文货币的表达方式 python...
  15. HTML+CSS大作业: 抗击疫情网页制作作业_疫情防控网页设计模板HTML_ 简单学生网页设_静态HTML+CSS网站制作成品...
  16. CVPR 2019 目标检测论文汇总
  17. 二、Python3 基本数据类型
  18. mysql查询本用户的表的列名等信息_mysql常用命令查询手册
  19. MATLAB中randi函数的用法
  20. WRF后处理:python cartopy绘制土地利用/土地分类图//python绘制WRF下垫面类型(以北极为例)

热门文章

  1. Belief propagation
  2. javaWeb项目加入IP黑白名单
  3. 天猫精灵通过AliOS网桥控制Zigbee设备
  4. 云笔记+心情日记类APP推荐
  5. 路由器 OSPF 路由汇总配置
  6. 51cto 检测ip地址冲突_IP地址冲突解决办法
  7. C语言游戏编程之flappy birds
  8. 应用程序界面开发 - 自定义用户控件布局控件的使用
  9. python使用selenium爬取dell官网驱动(一):获取遍历各驱动的下载网址
  10. Windows修改本地域名解析文件hosts