[ 
https://issues.apache.org/jira/browse/ARTEMIS-5655?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gašper Čefarin updated ARTEMIS-5655:
------------------------------------
    Description: 
JMX attribute AddressMemoryUsagePercentage shows over 100% when the address mem 
usage is over JVM's global-max-size.

According to the broker's description of the attribute:
[AddressMemoryUsagePercentage is] Memory used by all the addresses on broker as 
a percentage of the global-max-size

global-max-size is, by default, 1/2 of max JVM heap memory. It seems that 
address mem usage can go beyond that.

I didn't 100% confirm this theory but it seems to be correct in my case.
Xmx is 1500MiB in my case, so global-max-size should be at 750MiB.

My address memory usage is at 1055.96 MiB, and AddressMemoryUsagePercentage is 
at 140.80%.
Let's do some math ...
750MiB / 100 * 140.80 = 1056MiB

This is not a problem on console side, but on JMX side. This zabbix item,
{code:java}
jmx["org.apache.activemq.artemis:broker=\"{#JMXOBJ}\"",AddressMemoryUsagePercentage]{code}
which is monitoring the AddressMemoryUsagePercentage attribute, shows the same 
values.

Since math is OK, I think the questions we should ask are:
Is global-max-size is OK for this purpose?
If not, what should the AddressMemoryUsagePercentage be calculated with?


Edit:
There's one more thing.
The

  was:
JMX attribute AddressMemoryUsagePercentage shows over 100% when the address mem 
usage is over JVM's global-max-size.

According to the broker's description of the attribute:
[AddressMemoryUsagePercentage is] Memory used by all the addresses on broker as 
a percentage of the global-max-size

global-max-size is, by default, 1/2 of max JVM heap memory. It seems that 
address mem usage can go beyond that.

I didn't 100% confirm this theory but it seems to be correct in my case.
Xmx is 1500MiB in my case, so global-max-size should be at 750MiB.

My address memory usage is at 1055.96 MiB, and AddressMemoryUsagePercentage is 
at 140.80%.
Let's do some math ...
750MiB / 100 * 140.80 = 1056MiB

This is not a problem on console side, but on JMX side. This zabbix item,
{code:java}
jmx["org.apache.activemq.artemis:broker=\"{#JMXOBJ}\"",AddressMemoryUsagePercentage]{code}
which is monitoring the AddressMemoryUsagePercentage attribute, shows the same 
values.

Since math is OK, I think the questions we should ask are:
Is global-max-size is OK for this purpose?
If not, what should the AddressMemoryUsagePercentage be calculated with?


> Reported AddressMemoryUsagePercentage values are over 100%
> ----------------------------------------------------------
>
>                 Key: ARTEMIS-5655
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-5655
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker, JMX
>    Affects Versions: 2.41.0
>            Reporter: Gašper Čefarin
>            Priority: Minor
>         Attachments: usedmem.png
>
>
> JMX attribute AddressMemoryUsagePercentage shows over 100% when the address 
> mem usage is over JVM's global-max-size.
> According to the broker's description of the attribute:
> [AddressMemoryUsagePercentage is] Memory used by all the addresses on broker 
> as a percentage of the global-max-size
> global-max-size is, by default, 1/2 of max JVM heap memory. It seems that 
> address mem usage can go beyond that.
> I didn't 100% confirm this theory but it seems to be correct in my case.
> Xmx is 1500MiB in my case, so global-max-size should be at 750MiB.
> My address memory usage is at 1055.96 MiB, and AddressMemoryUsagePercentage 
> is at 140.80%.
> Let's do some math ...
> 750MiB / 100 * 140.80 = 1056MiB
> This is not a problem on console side, but on JMX side. This zabbix item,
> {code:java}
> jmx["org.apache.activemq.artemis:broker=\"{#JMXOBJ}\"",AddressMemoryUsagePercentage]{code}
> which is monitoring the AddressMemoryUsagePercentage attribute, shows the 
> same values.
> Since math is OK, I think the questions we should ask are:
> Is global-max-size is OK for this purpose?
> If not, what should the AddressMemoryUsagePercentage be calculated with?
> Edit:
> There's one more thing.
> The



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org
For additional commands, e-mail: issues-h...@activemq.apache.org
For further information, visit: https://activemq.apache.org/contact


Reply via email to