activemq内存使用量是最大堆分配量的4倍

hsgswve4  于 2021-07-03  发布在  Java
关注(0)|答案(3)|浏览(460)

下面是我的javaactvemq进程的配置,其中xmx是15360m,但是当我看到使用glance的进程内存使用情况时,我看到rss41.8gb和vss51.6gb。格雷普总共给我54059348k。我不确定activemq中发生了什么导致了如此多的内存被利用。堆的使用率很低,只有60%。
在pmap的输出中,我看到很多非块。请查看附件pmap输出

/XXXXX 111922      1 22 14:30 pts/0    00:04:26 
/u/users/user/jdk1.7.0_71/bin/java -Xms1024M -Xmx15360M -Xss512K 
-XX:+UseG1GC -XX:NewRatio=4 -XX:InitiatingHeapOccupancyPercent=45 
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/x/logs/AMQGC.log 
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=20M 
-Djava.util.logging.config.file=logging.properties 
-Djava.security.auth.login.config=/u/users/user/POSInterfaces/apache-activemq-5.13.2//conf/login.config 
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote 
-Djava.awt.headless=true 
-Djava.io.tmpdir=/u/users/user/POSInterfaces/apache-activemq-5.13.2//tmp 
-Dactivemq.classpath=/u/users/user/POSInterfaces/apache-activemq-5.13.2//conf:/u/users/user/POSInterfaces/apache-activemq-5.13.2//../lib/: 
-Dactivemq.home=/u/users/user/POSInterfaces/apache-activemq-5.13.2/ 
-Dactivemq.base=/u/users/user/POSInterfaces/apache-activemq-5.13.2/ 
-Dactivemq.conf=/u/users/user/POSInterfaces/apache-activemq-5.13.2//conf 
-Dactivemq.data=/u/users/user/POSInterfaces/apache-activemq-5.13.2//data 
-jar /u/users/user/POSInterfaces/apache-activemq-5.13.2//bin/activemq.jar 
start/

请在此处查找pmap文件

ttisahbt

ttisahbt1#

要分析应用程序的内存使用情况(不仅包括java堆),可以使用以下答案。
你的anon积木大多大小相近。在大多数情况下,很多人都不谈论线程。如果activemq中有很多目的地,那么可以有很多线程。但anon块的大小与线程堆栈的大小并不接近。所以我想可能不是线。
请注意,对于activemq,15gb是非常高的,有时对于java也是如此,这对gc的影响非常大。您可以在这里和这里阅读如何为系统内存使用配置activemq。

hm2xizp9

hm2xizp92#

我可以确认activemq不能使用比您用-xmx配置的更多的jvm堆。activemq是100%java,因此代理不会使用jvm以外的堆内存。
要了解实际使用了多少java堆,请查询jvm的jmx统计信息,它应该始终保持在配置的限制内。
我不熟悉pmap,所以我不能真正评论这一部分,但我想知道最高命令给你什么数字?

o0lyfsai

o0lyfsai3#

我从rss中得知,您运行的是unix—不确定这是不是linux。
我想知道您是否应该关注pss(比例集大小)而不是rss(驻留集大小)-请看这个关于内存的unix和linux问题-我发现smem是评估实际内存使用情况的一个很好的工具。
例如-对于我的服务器上的activemq进程(使用-xmx512m设置)

[user@vm ~]$ sudo pmap 13727 | grep total
 total          3161064K

[user@vm ~]$ sudo smem | grep -e '13727' -e 'PSS'
  PID User     Command                         Swap      USS      PSS      RSS
13727 activemq /usr/bin/java -Xms64M -Xmx1        0   212604   214962   229468

i、 pmap给了我一个比smempss(甚至rss)更高的内存(3gb)(约200m)

相关问题