RabbitMQ吞吐量测试-PerfTest上

PerfTest

RabbitMQ有一个基本的吞吐量测试工具PerfTest(文档,源代码和版本),它基于Java客户端,可以配置为模拟基本工作负载。PerfTest有额外的工具可以生成输出的HTML图形。RabbitMQ集群可能受到很多因素的限制,从基础设施级限制(如网络带宽)到RabbitMQ配置和拓扑到发布和使用的应用程序。PerfTest可以演示节点或节点集群的基准性能。

安装

PerfTest也是从Bintray和 GitHub发布的二进制版本库中分发的 。 如果需要将它作为库,也可以在Maven Central上使用。

Bintray:https://bintray.com/rabbitmq/java-tools/perf-test

GitHub:https://github.com/rabbitmq/rabbitmq-perf-test/releases

Maven Central:http://search.maven.org/#search|ga|1|g%3A"com.rabbitmq" AND a%3A"perf-test"

要验证PerfTest安装,请使用

  1. bin/runjava com.rabbitmq.perf.PerfTest --help
  2. can@can:/usr/local/mq/rabbitmq_server-3.6.14/rabbitmq-perf-test-2.0.0.RC4$ bin/runjava com.rabbitmq.perf.PerfTest --help
  3. usage: <program>
  4. -?,--help show usage
  5. -A,--multi-ack-every <arg> multi ack every
  6. -a,--autoack auto ack
  7. -ad,--auto-delete <arg> should the queue be auto-deleted,
  8. default is true
  9. -B,--body <arg> comma-separated list of files to use
  10. in message bodies
  11. -b,--heartbeat <arg> heartbeat interval
  12. -C,--pmessages <arg> producer message count
  13. -c,--confirm <arg> max unconfirmed publishes
  14. -ct,--confirm-timeout <arg> waiting timeout for unconfirmed
  15. publishes before failing (in seconds)
  16. -D,--cmessages <arg> consumer message count
  17. -d,--id <arg> test ID
  18. -e,--exchange <arg> exchange name
  19. -f,--flag <arg> message flag
  20. -H,--uris <arg> connection URIs (separated by commas)
  21. -h,--uri <arg> connection URI
  22. -i,--interval <arg> sampling interval in seconds
  23. -K,--random-routing-key use random routing key per message
  24. -k,--routing-key <arg> routing key
  25. -L,--consumer-latency <arg> consumer latency in microseconds
  26. -l,--legacy-metrics display legacy metrics (min/avg/max
  27. latency)
  28. -M,--framemax <arg> frame max
  29. -m,--ptxsize <arg> producer tx size
  30. -ms,--use-millis should latency be collected in
  31. milliseconds, default is false. Set to true if producers are consumers run
  32. on different machines.
  33. -n,--ctxsize <arg> consumer tx size
  34. -o,--output-file <arg> output file for timing results
  35. -p,--predeclared allow use of predeclared objects
  36. -Q,--global-qos <arg> channel prefetch count
  37. -q,--qos <arg> consumer prefetch count
  38. -qa,--queue-args <arg> queue arguments as key/pair values,
  39. separated by commas
  40. -R,--consumer-rate <arg> consumer rate limit
  41. -r,--rate <arg> producer rate limit
  42. -S,--slow-start start consumers slowly (1 sec delay
  43. between each)
  44. -s,--size <arg> message size in bytes
  45. -sb,--skip-binding-queues don't bind queues to the exchange
  46. -T,--body-content-type <arg> body content-type
  47. -t,--type <arg> exchange type
  48. -u,--queue <arg> queue name
  49. -udsc,--use-default-ssl-context use JVM default SSL context
  50. -X,--producer-channel-count <arg> channels per producer
  51. -x,--producers <arg> producer count
  52. -Y,--consumer-channel-count <arg> channels per consumer
  53. -y,--consumers <arg> consumer count
  54. -z,--time <arg> run duration in seconds (unlimited by
  55. default)

使用PerfTest

运行PerfTest的最基本的方法只是指定要连接的URI,要使用的发布者(比如说1)和一些消费者(比如2)。请注意,RabbitMQ Java客户端可以实现较高的发布速率(每个连接每秒高达80至90K条消息),给予足够的带宽,并且当某些安全措施(发行商确认)被禁用时,很少需要过度配置发布者(除非这是特定的测试目标)。

  1. bin/runjava com.rabbitmq.perf.PerfTest -x 1 -y 2 -u "throughput-test-1" -a --id "test 1"

使用2个发布者和4个消费者:

  1. bin/runjava com.rabbitmq.perf.PerfTest -x 2 -y 4 -u "throughput-test-2" -a --id "test 2"

此修改将消费者切换到手动确认:

  1. bin/runjava com.rabbitmq.perf.PerfTest -x 1 -y 2 -u "throughput-test-3" --id "test 3"

修改将消息大小从默认(12字节)更改为4 kB:

  1. bin/runjava com.rabbitmq.perf.PerfTest -x 1 -y 2 -u "throughput-test-4" --id "test 4" -s 4000

