java.lang.OutOfMemoryError:本机内存耗尽

NehaGoswami

我正在运行一个jar文件,该文件将数据从oracle复制到目标服务器(ElasticSearch)。链接文本我正在AIX框上运行此jar:

/ oradata / slscrmit / tally> oslevel -s

7100-04-03-1642

uname -a AIX mila 1 7 00F79AB04C00。

运行jar文件时出现此错误:用于运行的命令:java -Xms3g -Xmx3g -Xmn1g -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -XX:MetaspaceSize=500m -XX:MaxMetaspaceSize=500m -XX:SurvivorRatio=2 -jar -Dlog4j.configurationFile=file:log4j2.xml -Dfile.encoding=UTF-8 BoltESTally-1.4.3-Ver-1.0.jar initload。

===================错误===============

JVMDUMP039I正在处理转储事件“ systhrow”,详细信息“ java / lang / OutOfMemoryError”在2017/12/15 08:24:21-请稍候。JVMDUMP032I JVM使用'/oradata/slscrmit/tally/core.20171215.082421.39781194.0001.dmp'请求系统转储,以响应事件注意:smit中的“启用完整CORE转储”设置为FALSE,因此线程数量有限核心文件中的信息。JVMDUMP010I写入到/oradata/slscrmit/tally/core.20171215.082421.39781194.0001.dmp的系统转储JVMDUMP032I JVM请求'/oradata/slscrmit/tally/heapdump.20171215.082421.39781194.0002.phd'来响应堆JVMDUMP010I堆转储到/oradata/slscrmit/tally/heapdump.20171215.082421.39781194.0002.phd JVMDUMP032I JVM使用'/oradata/slscrmit/tally/javacore.20171215.082421。39781194.0003.txt'以响应事件JVMDUMP010I Java转储写入/oradata/slscrmit/tally/javacore.20171215.082421.39781194.0003.txt JVMDUMP032I JVM使用'/oradata/slscrmit/tally/Snap.20171215.082421.39781194.0004.trc'请求了Snap dump响应事件JVMDUMP010I将快照转储写入/oradata/slscrmit/tally/Snap.20171215.082421.39781194.0004.trc JVMDUMP013I已处理转储事件“ systhrow”,详细信息“ java / lang / OutOfMemoryError”。2017年12月15日,上午8:24:23 org.elasticsearch.transport.netty.NettyInternalESLogger警告警告:选择器循环中出现意外异常。java.lang.OutOfMemoryError:本机内存在java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:311)在java.nio.DirectByteBuffer。(DirectByteBuffer.java:127)处的sun.misc.Unsafe.allocateDBBMemory(本机方法)处耗尽在组织。

============================================

SVMON输出:

Pid命令正在使用的Pin Pgsp虚拟64位Mthrd 16MB 24315106 java 796276 11137 0 779119 NYN

 PageSize                Inuse        Pin       Pgsp    Virtual

 s    4 KB               18356        225          0       1199

 m   64 KB               48620        682          0      48620
 L   16 MB                   0          0          0          0
 S   16 GB                   0          0          0          0

Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual

169bfe6 4个工作共享的内存段m 4096 0 0 4096

84ba04 e工作共享内存段m 4096 0 0 4096

1025d8c 7工作共享内存段m 4096 0 0 4096

13225a5 6个工作共享的内存段m 4096 0 0 4096

119a981 c工作共享内存段m 4096 0 0 4096

14349c 8个工作共享的内存段m 4096 0 0 4096

1c2ed4e d工作共享内存段m 4096 0 0 4096

2e9eaf 9工作共享内存段m 4096 0 0 4096

7854f1 5工作共享内存段m 4096 0 0 4096

f2b266 f工作共享内存段m 4095 0 0 4095

181650e工作共享内存段m 4090 0 0 4090

1d42b52 3个工作储藏室m 2681 0 0 2681

20002 0工作内核段m 743681 0 743

================================================== =:我的Aix框上有足够的空间:vmstat:

系统配置:lcpu = 128 mem = 256512M

kthr内存页面错误cpu


rb avm fre re pi po fr sr cy in sy cs us sy id wa

6 1 27345787 25280860 0 0 0 0 0 0 1747 28990 59128 8 3 89 0

非生产:!:_ mila:/ oradata / slscrmit / tally> oslevel -s

优名

7100-04-03-1642

NON-PROD:!:_ mila:/ oradata / slscrmit / tally> uname -a

AIX米拉1 7 00F79AB04C00

filetyatem中也有空间:/ dev / slscrmit_oradt 2118.50 2024.41 94.09 96%/ oradata / slscrmit

在此处输入图片说明

NehaGoswami

我能够解决这个问题:::

根本原因:32位JVM在将Java堆内存和本机内存扩展到2GB以上方面有技术限制。包含的setenv.sh文件。“ export JAVA_HOME = / usr / java8 / bin”,它指向32位JVM

解决方案:目标是指向64位JVM。还要检查内核位模式是否为64bit?使用命令getconf KERNEL_BITMODE使用以下命令验证64位JVM版本:

java -d64 -version

纠正setenv.sh使其在所有AIX盒上指向64位jvm,导出JAVA_HOME = / usr / java8_64确保该文件中的其他条目指向此JAVA_HOME。

现在运行jar并使用所需的堆大小指定命令行参数。我能够以10g的堆大小运行它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

尝试在手机内存上写入时发生致命异常:java.lang.OutOfMemoryError

java.lang.OutOfMemoryError: [内存耗尽] 从 Sqlite Android 读取数据时

高XMX:java.lang.outofmemory本机内存分配(malloc)无法为ChunkPool :: allocate分配32756字节

这些Java本机内存从哪里分配?

在Java中创建本机内存泄漏

java.lang.OutOfMemoryError:无法创建新的本机线程

什么是Java本机内存跟踪输出的“其他”部分?

跟踪Java的本机内存使用情况?

Java本机内存使用情况

java.lang.OutOfMemoryError:Android

捕获java.lang.OutOfMemoryError?

Android java.lang.OutOfMemoryError?

java.lang.OutOfMemoryError图片

错误是java.lang.OutOfMemoryError

如何增加分配给Java的内存?java.lang.OutOfMemoryError:Java堆空间

java.lang.OutOfMemoryError:Java堆空间

java.lang.OutOfMemoryError:Java堆空间

java.lang.OutOfMemoryError:Java堆空间?

JVM与Java进程消耗的本机内存总内存使用量

java.lang.OutOfMemoryError:Java堆空间哪些对象正在获取所有内存?

如何解决java.lang.OutOfMemoryError:Java堆空间而不增加堆内存大小

java.lang.OutOfMemoryError:尽管在Spark 2上有足够的内存,但Java堆空间

mvn测试java.lang.OutOfMemoryError:无法创建新的本机线程

Dag-scheduler-event-loop java.lang.OutOfMemoryError:无法创建新的本机线程

如何使用 Java Panama 在本机内存中存储对象数组

如何清除与Java相关的本机内存。我了解GC无法清除它

java.lang.OutOfMemoryError:直接缓冲内存,并且由于本地暂停而未将节点标记为down

java.lang.OutOfMemoryError当足够的内存左(94GB / 200GB XMX)

卡夫卡消费者抛出java.lang.OutOfMemoryError:直接缓冲内存