• ActiveMQ测试工具


    1. 测试工具

    目前使用两种测试工具进行压力测试 
    1. Jmeter 测试单客户端收发多主题,测试高并发,大数据量时的接收效率 
    2. emqtt_benchmark测试多客户端收发主题,测试高吞吐量下服务器性能

    1.1 安装Erlang

    emqtt_benchmark测试工具使用Erlang语言开发,必须在Linux的环境下运行,因此需要先安装Erlang语言环境。

      • 1.1.1 安装Erlang 
        可以参考这篇帖子,使安装别的特别简单。

      • 1.1.2 安装问题

        • 没有安装git,比如出现以下错误: 
          ERROR: Rebar requires version {1,5} or higher of git to process {git,"git://github.com/talentdeficit/jsx.git",{tag,"v0.9.0"}}
          • 1
          • 1

        解决办法: 
        下载安装Git工具

        yum install git
        make clean
        make
        • 不能下载Erlang,错误: 
          [root@localhost mqtt-test]# ./kerl build 18.3 18.3
          Verifying archive checksum...
          Checksum error, check the files in /root/.kerl/archives

        解决办法: 
        删除archives文件夹

        [root@localhost mqtt-test]# rm -rf /root/.kerl/archives

    1.2 emqtt_benchmark安装使用

    这是一个简单的MQTT基准工具用Erlang编写的。该工具的主要目的是基准测试MQTT服务器可以支持的并发连接数。官网下载

    • 1.2.1 下载安装 
      将下载下来的emqtt_benchmark-master.zip放置一个目录下,并解压缩, 使用make进行编译安装 

      unzip emqtt_benchmark-master 
      cd emqtt_benchmark-master 
      ls 
      make 
    • 1.2.2 订阅命令
      在目录emqtt_benchmark-master下执行命令:./emqtt_bench_sub --help,结果如下:

      [root@localhost emqtt_benchmark-master]# ./emqtt_bench_sub --help
      Usage: emqtt_bench_sub [--help <help>] [-h [<host>]] [-p [<port>]]
                         [-c [<count>]] [-i [<interval>]] [-t <topic>]
                         [-q [<qos>]] [-u <username>] [-P <password>]
                         [-k [<keepalive>]] [-C [<clean>]]
                         [--ifaddr <ifaddr>]
      
      --help           help information
      //服务器ip地址
      -h, --host       mqtt server hostname or IP address [default: localhost]
      //服务器端口号
      -p, --port       mqtt server port number [default: 1883]
      //最大连接客户端数量 默认200
      -c, --count      max count of clients [default: 200]
      //客户端连接间隔时间,默认10毫秒
      -i, --interval   interval of connecting to the broker [default: 10]
      //订阅的主题 %i=自增长序号
      -t, --topic      topic subscribe, support %u, %c, %i variables
      //消息服务qos等级,
      //0=最多一次 服务器与 客户端 交互1次
      //1=至少一次 服务器与 客户端 交互2次
      //2=仅有一次 服务器与 客户端 交互4次
      -q, --qos        subscribe qos [default: 0]
      //客户端用户名
      -u, --username   username for connecting to server
      //用户端密码
      -P, --password   password for connecting to server
      //维持客户端活跃的时间 默认300秒
      -k, --keepalive  keep alive in seconds [default: 300]
      //客户端断开后是否清除session 默认true
      -C, --clean      clean session [default: true]
      //代理ip接口
      --ifaddr         local ipaddress or interface address
    • 举例:创建1000个并发客户端,并每秒接收100条消息频率

      ./emqtt_bench_sub -c 1000 -i 10 -t bench/%i -q 2
      

        

    • 1.2.3 发布命令
      执行命令:./emqtt_bench_pub --help,结果如下:

      [root@localhost emqtt_benchmark-master]# ./emqtt_bench_pub --help
      Usage: emqtt_bench_pub [--help <help>] [-h [<host>]] [-p [<port>]]
                         [-c [<count>]] [-i [<interval>]]
                         [-I [<interval_of_msg>]] [-u <username>]
                         [-P <password>] [-t <topic>] [-s [<size>]]
                         [-q [<qos>]] [-r [<retain>]] [-k [<keepalive>]]
                         [-C [<clean>]] [--ifaddr <ifaddr>]
      
      --help                 help information
      -h, --host             mqtt server hostname or IP address [default: 
                           localhost]
      -p, --port             mqtt server port number [default: 1883]
      -c, --count            max count of clients [default: 200]
      -i, --interval         interval of connecting to the broker [default: 10]
      //客户端发布消息的时间间隔 默认1000毫秒
      -I, --interval_of_msg  interval of publishing message(ms) [default: 1000]
      -u, --username         username for connecting to server
      -P, --password         password for connecting to server
      -t, --topic            topic subscribe, support %u, %c, %i variables
      //消息字节大小 默认256字节
      -s, --size             payload size [default: 256]
      -q, --qos              subscribe qos [default: 0]
      -r, --retain           retain message [default: false]
      -k, --keepalive        keep alive in seconds [default: 300]
      -C, --clean            clean session [default: true]
      --ifaddr               local ipaddress or interface address
    • 举例:创造10个客户,每个客户端发布消息的速度每秒100条,吞吐量1000条/秒

      ./emqtt_bench_pub -c 10 -I 10 -t bench/%i -s 256
      

        

    1.3 Jmeter安装使用

    Apache JMeter是Apache组织开发的基于Java的压力测试工具。下载 
    用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。

  • 相关阅读:
    【C++ Primer Chapter 3 总结】Library vector & string Type
    【C++ Primer Chapter 4 总结】左值 & 右值
    【C++ Primer Chapter 6 总结】函数
    mysql添加索引
    注册plsql
    挑战答题小程序
    开源答题小程序
    答题如何防止作弊
    党史知识答题活动小程序复盘整理
    党史学习教育答题活动复盘
  • 原文地址:https://www.cnblogs.com/saryli/p/6926191.html
Copyright © 2020-2023  润新知