`
sbl2255
  • 浏览: 218264 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ActiveMQ性能测试

    博客分类:
  • jdk
 
阅读更多

工作之余,公司想对ActiveMQ进行一番性能测试,

测试环境:



 硬盘:1T,5400  (效果不佳)

 

 

得出了一个异样的测试结果:

 

持久: 

插入200000条JSON,共消耗:25.175 s

平均:7944.389275074478 条/秒

 

插入200000条JSON,共消耗:34.47 s

平均:5802.146794313896 条/秒

 

插入200000条JSON,共消耗:29.937 s数量:1400000

平均:6680.696128536593 条/秒

 

插入200000条JSON,共消耗:29.094 s

平均:6874.269608854059 条/秒

 

 

 

非持久:

插入200000条JSON,共消耗:11.35 s数量:1800000

平均:17621.14537444934 条/秒

 

插入200000条JSON,共消耗:10.714 s

平均:18667.16445771887 条/秒

 

插入200000条JSON,共消耗:11.153 s

平均:17932.394871335066 条/秒

 

插入200000条JSON,共消耗:10.717 s数量:2400000

平均:18661.93897545955 条/秒

 

 

主要在自己本地测试,最终祸首是硬盘不给力啊;

在进行持久化操作时,ActiveMQ默认是kahadb管理

log的默认大小是32MB,当超过之后会新建一个新的log文件,完成操作后,activeMQ又将旧的log删除了。

 



 

 

代码贴上:

public class Sender {

	static int size = 200000;
	static Session session;
	static MessageProducer producer;
	static Topic topic;
	static Connection connection;
	static String str = "[{'flag':'1','value':'8854c92e92404b188e63c4031db0eac9','label':'交换机(虚机)'},{'flag':'1','value':'3f367296c2174b7981342dc6fcb39d64','label':'防火墙'},{'flag':'1','value':'8a3e05eeedf54f8cbed37c6fb38c6385','label':'负载均衡'},{'flag':'1','value':'4f0ebc601dfc40ed854e08953f0cdce8','label':'其他设备'},{'flag':'1','value':'6','label':'路由器'},{'flag':'1','value':'4','label':'交换机'},{'flag':'1','value':'b216ca1af7ec49e6965bac19aadf66da','label':'服务器'},{'flag':'1','value':'7','label':'安全设备'},{'flag':'1','value':'cd8b768a300a4ce4811f5deff91ef700','label':'DWDM\\SDH'},{'flag':'1','value':'5','label':'防火墙(模块)'},{'flag':'1','value':'01748963956649e589a11c644d6c09b5','label':'机箱'}]";

	public static void init_connection() throws Exception {
		ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
		connection = factory.createConnection();
		connection.start();
		session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
		topic = session.createTopic("java.activemq.tps");
		producer = session.createProducer(topic);
		producer.setDeliveryMode(DeliveryMode.PERSISTENT);
	}

	public static void sendMessage(String msg) {
		TextMessage message;
		try {
			message = session.createTextMessage();
			message.setText(str);
			producer.send(message);
		} catch (JMSException e) {
			e.printStackTrace();
		}
	}

	public static void close() throws Exception {
		connection.close();
	}

	public static void main(String[] arg) throws Exception {
		long start = System.currentTimeMillis();
		ExecutorService es = Executors.newFixedThreadPool(10);
		final CountDownLatch cdl = new CountDownLatch(size);
		init_connection();
		for (int a = 0; a < size; a++) {
			es.execute(new Runnable() {
				@Override
				public void run() {
					sendMessage(str);
					cdl.countDown();
				}
			});
		}
		cdl.await();
		es.shutdown();
		long time = System.currentTimeMillis() - start;
		System.out.println("插入" + size + "条JSON,共消耗:" + (double)time / 1000 + " s");
		System.out.println("平均:" + size / ((double)time/1000) + " 条/秒");
		close();
	}
}

 

 

 

  • 大小: 4.4 KB
  • 大小: 11.4 KB
分享到:
评论
3 楼 youarepp 2016-01-13  
用PC测单个,差不多了,现网的环境服务器肯定更好,而且还可以做集群,水平拓展这都不是问题
2 楼 sbl2255 2014-12-22  
milanACmilan 写道
问个问题:测试时activeMQ的配置文件和启动脚本中的JVM参数是否有改动?有的话,是怎么改动的?

优化JVM资料很多的,这里都是默认配置,性能这东西我觉得硬件才是王道。
1 楼 milanACmilan 2014-12-18  
问个问题:测试时activeMQ的配置文件和启动脚本中的JVM参数是否有改动?有的话,是怎么改动的?

相关推荐

    Jmeter测试ActiveMQ性能报告

    基于测试结果,提出改进ActiveMQ性能的策略,例如优化配置参数、调整硬件资源分配、改善网络环境等。同时,为未来的性能测试提供参考框架和最佳实践。 本报告详尽地记录了整个测试过程,从测试设计、执行到结果分析...

    ActiveMQ 性能基准测试报告

    ActiveMQ 基准性能测试 所有的测试都在两台服务器上完成。服务器由网线相连。消息消费者和提供者被安装在x86的机器上,配置为2.40G CPU和1.0GB内存,操作系统为Windows Server 2003 SP1,Broker被安装在一台x86机器...

    activemq性能与高可用性测试

    "activemq性能与高可用性测试" ActiveMQ是一种开源的消息队列和集成patterns服务器,旨在实现高可用性和高性能的消息传输。为了确保ActiveMQ的高可用性和高性能,需要对其进行性能和高可用性测试。 ActiveMQ集群...

    mqttjs(activemq测试工具)

    在测试ActiveMQ时,你可以创建多个客户端实例,模拟不同设备的行为,比如发布不同的消息或者订阅多个主题,以验证ActiveMQ的正确性和性能。同时,ActiveMQ提供了一个Web管理界面,可以实时查看和管理消息队列,便于...

    ActiveMQ-Performance-Test.rar_activemq_消息中间件

    5. **结论与建议**:基于测试数据,可能提供了关于ActiveMQ性能表现的总结,以及如何改进性能的建议,可能涉及调整队列策略、优化网络设置、增加硬件资源等。 **ActiveMQ 性能优化策略** - **配置优化**:例如调整...

    基于zookeeper+levelDB的ActiveMQ集群测试代码

    接下来,我们将详细讲解如何配置和运行这个基于ZooKeeper和LevelDB的ActiveMQ集群测试代码: 1. **安装与配置ZooKeeper**: 首先,你需要在集群的每台机器上安装ZooKeeper,配置`conf/zoo.cfg`文件,设置集群节点...

    activemq rcp测试例子 不包含依赖库

    5. 调试和优化:根据测试结果,可能需要调试代码或调整ActiveMQ的配置以优化性能和稳定性。 了解这些基本概念后,你可以开始着手搭建环境,运行这个示例,从而深入理解ActiveMQ RCP的工作原理及其在实际应用中的...

    activeMQ收发工具.rar

    9. **性能监控**:ActiveMQ提供了一套强大的监控工具,包括Web控制台,可以用来查看消息的发送、接收和堆积情况,帮助优化系统性能。 10. **安全配置**:理解ActiveMQ的安全模型,包括用户身份验证和权限控制,这...

    ActiveMQ连接和使用测试工程

    **ActiveMQ连接与使用测试工程详解** ActiveMQ是Apache软件基金会的一个开源项目,它是一个功能丰富的消息代理,支持多种消息协议,如OpenWire、STOMP、AMQP和MQTT等。在Java开发环境中,ActiveMQ作为中间件广泛...

    ActiveMQ和HornetQ性能对比

    本文旨在通过一系列测试数据对比分析ActiveMQ与HornetQ在不同消息大小及数量下的性能表现。测试环境为相同的硬件配置,确保了测试结果的公正性。通过对比两者的发送时间、吞吐量等指标,可以更直观地了解两者之间的...

    activeMQ 例子 真实环境下测试过

    这个"activeMQ 例子 真实环境下测试过"的压缩包文件很可能包含了一系列用于演示和验证ActiveMQ功能的实际代码或配置示例。 ActiveMQ的核心功能包括: 1. **消息队列**:ActiveMQ支持发布/订阅和点对点两种模式的...

    ActiveMQ与Zookeeper集群测试代码

    ActiveMQ是Apache软件基金会开发的一款开源的消息中间件,它遵循Java Message Service(JMS)规范,支持多种协议,如AMQP、STOMP等,能够用于处理大量并发消息传递,提供高可靠性和高性能。而Zookeeper则是一个...

    activeMQ static broker测试

    在"activeMQ static broker测试"中,我们关注的是ActiveMQ的静态Broker配置,这是一种常见的部署模式,确保高可用性和故障切换能力。 静态Broker配置是指在ActiveMQ集群中,所有的节点都知道彼此的存在,形成一个...

    activemq测试样例

    这个“activemq测试样例”压缩包提供了有关如何使用ActiveMQ创建队列、创建消费者以及处理消息积压的示例。通过这个样例,我们可以深入了解ActiveMQ的基本操作和特性。 首先,我们要理解ActiveMQ中的队列。在JMS中...

    Activemq压测报告

    压测工具可能是Apache JMeter或其他适合的消息队列性能测试工具。部署方式可能涉及单实例、集群或主从配置。硬件配置涵盖CPU、内存、硬盘和网络带宽,这些都是影响性能的关键因素。参数调整涉及ActiveMQ的配置文件,...

    实验三 消息中间件应用开发:ActiveMQ实现单线程多队列

    最后,实验可能会涉及性能测试和优化,比如调整队列的大小,观察不同负载下的系统表现,以及分析和解决可能出现的性能瓶颈。 【标签】:“ActiveMQ” ActiveMQ作为标签,表明本实验主要围绕这个特定的消息中间件...

    ActiveMQ接受和发送工具.rar

    使用这些工具,开发者可以快速验证ActiveMQ配置的正确性,调试应用程序,或者进行性能测试。 总的来说,ActiveMQ作为一个强大的消息中间件,为分布式系统提供了健壮的消息传递解决方案。这个"ActiveMQ接受和发送...

    activemq rcp测试的依赖资源,不包含rcp的例子

    标题中的“activemq rcp测试的依赖资源”指的是在进行ActiveMQ RCP(Rich Client Platform)应用程序测试时所...在实际项目中,开发者需要结合这些库和自己的业务逻辑来实现ActiveMQ RCP的功能,并确保其正确性和性能。

    activemq demo

    10. **性能与监控**:学习如何评估ActiveMQ的性能,并了解如何通过管理控制台或API进行监控和故障排查。 在这个“guo-mq02”压缩包中,包含了实现这些功能的源代码,通过分析和运行这些代码,你将深入理解ActiveMQ...

Global site tag (gtag.js) - Google Analytics