Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RSS/VSS不断增长,直到计算机上的所有内存和交换结束_Java_Linux_Memory_Rhel - Fatal编程技术网

Java RSS/VSS不断增长,直到计算机上的所有内存和交换结束

Java RSS/VSS不断增长,直到计算机上的所有内存和交换结束,java,linux,memory,rhel,Java,Linux,Memory,Rhel,我们在RHEL5.3上有一个带有Java1.5.0.16的weblogic 9.2服务器,我们在其上部署了一个web服务和一个Alfresco内容管理系统 我们在HP-UX i11.23上运行了大约3年,一个月前我们迁移到了Linux RH5.3,不时发生3次,我们注意到该进程开始使用越来越多的内存,直到机器上的所有内存和交换结束 这个过程仍然工作正常,所有日志文件看起来都很正常,好像什么都没发生,包括GC日志 Glance for process ID 25450: B0000A Glanc

我们在RHEL5.3上有一个带有Java1.5.0.16的weblogic 9.2服务器,我们在其上部署了一个web服务和一个Alfresco内容管理系统

我们在HP-UX i11.23上运行了大约3年,一个月前我们迁移到了Linux RH5.3,不时发生3次,我们注意到该进程开始使用越来越多的内存,直到机器上的所有内存和交换结束

这个过程仍然工作正常,所有日志文件看起来都很正常,好像什么都没发生,包括GC日志

Glance for process ID 25450:

B0000A Glance C.04.70.000 06:54:05 supra2 x86_64 Current Avg High
CPU Util SU | 2% 2% 2%
Disk Util D D | 97% 97% 97%
Mem Util U U | 98% 98% 98%
Swap Util U U | 60% 60% 60%
Resources PID: 25450, java PPID: 25394 euid: 664 User:afspr04
CPU Usage (util): 5.40 Total RSS : 40.6gb
User CPU : 3.60 Text VSS : 56kb
System CPU : 1.80 Data VSS : 66.1gb
Priority : 15 Stack VSS : 2.0mb
Nice Value : 0 Total VSS : 66.5gb
Blocked On : SLEEP
Major Faults : 235
Minor Faults : 164
Processor : 1
Argv1: weblogic.Server
Cmd : /opt/java1.5.0_16/bin/java -Dweblogic.Name=dmcmsserver -Doracle.net.tns_admin=/etc -server -javaagent:/opt/MercuryDiagn
ostics/JavaAgent/DiagnosticsAgent/lib/probeagent.jar -Dprobe.id=supra2_afspr04_dmcms_ear_p4 -Dprobe.group=CMS_SERVER -D
points.file.name=/opt/MercuryDiagnostics/JavaAgent/DiagnosticsAgent/etc/supra2_afspr04_dmcms_ear_p4 -Dcom.wily.introsco
pe.agent.agentName=DMCMS -Xms7g -Xmx7g -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewSize=1792m -XX:MaxNewSize=1792m -X
X:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Xnoclassg
c -Xloggc:logs/gc.log -Doracle.net.tns_admin=/etc -Dweblogic.Stderr=/app/afspr04/dmcms_ear_p4/dmcmsdomain/logs/online.l
og -Dweblogic.Stdout=/app/afspr04/dmcms_ear_p4/dmcmsdomain/logs/online.log -Damdocs.system.home=/app/afspr04/dmcms_ear_
p4/properties/jesi -Damdocs.messageHandling.home=/app/afspr04/dmcms_ear_p4/properties/jesi -Djesi.config.loader=amdocs.
ecommerce.esi.utils.config.InterfaceConfigXPathLoader -Damdocs.uams.config.resource=config/mvc/ldap ...
pmap将大分配显示为匿名 pmap按大的一次排序:

