一、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进行压力测试-测试结果相关推荐

  1. android-sdk:adb shell Monkey命令入门: (基于网易云APP进行压力稳定性测试)

    adb shell monkey的运行机制 执行的是手机中/system/bin/monkey脚本 首先确保连接上  命令: adb devices 获取手机模拟器中的正在运行测试的APP adb s ...

  2. k8s部署zabbix_基于k8s平台的Zabbix压力测试

    本文以 2019 年 1 月 16 日 Webinars 课程内容编写 内容目录 视频下载地址: k8s 介绍 kubernetes,简称 K8s,是用 8 代替 8 个字符"ubernet ...

  3. jmeter异步请求测试_使用JMeter对异步HTTP / REST服务进行压力/负载测试

    jmeter异步请求测试 尽管我一直在使用JMeter进行Web应用程序的压力测试和负载测试好几次,但我们还是花了一些时间才弄清楚如何使用该工具测试基于异步HTTP / REST的服务. 对我们来说, ...

  4. 使用JMeter对异步HTTP / REST服务进行压力/负载测试

    尽管我一直在使用JMeter进行Web应用程序的压力测试和负载测试好几次,但我们还是花了一些时间才弄清楚如何使用该工具测试基于异步HTTP / REST的服务. 在我们这里,我是指一名程序员, Hol ...

  5. mysql压力写入测试_mysql压力测试工具

    相关推荐:测试工具 测试工具 测试管理工具                          Quality Center 基于WEB的测试管理工具 Test  Director 功能测试工具     ...

  6. MQTT服务器搭建和测试步骤及遇见的问题

    MQTT服务器搭建和测试步骤及遇见的问题 前言:MQTT服务器有好多种,查看:Servers/Brokers Apache-Apollo:一个代理服务器,在ActiveMQ基础上发展而来,可以支持ST ...

  7. tsung压测mysql_高并发测试工具Tsung使用教程

    tsung是erlang开发的一款开源的多协议分布式负载并发测试工具, 可用作HTTP.WebDAV.SOAP.PostgreSQL.MySQL.LDAP 和 Jabber/XMPP的服务器压力测试. ...

  8. 基于微信小程序的大学生心理健康测试设计与实现 .docx

    目录 1 绪论 3 1.1 项目开发背景 3 1.2 项目开发意义 3 1.3 项目主要的内容 4 2 相关技术介绍及系统环境开发条件 5 2.1相关技术介绍 5 2.2系统环境开发条件 6 3 系统 ...

  9. 阿里云MQTT服务器搭建与测试(全图文,非常详细)

    阿里云MQTT服务器搭建与测试 一. MQTT概念 二. 阿里云MQTT服务器搭建 1 阿里云平台注册及认证 2 添加平台 2 创建产品与设备 获取MQTT连接相关信息 三.MQTT.fx测试 1 M ...

最新文章

  1. Plist文件的创建与读写
  2. Linux命令学习,学习这20条Linux命令,玩转你的树莓派!
  3. MySQL--Delete语句别名+LIMIT
  4. Java系统变量之System.getenv()和System.getProperty()
  5. mysql触发器 多个条件_当条件为真时,如何使用MySQL触发器更新多个表?
  6. Java集合工具类:Collections
  7. 腾讯python面试题_面试题 | 腾讯数据分析面试题分享
  8. echarts柱状图实现重叠
  9. 化繁为简 “云桥OneBridge”让IT运维事半功倍
  10. [技术讨论]关于前几天公布的京东bug上的问题分析
  11. 性能测试详解(三)Tomcat性能调优
  12. 美化滚动条的一个插件 vue3-perfect-scrollbar
  13. 省市县结合身份证号6位码的三级联动
  14. 颜色混合BlendFunc用法实例总结
  15. Hadoop学习之SSH免密登录配置(以三台虚拟机为例,完全分布式)
  16. RSS的基本使用 - rsslibj
  17. MySQL分库分表原理
  18. semantic.css,CSS框架:Semantic UI的优缺点
  19. NVML查询显卡信息
  20. Java日志系统概述SLF4J、log4j、JCL、Logback

热门文章

  1. 使用模拟退火算法解决TSP问题
  2. NUC980开源项目38-4g上网
  3. javaWeb的线下服装店管理平台、基于ssm(springboot版本也有)+mysql线下服装销售系统
  4. CANopen协议 学习笔记
  5. 2021年中国不间断电源(UPS)行业市场规模、产品结构及发展趋势分析:UPS电源向节能环保方向发展 [图]
  6. QuTrunk与Paddle结合实践--VQA算法示例
  7. python求数独全解
  8. 爬虫获取微博首页热搜
  9. 数学与计算机学院校友会,忆青春成长路 话数计奋斗情——数学与计算机学院校友会...
  10. Python利用pptx模块三步将图片插入特定PPT模板