RabbitMQ吞吐量测试-PerfTest上
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安装,请使用
bin/runjava com.rabbitmq.perf.PerfTest --help
can@can:/usr/local/mq/rabbitmq_server-3.6.14/rabbitmq-perf-test-2.0.0.RC4$ bin/runjava com.rabbitmq.perf.PerfTest --help
usage: <program>
-?,--help show usage
-A,--multi-ack-every <arg> multi ack every
-a,--autoack auto ack
-ad,--auto-delete <arg> should the queue be auto-deleted,
default is true
-B,--body <arg> comma-separated list of files to use
in message bodies
-b,--heartbeat <arg> heartbeat interval
-C,--pmessages <arg> producer message count
-c,--confirm <arg> max unconfirmed publishes
-ct,--confirm-timeout <arg> waiting timeout for unconfirmed
publishes before failing (in seconds)
-D,--cmessages <arg> consumer message count
-d,--id <arg> test ID
-e,--exchange <arg> exchange name
-f,--flag <arg> message flag
-H,--uris <arg> connection URIs (separated by commas)
-h,--uri <arg> connection URI
-i,--interval <arg> sampling interval in seconds
-K,--random-routing-key use random routing key per message
-k,--routing-key <arg> routing key
-L,--consumer-latency <arg> consumer latency in microseconds
-l,--legacy-metrics display legacy metrics (min/avg/max
latency)
-M,--framemax <arg> frame max
-m,--ptxsize <arg> producer tx size
-ms,--use-millis should latency be collected in
milliseconds, default is false. Set to true if producers are consumers run
on different machines.
-n,--ctxsize <arg> consumer tx size
-o,--output-file <arg> output file for timing results
-p,--predeclared allow use of predeclared objects
-Q,--global-qos <arg> channel prefetch count
-q,--qos <arg> consumer prefetch count
-qa,--queue-args <arg> queue arguments as key/pair values,
separated by commas
-R,--consumer-rate <arg> consumer rate limit
-r,--rate <arg> producer rate limit
-S,--slow-start start consumers slowly (1 sec delay
between each)
-s,--size <arg> message size in bytes
-sb,--skip-binding-queues don't bind queues to the exchange
-T,--body-content-type <arg> body content-type
-t,--type <arg> exchange type
-u,--queue <arg> queue name
-udsc,--use-default-ssl-context use JVM default SSL context
-X,--producer-channel-count <arg> channels per producer
-x,--producers <arg> producer count
-Y,--consumer-channel-count <arg> channels per consumer
-y,--consumers <arg> consumer count
-z,--time <arg> run duration in seconds (unlimited by
default)
使用PerfTest
运行PerfTest的最基本的方法只是指定要连接的URI,要使用的发布者(比如说1)和一些消费者(比如2)。请注意,RabbitMQ Java客户端可以实现较高的发布速率(每个连接每秒高达80至90K条消息),给予足够的带宽,并且当某些安全措施(发行商确认)被禁用时,很少需要过度配置发布者(除非这是特定的测试目标)。
bin/runjava com.rabbitmq.perf.PerfTest -x 1 -y 2 -u "throughput-test-1" -a --id "test 1"