25450: /opt/java1.5.0_16/bin/java -Dweblogic.Name=dmcmsserver -Doracle.net.tns_admin=/etc -server -javaagent:/opt/MercuryDiagnostics/JavaAgent/DiagnosticsAgent/lib/probeagent.jar -Dprobe.id=supra2_afspr04_dmcms_ear_p4 -Dprobe.group=CMS_SERVER -Dpoints.file.name=/opt/MercuryDiagnostics/JavaAgent/DiagnosticsAgent/etc/supra2_afspr04_dmcms_ear_p4 -Dcom.wily.introscope.agent.agentName=DMCMS -Xms7g -Xmx7g -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewSize=1792m -XX:MaxNewSize=1792m -XX:SurvivorRatio=4 -XX:TargetSurvivo
00002ab0f8000000    10518548    rwx--   [anon]
00002ab798009000    8388612 rwx--   [anon]
000000005fcce000    8038976 rwx--   [anon]
00002aac7aab0000    7602176 rwx--   [anon]
00002aaf74000000    5259284 rwx--   [anon]
00002ab688000000    4194308 rwx--   [anon]
00002aae4b930000    1684124 rwx--   [anon]
00002aab80000000    1314836 rwx--   [anon]
00002aab20000000    655376  rwx--   [anon]
00002aac28000000    532488  rwx--   [anon]
00002aac50000000    524292  rwx--   [anon]
00002aaaec000000    327696  rwx--   [anon]
00002aaad8000000    131088  rwx--   [anon]
00002ab658000000    131060  rwx--   [anon]
00002ab0dc000000    131044  rwx--   [anon]
00002aaacc2f5000    114708  rwx--   [anon]
...
total 69733292K 
有人遇到过类似的事情吗

谢谢,
Oz

您正在使用的服务器的CPU/RAM是多少?您应该咨询,并确保您的JDK/CPU配置是受支持的组合。此外,因为你可能想考虑JRockit作为你的JVM,如果这是你的选择。最后,还要尝试降低最大堆空间-Xmx和-Xms,看看服务器是否更稳定。

对于不同的操作系统Sun Solaris 10-32位,我们也有同样的问题,但我看到了一个共同点:Introscope

我们怀疑它分配内存太多内存泄漏?因为它使用本机库*。所以可以通过JNI访问

为了理解我的观点,在本例中,我需要澄清JVM进程的内存:Java进程的整个内存分为两个不同的部分,本地内存和Java内存

由垃圾收集器管理的Java部分的内存可以通过标准JVMAPI进行监控。请记住,在Java中,您只能监视JVM进程内存的这一部分。它包含堆伊甸园&2个幸存者,奥德根,佩尔根。内存的这一部分通常是最大的,这就是为什么有办法监视它,而其余的则没有办法

进程的其余内存(本机部分)是不同的。它由网络套接字/缓冲区、文件描述符/缓冲区、GC实际数据结构和缓冲区、本机库缓冲区、JIT编译器编译的本机代码以及其他一些特定于JVM的内部内容组成。还有JVM和本机库的可执行代码。在这一部分中通常没有标准的方法,通常根本没有方法查看,除非使用调试器

在向C&A询问Wily/Introscope的原生库后,他们向我们解释说:

动态分配内存; 没有办法限制它的内存消耗; 没有办法预测它的内存消耗; Wily仅使用它来收集底层系统的特定度量值,例如操作系统标志、CPU负载、总可用内存、进程数等,因为Introscope将Java代理API用于其他一切。 对于99%的应用程序,内存的本机部分(非Java部分)与Java部分相比微不足道

但在这里,随着我们的游戏中使用内窥镜,情况会有所不同,因为本地部分可能会任意变大,并将进程的内存空间消耗到极限

我们在这里得出的结论是,这些特定于系统的价值观对我们来说并不十分有趣——我认为这对你们中的许多人来说都是如此,因为还有其他方法可以获得它们:mem、free、top、taskmanager等等所以我们决定把它移走。很简单

我相信这是最好的选择


试试看,告诉我们它是否解决了您的记忆问题。

您好,谢谢您的回复。支持CPU IntelR XeonRE5540@2.53GHz、RAM 48g、JDK 1.5.0.16和配置。由于我们刚刚从HP-UXI切换到Linux,因此出于性能原因,我们可能会在将来研究JRockit。谢谢,你在运行64位内核吗?您是否尝试过升级到JDK1.5.0_22?