ActiveMQ性能测试

我们使用ActiveMQ作为消息传递层–发送大量需要低延迟的消息。 通常它可以正常工作,但是在某些情况下我们遇到了性能问题。 在花了太多时间测试我们的基础架构之后,我想我已经学到了有关ActiveMQ的一些有趣的东西:它可能真的很慢。

尽管一般来说,消息通过ActiveMQ传输不会出现问题,但是我们注意到,当我们收到大量消息时,就会开始看到延迟。 好像我们正在达到某个消息速率限制–当我们超过该消息速率限制时,消息将被延迟,仅在该限制处传递。 从ActiveMQ贴上消息的时间戳起,我们可以看到代理正在快速接受消息,但是发送给使用者的时间有所延迟。

我设置了一个测试工具来复制问题-这很容易。 但是,我在测试系统中测得的吞吐量似乎很低:每秒2500条消息。 对于一个非常简单的消费者而言,基本上什么也不做,因此没有理由将吞吐量如此之低。 为了进行比较,在完全相同的设置中使用定制的消息传递层,我们达到了每秒15,000条消息。 第二个难题是在生产中,我们看到的消息速率仅为250消息/秒。 为什么测试系统比生产系统快10倍?

我开始尝试消除可能性:

  • ActiveMQ上的并发负载没有区别
  • 更改生产者流量控制设置没有影响
  • 更改使用者的预取限制只会使行为变得更糟(我们将数据写入非持久性主题,因此默认的预取限制很高)
  • 似乎没有组件受到带宽或CPU限制

作为实验,我尝试将使用者与代理人和生产者移动到同一台服务器上:消息吞吐量增加了一倍。 将使用者移动到具有更高ping时间的服务器上:消息吞吐量骤降。

这导致了一种洞察力:ActiveMQ代理的行为恰好好像“一次”发送给消费者的数据量受到限制。 我特别意识到,网络上未确认的数据量似乎受到限制。 如果连线较长,则数据到达使用者的时间更长,而确认返回的时间也更长:因此,代理每秒发送较少的数据。

ActiveMQ

这种行为突出了我们的第一个错误。 我们使用Spring Integration处理用户端的消息路由,在一年前对Spring进行了升级,我们在该版本中获得的更改之一是对消息驱动通道适配器确认JMS消息的方式进行了更改。 以前,我们的消息是自动确认的,但是现在确认模式是“事务处理”的。 这意味着我们必须在将确认发送给代理之前完成整个消息处理链。

这就解释了为什么生产系统(对消息有用的工作)具有比测试系统低得多的数据速率。 不仅是消息必须经过1毫秒的ping时间,消费者还没有发送完确认消息,直到消费者完成了对消息的处理,这可能还要花费几毫秒的时间。

但是更糟糕的是,交易确认似乎完全阻止了用户预取数据! 我们通过事务确认看到的吞吐量是一次在线上一个未确认的消息。 如果我们将消费者移到更远的地方,我们的吞吐量将直线下降。 即,代理在收到之前的确认之前不会发送新消息。 与其代替消费者从经纪人那里预取数百条消息并依次处理它们,而是经纪人耐心地一次发送一条消息! 难怪我们的表现糟透了。

通过spring集成配置更改可以轻松解决此问题。 在测试系统中,我们的消息吞吐量从2500消息/秒增加到10,000消息/秒。 不错的进步。

但是我很好奇,我们仍然会看到经纪人的行为,好像网上未确认数据的数量受到限制吗? 因此,我将使用者转移到相距较远的服务器上进行测试。 结果? 是! 代理仍会限制网络上未确认的数据量。 即使自动确认了消息,对于代理将发送而没有看到确认的数据量也有一个硬性上限。

帽子的大小呢? 约64KB。 是的,在2018年,我的消息传递层一次只能传输64KB的数据。 当经纪人和消费者超级亲密时,这很好。 但是,将消费者与代理之间的ping时间增加到10ms,我们的消息速率将下降到5,000消息/秒。 在100毫秒的往返行程中,我们的消息速率为500消息/秒。

这种行为感觉就像应该控制预取限制:但是,我们看到的消息(不超过60条1kB消息)比预取限制所暗示的要少得多。 到目前为止,我还没有找到关于“消费者窗口大小”是否存在的任何确认。 也没有任何特别修改行为的方法。 使用方上TCP套接字缓冲区大小的增加将传输中的数据量增加到大约80KB,但没有增加。

我很困惑,很多人使用ActiveMQ,而且肯定有人会注意到像这样的数据上限吗? 但是,也许大多数人使用ActiveMQ的消费者和经纪人之间的ping时间非常短,根本就不会注意到它?

但是,人们必须在全球分布式部署中使用ActiveMQ –为什么没人能看到这一点?

翻译自: https://www.javacodegeeks.com/2018/09/activemq-performance-testing.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/345863.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络严楠,安徽工程大学

安徽工程大学是一所以工为主的省属多科性高等院校,是安徽省高校综合改革首批试点院校、安徽省系统推进全面创新改革试验高校创新自主权改革试点单位,入选教育部新工科研究与实践项目。 学校办学历史始于1935年创设的安徽私立内思高级工校,历经…

渝粤教育 陕西师范大学 《JAVA程序设计》作业

《JAVA程序设计》作业 一、选择题 编译HelloWorld.java的正确命令是: java HelloWorld.class B)java HelloWorld.java C)javac HelloWorld.java正确运行HelloWorld.java的正确命令是: java HelloWorld B)javac HelloWorld.java C&#…

垃圾收集算法,垃圾收集器_垃圾收集器准则和提示

垃圾收集算法,垃圾收集器这些是我需要调整GC时通常会看到的一些准则和技巧。 主要由以下两本书组成,而根据我的经验却很少: Java性能 JBoss AS 5性能调优 希望它们对在那里的其他人有用! 垃圾收集器 XX:AggressiveOpts将HotSpot内部布尔变…

【渝粤题库】陕西师范大学 《道德教育案例研究》作业

《道德教育案例研究》作业 一、单选题 1.“在集体中进行教育的原则”是教育家(      )首先提出的 。  A 、马卡连柯   B 、赞科夫   C 、苏霍姆林斯基   D、 加里宁 2.现代德育在德育方法上(      &#xff0…

小自考计算机专业代码,自学考试有关专业分类及其代码

(摘自考委21号文件:高等教育自学考试专业及课程代码)专科:一级学科二级学科专 业工学08管理工程类0822计算机信息管理082207, 管理工程082201,工业外贸082203, 技术监督管理082204,建筑经济管理082209&…

3SAT问题

3-Satisfiability (3Sat) https://samjjx.github.io/2019/03/14/3sat2ds/

渝粤教育 陕西师范大学 《证券投资学[专升本]》作业

《证券投资学[专升本]》作业 一、名词解释 1.股份有限 2.股票 3.利润表(损益表) 4.市盈率 5. 公司债 6.股票现货交易 7.应收账款周转率 8.移动平均线 二、单选题 1、进入证券市场进行证券买卖的各类投资者即…

Java,JavaFX的流利设计风格文本字段和密码字段

我刚刚发布了Java版本4.5 ,JavaFX主题JMetro 。 此版本为“文本字段”和“密码字段”添加了新样式。 和往常一样,受到Fluent Design的启发。 在这篇文章中,我将详细介绍这个新版本。 JMetro版本4.5 就像我在简介中所说的那样,JM…

渝粤题库 陕西师范大学 《危机管理》作业

《危机管理》作业 一、填空题 1.文化冲突的两种类型是( )和( )。 2.日本危机处理专家泷泽正雄认为危机的定义是( ) 。 3.突发事件强调的是(…

零空间,Markov‘s inequality, Chebyshev Chernoff Bound, Union Bound

0. 零空间 零空间是在线性映射(即矩阵)的背景下出现的,指:像为零的原像空间,即{x| Ax0}。 在数学中,一个算子 A 的零空间是方程 Av 0 的所有解 v 的集合。它也叫做 A 的核,核空间。如果算子是…

渝粤教育 陕西师范大学 《学前儿童健康教育》作业

《学前儿童健康教育》作业 一、名词解释题 1.生活教育 2.体育运动的量力性原则 3.提名法 4.健康行为 5.整体健康理论 6.体育运动的保护性原则 7.合理膳食 8.学前儿童体育 …

prd展示html文件,prd目的.html

PRD目的$axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; };$axure.utils.getOtherPath function() { return resources/Other.html; };$axure.utils.getReloadPath function() { return resources/reload.html; };业务优先于需求…

渝粤教育 陕西师范大学 《初级微观经济学》作业

《初级微观经济学》作业 一、填空题 1.微观经济学的研究对象是————————————。 2.需求曲线向————倾斜,表明商品的价格与供给量成————变动。 3.支持价格是政府为了扶植某一行业的生产而规定的该行业产品的——————。 4.>1…

连续、偏导数、可微

1 连续的含义 通俗来说,用笔作画,不提笔画出来的曲线就是连续的: 1.1 没有缝隙 我们对连续的函数曲线的直观感受是没有缝隙: 1.2 另一层含义 2 可微的含义 可微可导的几何意义 对于一元函数,可微的几何意义是该点处存在切…

陕西师范大学 渝粤教育 《学前儿童数学教育》作业

《学前儿童数学教育》作业 一、填空题 1、学前儿童时间概念发展的一般特点是( )( )( )( )。 2、幼儿学习排序的方法有( )( &…

OCA第7部分的Java难题

在OCA系列的Java Puzzlers的这一部分中,我将展示定义字符串的多种方法以及与此相关的潜在惊喜。 创建字符串的两种基本类型是使用new关键字和仅使用字符串文字来创建。 String strWithNew new String( "hey" ); String strWithLiteral "ho" …

专科计算机应用计算机网络,西南科技大学自考计算机应用及计算机网络(专科).doc...

PAGEPAGE 1西南科技大学自考计算机应用及计算机网络(专科)数据库实验指导书一、实验要求:本次实验可从下面的三个题目中任选一个来做。二、本实验的环境配置要求:硬件配置:586以上PC兼容机或品牌机,配有彩色显示器、鼠标、键盘&am…

齐次(Homogeneous)、单项式、多项式

齐次 所谓的「齐」,必然是有两个或者以上的对象,那么就以两个对象x,yx,yx,y为例。 齐次,是指所列的式子只和Xn,ynX^n, y^nXn,yn相关,不存在Xm,yl(m≠n,l≠n)X^m, y^l (m \neq n, l \neq n)Xm,yl(m​n,l​n)的项,包…

渝粤教育 陕西师范大学 《金融中介学Ⅰ》作业

《金融中介学Ⅰ》作业 一、单选题 1、金融中介提供的是服务,收取的是( ) A 手续费 B 佣金 C 服务费 D金融费 2、( )是金融市场活动的组织承担者。 A银行 B投资银行 C 金融中介机构 D投资者 3…

渝粤题库 陕西师范大学 教育心理学作业

教育心理学作业 一、单选题 1、心理学的研究对象是( )。 A.心理与行为的规律 B.人的本性及其改变的规律 C.行为变化规律 D.心理活动的规律 2、将认识过程看成是个体接受、加工…