Artemis内存优化:从实践到策略

在使用Apache Artemis(ActiveMQ Artemis的前身)进行消息传递时,调整其global-max-size属性是非常关键的。该属性决定了Artemis可以使用的最大内存量,它直接影响到系统的性能和稳定性。本文将通过实例探讨如何有效地调整Artemis的内存设置。

背景

假设我们有一个基于Artemis的消息代理系统,配置了32GB的JVM最大堆内存(-Xmx32g)。根据官方建议,global-max-size默认值设置为JVM最大可用内存的一半,即16GB。然而,在实际应用中,这样的设置可能过于保守,特别是在不使用磁盘分页的情况下。

问题描述

在进行负载测试时,将global-max-size设置为90%的JVM最大堆(即约28.8GB),结果系统出现了OutOfMemoryError(OOM)。这表明即使是90%的设置也可能导致内存不足,因为Artemis还需要内存来跟踪内部状态和队列信息。

实例分析

让我们通过一个具体的实例来分析如何优化global-max-size

实例环境

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值