2016年2月4日星期四

AMQ_007:单机环境下 AMQ 单节点 Publish-Subscribe 开箱性能指标

环境:OS X EI Capitan 10.11.3 + JBoss AMQ 6.2.1 + JMeter 2.13

JBoss AMQ 6.2.1使用的版本是apache-activemq-5.11.0.redhat-621084。
本测试不做任何结论性的总结,只是先有个感性认识,以备将来有案可查。

1. 硬件环境
型号名称:    MacBook Pro
型号标识符:    MacBookPro11,3
处理器名称:    Intel Core i7
处理器速度:    2.3 GHz
处理器数目:    1
核总数:    4
L2 缓存(每个核):    256 KB
L3 缓存:    6 MB
内存:    16 GB
Boot ROM 版本:    MBP112.0138.B16
SMC 版本(系统):    2.19f12

2. 测试
测试按照四种消息尺寸:1k、10k、100k、1m 。每种尺寸测试持久化(leveldb 和 kahadb)两种情况。
使用JMeter 进行测试,每个测试计划,启动 5 个JMS Publisher线程,5 个JMS Subscriber线程,JMS Subscriber 使用MessageConsumer.receive(),即同步方式接收消息,运行120秒。
之所以只启动5个线程,是因为发现启动超过5个线程, JMS Subscriber 会有404错误,原因不明。
注意,这种测试方式Subscriber比Publisher要慢,所以测试结束时,还有消息没有接收完。
因此,每个测试用例运行前,需要重启AMQ。

在1.4G Hz~3GHz 的CPU 、1GB 内存的 JMeter 客户端上,可以处理线程 100~300。但是Web Service 例外。XML处理是 CPU 运算密集的,会迅速消耗掉所有的CPU 。一般来说,以XML技术为核心的应用系统,其性能将是普通Web 应用的 10%~25% 。另外,如果所有负载由一台机器产生,网卡和交换机端口都可能产生瓶颈,所以一个JMeter 客户端线程数不应超过100 。

测试计划请参看《测试ActiveMQ的Publish-Subscribe》。
 
消息尺寸
1k
10k
100k
1m
Leveldb
(pub & sub )
6757.5/s
4467.5/s
845.9/s
90.4/s
6758.6/s
4479.4/s
846.3/s
90.4/s
kahadb
(pub & sub)
6832.1/s
4369.7/s
893.0/s
90.7/s
6833.5/s
4359.1/s
893.3/s
90.4/s
(1)leveldb和kahadb相比,kahadb略好。

2.1 1k(leveldb、kahadb)




2.2 10k(leveldb、kahadb)




2.3 100k(leveldb、kahadb)



2.4 1m(leveldb、kahadb)


没有评论: