MQTT Stresser
go环境请参考https://www.cnblogs.com/saryli/p/9833253.html
Load testing tool to stress MQTT message broker https://github.com/inovex/mqtt-stresser
Build
$ mkdir -p ${GOPATH}/src/github.com/inovex/
$ git clone https://github.com/inovex/mqtt-stresser.git ${GOPATH}/src/github.com/inovex/mqtt-stresser/
$ cd ${GOPATH}/src/github.com/inovex/mqtt-stresser/
$ make
This will build the mqtt stresser for all target platforms and write them to the build/
directory.
Binaries are provided on Github, see https://github.com/inovex/mqtt-stresser.
If you want to build the Docker container version of this, go to repository directory and simply type docker build .
Install
Place the binary somewhere in a PATH
directory and make it executable (chmod +x mqtt-stresser
).
If you are using the container version, just type docker run flaviostutz/mqtt-stresser [options]
for running mqtt-stresser.
Configure
See mqtt-stresser -h
for a list of available arguments.
Run
Simple hello-world test using the public broker.mqttdashboard.com
broker: (please don't DDoS them :))
$ mqtt-stresser -broker tcp://broker.mqttdashboard.com:1883 -num-clients 100 -num-messages 150 -rampup-delay 1s -rampup-size 10 -global-timeout 180s -timeout 20s
10 worker started - waiting 1s
20 worker started - waiting 1s
30 worker started - waiting 1s
40 worker started - waiting 1s
50 worker started - waiting 1s
60 worker started - waiting 1s
70 worker started - waiting 1s
80 worker started - waiting 1s
90 worker started - waiting 1s
100 worker started
....................................................................................................
# Configuration
Concurrent Clients: 100
Messages / Client: 15000
# Results
Published Messages: 15000 (100%)
Received Messages: 15000 (100%)
Completed: 100 (100%)
Errors: 0 (0%)
# Publishing Throughput
Fastest: 79452 msg/sec
Slowest: 14991 msg/sec
Median: 42093 msg/sec
< 21437 msg/sec 6%
< 27883 msg/sec 21%
< 34329 msg/sec 33%
< 40776 msg/sec 48%
< 47222 msg/sec 57%
< 53668 msg/sec 65%
< 60114 msg/sec 73%
< 66560 msg/sec 85%
< 73006 msg/sec 95%
< 79452 msg/sec 99%
< 85898 msg/sec 100%
# Receiving Througput
Fastest: 4102 msg/sec
Slowest: 65 msg/sec
Median: 1919 msg/sec
< 469 msg/sec 33%
< 1276 msg/sec 34%
< 1680 msg/sec 38%
< 2083 msg/sec 62%
< 2487 msg/sec 85%
< 2891 msg/sec 93%
< 3295 msg/sec 98%
< 4102 msg/sec 99%
< 4506 msg/sec 100%
If using container,
$ docker run inovex/mqtt-stresser -broker tcp://broker.mqttdashboard.com:1883 -num-clients 100 -num-messages 10 -rampup-delay 1s
MQTT Stresser的更多相关文章
- 海鑫智圣:物联网漫谈之MQTT协议
什么是MQTT协议 MQTT(消息队列遥测传输协议)是IBM在1999年专门针对物联网等应用场景来制订的轻量级双向消息传输协议,它主要是为了解决物联网上使用到的设备的互相通信的问题,以及这些设备与后端 ...
- 几个MQTT的知识点
开始正文前需要感谢一下网友“小龙”和emqtt.io群里的网友们的帮助,本人刚刚开始使用MQTT有很多不懂的地方,在emqtt.io群里询问解决方法的时候,“小龙”给我详细的讲解了一些MQTT的知识点 ...
- 基于MQTT协议进行应用开发
官方协议有句如下的话来形容MQTT的设计思想: "It is designed for connections with remote locations where a "sma ...
- MQTT(三)-----连接与心跳
MQTT协议笔记之连接和心跳 - 推酷 http://www.tuicool.com/articles/AFvmee 互联网推送服务原理:长连接+心跳机制(MQTT协议) - clh604的专栏 - ...
- Mosquitto搭建Android推送服务(一)MQTT简介
总体概要: MQTT系列文章分为4部分 1.MQTT简介 2.mosquitto服务器搭建 3.编写Mosquitto的可视化工具 4.使用Mosquitto完成Android推送服务 文章钢要: 对 ...
- 【开源】MQTT推送服务器——zer0MqttServer(Java编写)
目录 说明 功能 如何使用 参考帮助 说明 重要的放前面:V1.0版本是一个非常基础的版本,除了完整的MQTT协议实现外,其他功能什么都没做. MQTT 协议是 IBM 开发的即时通讯协议,相对于 I ...
- TCP/IP, WebSocket 和 MQTT
按照OSI网络分层模型,IP是网络层协议,TCP是传输层协议,而HTTP和MQTT是应用层的协议.在这三者之间, TCP是HTTP和MQTT底层的协议.大家对HTTP很熟悉,这里简要介绍下MQTT.M ...
- 云巴:基于MQTT协议的实时通信编程模型
概要 有人常问,云巴实时通信系统到底提供了一种怎样的服务,与其他提供推送或 IM 服务的厂商有何本质区别.其实,从技术角度分析,云巴与其它同类厂商都是面向开发者的通信服务,宏观的编程模型都是大同小异, ...
- MQTT 消息 发布 订阅
当连接向一个mqtt服务器时,clientId必须是唯一的.设置一样,导致client.setCallback总是走到 connectionLost回调.报connection reset.调查一天才 ...
随机推荐
- BS系统经验总结
本文章是对刚做完BS系统的总结.主要记录开发过程中遇到的问题,及问题是如何解决的. 1,界面显示 一个系统界面首先要和谐,比如不同页面文本框长度高度要统一,按钮样式要一致,表格显示一样居中都居中靠左都 ...
- Cesium中Homebutton改变默认跳转位置 【转】
在Cesium中,Homebutton的默认跳转位置是美国,那么在开发中我们如何更改这个默认跳转位置呢,这就要更改一下源代码了: Camera.DEFAULT_VIEW_RECTANGLE = Rec ...
- Android中XML解析-PULL解析
前面写了两篇XML解析的Dom和SAX方式,Dom比较符合思维方式,SAX事件驱动注重效率,除了这两种方式以外也可以使用Android内置的Pull解析器解析XML文件. Pull解析器的运行方式与 ...
- OA系统权限管理设计方案
(转)OA系统权限管理设计方案 OA系统权限管理设计方案 不同职责的人员,对于系统操作的权限应该是不同的.优秀的业务系统,这是最基本的功能. 可以对“组”进行权限分配.对于一个大企业的 ...
- 【leetcode】 9. palindrome number
@requires_authorization @author johnsondu @create_time 2015.7.13 9:48 @url [palindrome-number](https ...
- MySQL 读写分离 使用驱动com.mysql.jdbc.ReplicationDriver
说明文档:http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-replication-connection.html 代码例子: ...
- Flume-0.9.4数据插入HBase-0.96
来自:http://blog.csdn.net/iam333/article/details/18770977 最近由于业务需要,需要将flume的数据插入HBase-0.96,利用flume的实时日 ...
- RPM 命令大全
RPM 大全RPM 有五种基本的操作方式(不包括创建软件包): 安装, 卸载, 升级, 查询,和验证. 下面我们就来逐一的讲解吧. 一. 安装RPM包 RPM 软件包通常具有类似foo-1.0-1.i ...
- VB总结2——内部函数
VB中内部函数大概有120多个,但是对于我们来说常用的不多,对于那些不常用用的时候再查 常用的内部函数大体可以分为六类: 数学函数,随即函数,字符串函数,数据类型转换函数,日期时间函数,格式输出函数等 ...
- 1z0-052 q209_7
7: In which of the scenarios will the DBA perform recovery? (Choose all that apply.) A.The alert log ...