一、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-devel wget 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.gz tar zxf otp_src_20.0.tar.gz
cd otp_src_20.0
./configure --prefix=/usr/local/erlang --without-javac
make -j 2
make install tar zxf gnuplot-4.4.2.tar.gz
cd gnuplot-4.4.2
./configure
make -j 2
make install export 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,一共两台机器一起压。

单台最大峰值时的连接数截图:

两台最大峰值时的连接数截图:

最新文章

  1. CSS3回执特殊图形
  2. 配置apache apache服务器如何配置多站点
  3. D:Balanced Lineup
  4. 为什么移动Web应用很慢?
  5. gulp入坑系列(2)——初试JS代码合并与压缩
  6. Ubuntu 14.04 AMD 64位 下 Android Studio 的安装
  7. 关于消除超长的case列表的一个思路
  8. OO之工厂模式
  9. Fat-tree 胖树交换网络
  10. bzoj3884: 上帝与集合的正确用法 欧拉降幂公式
  11. SAE搭建WordPress教程 免费建WordPress博客站
  12. EXTJS 3.0 资料 控件之 combo 用法
  13. hdu 1050 Moving Tables
  14. JavaScript之Chart.js图例(legend)
  15. Code Forces 711D Directed Roads
  16. dinic网络流模板
  17. Java类修饰符
  18. Mysql数据库文件、表、记录的增删改查
  19. hive数据导出到本地目录 抛异常
  20. lombok @Builder注解使用的例子、反编译之后的代码详解

热门文章

  1. jQuery实用技巧必备
  2. 关于CentOS系统中,文件权限第11位上是一个点的解读
  3. Gradle详解+Groovy
  4. Ubuntu 16.04 LTS nodejs+pm2+nginx+git 基础安装及配置环境(未完,未整理)
  5. Struts2_day04--自定义拦截器_Struts2的标签库_表单标签
  6. android硬件返回
  7. 指针与C++基本原理
  8. 如何用sql语句复制一张表
  9. oracle怎么把一个用户下的表复制给另一个用户?(授予表权限)
  10. LeetCode 笔记系列 14 N-Queen II [思考的深度问题]