前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于TSUNG对MQTT进行压力测试-测试结果

基于TSUNG对MQTT进行压力测试-测试结果

作者头像
翎野君
发布2023-05-12 19:44:01
4150
发布2023-05-12 19:44:01
举报
文章被收录于专栏:翎野君

一、TSUNG压测前概念温习

https://www.cnblogs.com/lingyejun/p/7898873.html

二、TSUNG在服务器上的安装步骤

代码语言:javascript
复制
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的测试脚本

代码语言:javascript
复制
<?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,一共两台机器一起压。

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、TSUNG压测前概念温习
  • 二、TSUNG在服务器上的安装步骤
  • 三、TSUNG的测试脚本
  • 四、测试结果总览
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档