前言
我们在生产环境搭建一个集群时,需要对该集群的性能进行摸高。即:集群的最大 TPS 大约多少,我们做到心里有数。通常我们日常的实际流量控制在压测最高值的 1/3 到 1/2 左右,预留一倍到两倍的空间应对流量的突增情况。
如何进行压力测试呢?
- 写段发送代码测试同学通过 JMeter 进行压力测试,或者代码中通过多线程发送消息。这种方式需要多台不错配置的测试机器。
- 通过 RocketMQ 自带压测脚本。
这两种在实践过程中都使用过,压测效果基本接近,为了方便,建议直接在新搭建的 RocketMQ 集群上直接通过压测脚本进行即可。
压测脚本
在 RocketMQ 安装包解压后,在 benchmark 目录有一个 producer.sh 文件。我们通过该脚本进行压力测试。
下面通过 producer.sh -h
看下各个字段的含义。
字段含义:
名称 | 含义 |
---|---|
-h | 使用帮助 |
-k | 测试时消息是否有 key,默认 false |
-n | NameServer 地址 |
-s | 消息大小,默认为 128 个字节 |