使用持久队列和持久消息:

  1. bin/runjava com.rabbitmq.perf.PerfTest -x 1 -y 2 -u "throughput-test-5" --id "test-5" -f persistent

RabbitMQ吞吐量测试-PerfTest上的更多相关文章

  1. Kafka吞吐量测试案例

    Kafka吞吐量测试案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 领英公司参考连接:https://www.slideshare.net/JiangjieQin/produc ...

  2. RFC3918聚合组播吞吐量测试——网络测试仪实操

    一.简介 1.RFC3918简介 历史 · 在1999年3月成为正式标准 功能 · 评测网络互连设备或网络系统的性能 · 网络设备: 交换机,路由器- 内容 · 定义了一整套测试方法,为不同厂家的设备 ...

  3. RFC2544吞吐量测试详细步骤-信而泰Renix软件操作演示

    关键词:RFC1242:RFC2544:吞吐量:吞吐率. 吞吐量概述:吞吐量即吞吐率,这个词首先在RFC1242中被提出,是评估网络设备性能的首要指标,其定义是在设备没有丢帧的情况下的最大的转发速率, ...

  4. .NET 6 EFCore WebApi 使用 JMeter 进行吞吐量测试

    .NET 6 EFCore WebApi 使用 JMeter 进行吞吐量测试 开发环境 VS2022 .NET 6 测试环境 测试工具 接口压力测试工具:JMeter 数据库 MySQL 5.7 数据 ...

  5. Azure磁盘的吞吐量测试

    Azure的高级存储具有吞吐量大,延迟低的特点,非常适合时间关键型的应用程序(如SQL Server, Oracle, Redis等). 但高级存储同时具有价格高的特点,用户往往对其实际的性能数据较为 ...

  6. sklearn获得某个参数的不同取值在训练集和测试集上的表现的曲线刻画

    from sklearn.svm import SVC from sklearn.datasets import make_classification import numpy as np X,y ...

  7. rabbitmq在centos 7上的安装

    一.安装步骤 参考了官网文档: http://www.rabbitmq.com/install-rpm.html#package-dependencies 这里大概介绍下. rabbitmq-serv ...

  8. centos HA高可用集群 heartbeat搭建 heartbeat测试 主上停止heartbeat服务 测试脑裂 两边都禁用ping仲裁 第三十二节课

    centos   HA高可用集群  heartbeat搭建 heartbeat测试  主上停止heartbeat服务  测试脑裂  两边都禁用ping仲裁  第三十二节课 heartbeat是Linu ...

  9. soapUI 之 测试文件上传 [6]

    在接口测试中会遇到需要上传文件的操作,比如头像修改等.那么soapui是怎么实现这部分测试的呢.以下以文件上传接口为例. 一.获取文件上传接口 可以通过开发直接提供的接口文档,或者自己抓包获取接口信息 ...

随机推荐

  1. Spring 框架配置web.xml 整合web struts

    package cn.itcast.e_web; import java.io.IOException; import javax.servlet.ServletContext; import jav ...

  2. [优化]Steamroller-freecodecamp算法题目

    晚上在medium看到一篇关于找工作的文章,里面提到一个面试题目--flattening an array(扁平化数组).这我好像在哪看过!应该是freecodecamp里的算法某一题.翻了下博客记录 ...

  3. mariadb源码编译安装及多实例

    准备文件源文件/app/mariadb-10.2.12.tar.gz cd /app/ tar xf mariadb-10.2.12.tar.gz cd  mariadb-10.2.12 mkdir ...

  4. Spring框架进阶3

    Spring框架进阶3 测试spring_jdbc和spring对事务的管理 先配置相应的pom <?xml version="1.0" encoding="UTF ...

  5. Spring Boot Shiro权限管理--自定义 FormAuthenticationFilter验证码整合

    思路shiro使用FormAuthenticationFilter进行表单认证,验证校验的功能应该加在FormAuthenticationFilter中,在认证之前进行验证码校验. 需要写FormAu ...

  6. hadoop-2.0.0-cdh4.1.2升级到hadoop-2.7.2

    升级前准备: 如果是 centos6.x的系统得升级glibc和pam包 在/etc/ld.so.conf 文件里添加 /usr/src/jdk1.6.0_23/jre/lib/amd64/serve ...

  7. CSS选取指定位置标签first-child、last-child、nth-child

    1.first-child 选择列表中的第一个标签. 2.last-child 选择列表中的最后一个标签 3.nth-child(n) 选择列表中的第n个标签 4.nth-child(2n) 选择列表 ...

  8. ubuntu配置命令

    sudo apt-get update 更新源 sudo apt-get install package 安装包 sudo apt-get remove package 删除包 sudo apt-ca ...

  9. C语言字符篇(三)字符串比较函数

    #include <string.h>   int strcmp(const char *s1, const char *s2); 比较字符串s1和s2 int strncmp(const ...

  10. C语言数组篇(三)字符空间 和 非字符空间

     一维数组和字符串         首先是字符数组(区别字符串) ] = {'a','b','c'}; //这只是单纯的字符数组,不是字符串          字符串最重要的标志就是结尾有一个'\0' ...