使用2个发布者和4个消费者:
bin/runjava com.rabbitmq.perf.PerfTest -x 2 -y 4 -u "throughput-test-2" -a --id "test 2"
此修改将消费者切换到手动确认:
bin/runjava com.rabbitmq.perf.PerfTest -x 1 -y 2 -u "throughput-test-3" --id "test 3"
修改将消息大小从默认(12字节)更改为4 kB:
bin/runjava com.rabbitmq.perf.PerfTest -x 1 -y 2 -u "throughput-test-4" --id "test 4" -s 4000
使用持久队列和持久消息:
bin/runjava com.rabbitmq.perf.PerfTest -x 1 -y 2 -u "throughput-test-5" --id "test-5" -f persistent
RabbitMQ吞吐量测试-PerfTest上的更多相关文章
- Kafka吞吐量测试案例
Kafka吞吐量测试案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 领英公司参考连接:https://www.slideshare.net/JiangjieQin/produc ...
- RFC3918聚合组播吞吐量测试——网络测试仪实操
一.简介 1.RFC3918简介 历史 · 在1999年3月成为正式标准 功能 · 评测网络互连设备或网络系统的性能 · 网络设备: 交换机,路由器- 内容 · 定义了一整套测试方法,为不同厂家的设备 ...
- RFC2544吞吐量测试详细步骤-信而泰Renix软件操作演示
关键词:RFC1242:RFC2544:吞吐量:吞吐率. 吞吐量概述:吞吐量即吞吐率,这个词首先在RFC1242中被提出,是评估网络设备性能的首要指标,其定义是在设备没有丢帧的情况下的最大的转发速率, ...
- .NET 6 EFCore WebApi 使用 JMeter 进行吞吐量测试
.NET 6 EFCore WebApi 使用 JMeter 进行吞吐量测试 开发环境 VS2022 .NET 6 测试环境 测试工具 接口压力测试工具:JMeter 数据库 MySQL 5.7 数据 ...
- Azure磁盘的吞吐量测试
Azure的高级存储具有吞吐量大,延迟低的特点,非常适合时间关键型的应用程序(如SQL Server, Oracle, Redis等). 但高级存储同时具有价格高的特点,用户往往对其实际的性能数据较为 ...
- sklearn获得某个参数的不同取值在训练集和测试集上的表现的曲线刻画
from sklearn.svm import SVC from sklearn.datasets import make_classification import numpy as np X,y ...
- rabbitmq在centos 7上的安装
一.安装步骤 参考了官网文档: http://www.rabbitmq.com/install-rpm.html#package-dependencies 这里大概介绍下. rabbitmq-serv ...
- centos HA高可用集群 heartbeat搭建 heartbeat测试 主上停止heartbeat服务 测试脑裂 两边都禁用ping仲裁 第三十二节课
centos HA高可用集群 heartbeat搭建 heartbeat测试 主上停止heartbeat服务 测试脑裂 两边都禁用ping仲裁 第三十二节课 heartbeat是Linu ...
- soapUI 之 测试文件上传 [6]
在接口测试中会遇到需要上传文件的操作,比如头像修改等.那么soapui是怎么实现这部分测试的呢.以下以文件上传接口为例. 一.获取文件上传接口 可以通过开发直接提供的接口文档,或者自己抓包获取接口信息 ...
随机推荐
- Apache+Tomcat+jk windows环境下的集群部署
记一次在Windows服务器上搭建apatch+tomcat+jk的集群搭建过程,其中也遇到了很多问题,总结一下. 一.准备工作 1.apache-tomcat-7.0.88 2.Apche http ...
- Mysql入门基础命令
1 Mysql基本操作 1.1 查询当前数据库 mysql> show databases; +--------------------+ | Database | +------- ...
- 【转载】谈MongoDB的应用场景
引用:http://blog.csdn.net/adparking/article/details/38727911 MongoDB的应用场景在网上搜索了下,很少介绍关于传统的信息化应用中如何使用Mo ...
- 传输控制协议(TCP)
传输控制协议(TCP)[来自Unix网络编程(卷一)第2章] 1.TCP是一个面向连接.可靠性的传输协议: 2.TCP含有用于动态估算客户与服务器之间往返时间(RTT)的算法,以便它知道等待一个确认需 ...
- 解决win10子系统Ubuntu新装的mysql 不能root登陆方法
步骤一:打开终端 $sudo /etc/init.d/mysql stop $sudo mkdir -p /var/run/mysqld $sudo chown mysql:mysql /var/ru ...
- 开放定址法——平方探测(Quadratic Probing)
为了消除一次聚集,我们使用一种新的方法:平方探测法.顾名思义就是冲突函数F(i)是二次函数的探测方法.通常会选择f(i)=i2.和上次一样,把{89,18,49,58,69}插入到一个散列表中,这次用 ...
- SAPバリアント
SAPバリアント VARI バリアント VARID バリアント一覧 VARIT バリアントテキスト VARIS バリアント割当 TVARV バリアント変数(クライアント非依存) TVARVC バリ ...
- urllib使用四--urlencode,urlparse,
urllib.urlencode 把字典数据转换为URL编码 # -*- coding: cp936 -*- import urllib params = {'score':100,'name':'爬 ...
- 菜鸟学Linux - Tarball安装的一般步骤
所谓的Tarball软件,实际上指的是从网络上下载到的源码包.通常是以.tar.gz和tar.bz2结尾.至于gz和bz2的区别在于压缩算法的不同(bz2的压缩效果好像好一些).源码包下载完成后,需要 ...
- python字典的整理信息
字典的增删改查大纲 增: dic={'age':18,'name':'liu','sex':'male'} dic['high'] = 185 #没有键值对,添加 dic['age'] = 16 #有 ...