测试信息
集群信息:
集群1:版本4.7.1,3m-6s,单Broker8G内存,异步复制,异步刷盘,开启了消息追踪
集群2:所有配置一样,不同点是未开启消息追踪功能
备注:集群1的机器性能好,配置为104c、700g;集群2为8c、32g,所以理论上配置相同的情况下,集群2的性能要比测试的结果略高
测试维度:
- 服务端开启消息追踪功能,客户端使用和不使用消息追踪的性能差别
- 服务端开启和不开启消息追踪功能,对客户端的性能影响
测试参数:
线程数:128
消息大小:128byte
集群开启消息追踪
客户端使用消息追踪
生产者
官方4.8.0的benchmark脚本支持开启消息追踪,所以可以直接用来做本次对比测试
./producer.sh -n '172.24.248.2:19902;172.24.248.6:19902;172.24.248.10:19902' -w 128 -t test_topic -m true
消费者
./consumer.sh -n '172.24.248.2:19902;172.24.248.6:19902;172.24.248.10:19902' -w 100 -t test_topic -g zhurunhua -m true
客户端未使用消息追踪
生产者
./producer.sh -n '172.24.248.2:19902;172.24.248.6:19902;172.24.248.10:19902' -w 128 -t test_topic -m false
消费者
./consumer.sh -n '172.24.248.2:19902;172.24.248.6:19902;172.24.248.10:19902' -w 100 -t test_topic -g zhurunhua
集群未开启消息追踪
生产者
./producer.sh -n 'rocketmq01-xadd.test.xdf.cn:9876' -w 128 -t zhurunhua-test -m false
消费者
./consumer.sh -n 'rocketmq01-xadd.test.xdf.cn:9876' -w 100 -t zhurunhua-test -g zhurunhua
总结
下面的表格统计了几种情况下,集群总的TPS(大概)
集群未开启消息追踪 | 集群开启消息追踪 | |
---|---|---|
客户端使用消息追踪 | —————————————————— | 生产者:5.7W;消费者:14W |
客户端未使用消息追踪 | 生产者:5.5W;消费者:21W | 生产者:5.6W;消费者:19W |
- 从服务端的角度,是否开启消息追踪功能,对性能影响不大,客户端消费者性能会略有下降;
- 从客户端的角度,对于生产者,是否使用消息追踪功能,对性能影响不大,对于消费者,使用了消息追踪功能后,性能会有明显下降。
- 如果服务端未开启消息追踪,客户端使用了消息追踪的功能,客户端会报错:No topic route info in name server for the topic:RMQ_SYS_TRACE_TOPIC,实测发现对性能无太大影响,但是客户端会打印大量日志。