ActiveMQ极限性能参数测试结果

  • Post author:
  • Post category:其他


ActiveMQ作为当前最流行的开源JMS实现,已经大量使用在运营产品中,售中产品也将使用ActiveMQ作为消息中间件JMS主要有两种工作模式:点对点模式(point-to)和发布/订阅模式(Publish/Subscribe),有些地方也称为面向队列模式(queue)和面向主题模式(topic)。本次根据RD需求只对Queue模型信息交互模式进行极限性能测试。

测试中,需要部署三种抽象进行Queue模型消息模拟,分别是生产者、消费者和消息队列。根据RD需求,消息队列使用ActiveMQ并采用MySQL的Persistence的模式进行接收和发送工作;消费者和生产者,采用JMS原生接口和线程池模拟并发进行性能测试。

主要测试的ActiveMQ模拟的三个场景,分别是:第一,只发送不接收,测试出消息队列发送的极限;第二,只接收不发送,测试出消息队列对应消费者的极限;第三,发送接收同时工作,测试出消息队列的处理极限。

发送信息每个数据包为cust表一行数据的字符串长度和一个JAVA时间戳,大小大约为0.5KB左右。一个测试样本一个线程的发送数/接收量为10万条,从1条线程开始测试,每次增加3条行程(三台测试机一台增加1),直到吞吐量出现拐点(吞吐量为每秒发送数据条数)。

ActiveMQ开源中间件和配合消息队列持久化的MySQL部署在:


db-testing-ecom380.db01.baidu.com

物理机


CPU

Intel(R) Xeon(R) CPU E5620 @ 2.40GHz 8核

MEM

64G

模拟多线程发送和接收的工作采用JAVA编写,分别部署在3台机器上:


cq01-testing-sf113.vm.baidu.com

虚拟机


CPU   I

ntel(R) Xeon(R) CPU E5645 @ 2.40GHz 4核

MEM

16G


cq01-testing-sf114.vm.baidu.com

虚拟机


CPU   I

ntel(R) Xeon(R) CPU E5645 @ 2.40GHz 4核

MEM

16G


cq01-testing-ecom-sfcrm04.vm.baidu.com

虚拟机


CPU   I

ntel(R) Xeon(R) CPU E5645 @ 2.40GHz 2核

MEM

16G

因为Jmeter提供的JMS测试Sample提供的接收发送服务不够灵活不能满足测试需求,因此只采用Jmeter测试工具对我所开发的测试工具进行验证。

单开发送功能,吞吐量的峰值为:1700左右;峰值时,线程数为60。

单接收送功能,吞吐量的峰值为:;峰值时,线程数为。

需要注意如果数据库里堆积大量未接收消息数据,接收效率将大大受到影响

同时开启收发功能,发送吞吐量的峰值为:1000左右;同时开启发送功能,接收吞吐量的峰值为:1000左右;峰值时,线程数分别为接收18-30,发送3-30。

要注意一点,在发送接收同步的时候,它们的吞吐量是相互影响的。

接收数据是要对


MySQL


数据库进行查询操作,接收性能瓶颈主要在数据库


ACTIVEMQ_MSGS


表的查询上,


ACTIVEMQ_MSGS


的数量级对接收性能影响很大

1.       单发送模式:(7个CASE)

只列举出了有代表性的几组数据:


线程数


1


3


12


18


30



版权声明:本文为geniuslb2001原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。