基于TSUNG对MQTT进行压力测试-测试结果
一、TSUNG压测前概念温习
https://www.cnblogs.com/lingyejun/p/7898873.html
二、TSUNG在服务器上的安装步骤
Tsung压测时总连接数 = 本机可用IP地址数量×本机可用端口的数量×远程服务器可访问IP地址数量×远程服务器可访问端口数量。
yum install -y gcc gcc-c++ make libX11 xauth
yum install -y cairo-devel pango-devel freetype-devel gd-devel
yum install -y ncurses-devel openssl-devel unixODBC-devel wxWidgets-devel wxGTK3-docs mesa-libGL-develwget http://erlang.org/download/otp_src_20.0.tar.gz
wget https://www.cpan.org/modules/by-module/Template/Template-Toolkit-2.26.tar.gz
wget http://tsung.erlang-projects.org/dist/tsung-1.7.0.tar.gztar zxf otp_src_20.0.tar.gz
cd otp_src_20.0
./configure --prefix=/usr/local/erlang --without-javac
make -j 2
make installtar zxf gnuplot-4.4.2.tar.gz
cd gnuplot-4.4.2
./configure
make -j 2
make installexport PATH=$PATH:/usr/local/erlang/bin/
tar zxf tsung-1.7.0.tar.gz
cd tsung-1.7.0
./configure --prefix=/usr/local/tsung
三、TSUNG的测试脚本
<?xml version="1.0"?> <!DOCTYPE tsung SYSTEM "/usr/local/tsung/share/tsung/tsung-1.0.dtd"> <tsung loglevel="debug" version="1.0"><clients><client host="bogon" maxusers="100000" cpu="1"><ip value="192.168.1.152"></ip><ip value="192.168.1.153"></ip><ip value="192.168.1.154"></ip><ip value="192.168.1.155"></ip></client></clients><servers><server host="192.168.1.110" port="61613" type="tcp" /></servers><load><user session="mqtt_subscriber" start_time="30" unit="second"></user><arrivalphase phase="1" duration="60" unit="second"><users maxnumber="100000" arrivalrate="5000" unit="second"/></arrivalphase></load><sessions><session name="mqtt_publisher" probability="100" type="ts_mqtt"><request><mqtt type="connect" clean_start="true" keepalive="10" username="admin" password="password" will_topic="phihome/test" will_qos="0" will_msg="will_msg" will_retain="false"></mqtt></request><for from="1" to="10" incr="1" var="loops"><request subst="true"><mqtt type="publish" topic="phihome/test" qos="1" retained="true">test_message</mqtt></request></for><request><mqtt type="disconnect"></mqtt></request></session><session name="mqtt_subscriber" probability="0" type="ts_mqtt"><request><mqtt type="connect" clean_start="true" keepalive="10"></mqtt></request><request subst="true"><mqtt type="subscribe" topic="test_topic" qos="1"></mqtt></request><request><!-- wait for 60s --><mqtt type="waitForMessages" timeout="60"></mqtt></request><request subst="true"><mqtt type="unsubscribe" topic="test_topic"></mqtt></request><request><mqtt type="disconnect"></mqtt></request></session></sessions> </tsung>
四、测试结果总览
硬件配置 |
tsung压测客户端配置:i7 8核 32G |
||
mqtt服务器端:i5 4核 6G 128SSD |
|||
测试场景 |
最大连接数 |
峰值时客户端情况 |
峰值时服务器端情况 |
c4cpu+s5g+4gmqtt+nolog |
197626 |
cpu充足,内存充足。 |
cpu充足,内存有剩余。 |
c6cpu+s6g+4gmqtt+nolog |
281477 |
cpu充足,内存充足。 |
cpu充足,内存有剩余。 |
c6cpu+s6g+2gmqtt+log |
287524 |
cpu充足,内存充足。 |
cpu充足,内存有剩余。 |
c6cpu+s6g+4gmqtt+log |
283365 |
cpu充足,内存充足。 |
cpu充足,内存有剩余。 |
上图测试场景术语介绍: |
|
c4cpu+s5g+4gmqtt+nolog |
压测客户端使用了4个cpu进行压测,mqtt服务器端为5g内存,进程启动内存为4g,启动时关闭了日志输出。 |
c6cpu+s6g+4gmqtt+nolog |
压测客户端使用了6个cpu进行压测,mqtt服务器端为6g内存,进程启动内存为4g,启动时关闭了日志输出。 |
c6cpu+s6g+2gmqtt+log |
压测客户端使用了6个cpu进行压测,mqtt服务器端为6g内存,进程启动内存为2g,启动时开启了日志输出。 |
c6cpu+s6g+4gmqtt+log |
压测客户端使用了6个cpu进行压测,mqtt服务器端为6g内存,进程启动内存为4g,启动时开启了日志输出。 |
注:单台Tsung压测官网纯净版mosquitto(单台Broker),峰值时连接数为197626,后续有追加了另外一台tsung,一共两台机器一起压。
单台最大峰值时的连接数截图:
两台最大峰值时的连接数截图:
转载于:https://www.cnblogs.com/lingyejun/p/7941271.html
基于TSUNG对MQTT进行压力测试-测试结果相关推荐
- android-sdk:adb shell Monkey命令入门: (基于网易云APP进行压力稳定性测试)
adb shell monkey的运行机制 执行的是手机中/system/bin/monkey脚本 首先确保连接上 命令: adb devices 获取手机模拟器中的正在运行测试的APP adb s ...
- k8s部署zabbix_基于k8s平台的Zabbix压力测试
本文以 2019 年 1 月 16 日 Webinars 课程内容编写 内容目录 视频下载地址: k8s 介绍 kubernetes,简称 K8s,是用 8 代替 8 个字符"ubernet ...
- jmeter异步请求测试_使用JMeter对异步HTTP / REST服务进行压力/负载测试
jmeter异步请求测试 尽管我一直在使用JMeter进行Web应用程序的压力测试和负载测试好几次,但我们还是花了一些时间才弄清楚如何使用该工具测试基于异步HTTP / REST的服务. 对我们来说, ...
- 使用JMeter对异步HTTP / REST服务进行压力/负载测试
尽管我一直在使用JMeter进行Web应用程序的压力测试和负载测试好几次,但我们还是花了一些时间才弄清楚如何使用该工具测试基于异步HTTP / REST的服务. 在我们这里,我是指一名程序员, Hol ...
- mysql压力写入测试_mysql压力测试工具
相关推荐:测试工具 测试工具 测试管理工具 Quality Center 基于WEB的测试管理工具 Test Director 功能测试工具 ...
- MQTT服务器搭建和测试步骤及遇见的问题
MQTT服务器搭建和测试步骤及遇见的问题 前言:MQTT服务器有好多种,查看:Servers/Brokers Apache-Apollo:一个代理服务器,在ActiveMQ基础上发展而来,可以支持ST ...
- tsung压测mysql_高并发测试工具Tsung使用教程
tsung是erlang开发的一款开源的多协议分布式负载并发测试工具, 可用作HTTP.WebDAV.SOAP.PostgreSQL.MySQL.LDAP 和 Jabber/XMPP的服务器压力测试. ...
- 基于微信小程序的大学生心理健康测试设计与实现 .docx
目录 1 绪论 3 1.1 项目开发背景 3 1.2 项目开发意义 3 1.3 项目主要的内容 4 2 相关技术介绍及系统环境开发条件 5 2.1相关技术介绍 5 2.2系统环境开发条件 6 3 系统 ...
- 阿里云MQTT服务器搭建与测试(全图文,非常详细)
阿里云MQTT服务器搭建与测试 一. MQTT概念 二. 阿里云MQTT服务器搭建 1 阿里云平台注册及认证 2 添加平台 2 创建产品与设备 获取MQTT连接相关信息 三.MQTT.fx测试 1 M ...
最新文章
- Plist文件的创建与读写
- Linux命令学习,学习这20条Linux命令,玩转你的树莓派!
- MySQL--Delete语句别名+LIMIT
- Java系统变量之System.getenv()和System.getProperty()
- mysql触发器 多个条件_当条件为真时,如何使用MySQL触发器更新多个表?
- Java集合工具类:Collections
- 腾讯python面试题_面试题 | 腾讯数据分析面试题分享
- echarts柱状图实现重叠
- 化繁为简 “云桥OneBridge”让IT运维事半功倍
- [技术讨论]关于前几天公布的京东bug上的问题分析
- 性能测试详解(三)Tomcat性能调优
- 美化滚动条的一个插件 vue3-perfect-scrollbar
- 省市县结合身份证号6位码的三级联动
- 颜色混合BlendFunc用法实例总结
- Hadoop学习之SSH免密登录配置(以三台虚拟机为例,完全分布式)
- RSS的基本使用 - rsslibj
- MySQL分库分表原理
- semantic.css,CSS框架:Semantic UI的优缺点
- NVML查询显卡信息
- Java日志系统概述SLF4J、log4j、JCL、Logback
热门文章
- 使用模拟退火算法解决TSP问题
- NUC980开源项目38-4g上网
- javaWeb的线下服装店管理平台、基于ssm(springboot版本也有)+mysql线下服装销售系统
- CANopen协议 学习笔记
- 2021年中国不间断电源(UPS)行业市场规模、产品结构及发展趋势分析:UPS电源向节能环保方向发展 [图]
- QuTrunk与Paddle结合实践--VQA算法示例
- python求数独全解
- 爬虫获取微博首页热搜
- 数学与计算机学院校友会,忆青春成长路 话数计奋斗情——数学与计算机学院校友会...
- Python利用pptx模块三步将图片插入特定PPT模板