【问题标题】:What does the 'native buffer' mean in JVM?JVM中的“本机缓冲区”是什么意思?
【发布时间】:2012-05-14 14:33:18
【问题描述】:

我从 WebSphere Application Server 的 SystemOut.log 文件中得到以下错误:

[5/11/12 8:13:46:291 GMT+08:00] 000063c0 WebApp        E   [Servlet Error]-[ICMResourceManager]: java.lang.OutOfMemoryError: unable to allocate 79683 bytes for native buffer
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:290)
at com.ibm.mm.icmrm.storage.RMOutputStream.write(RMOutputStream.java:65)
at com.ibm.mm.icmrm.storage.RMDataTransfer.copyData(RMDataTransfer.java:150)
at com.ibm.mm.icmrm.storage.filesystem.FileSystem.store(FileSystem.java:104)

这似乎是原生 OOM 问题。我这里有个问题,这里的'native buffer'和'direct byte buffer'一样吗?我可以尝试通过重置属性 XX:MaxDirectMemorySize 来扩大“本机缓冲区”的大小吗?顺便说一句,它的默认值是什么? 或者我可以设置这个属性 -Dcom.ibm.nio.DirectByteBuffer.AggressiveMemoryManagement=true 来使本机内存空间动态化吗?

WAS平台信息:

WebSphere Platform 6.1 [ND 6.1.0.27 cf270937.16]  running with process name cmrmCell01\cmrmNode01\icmrm1 and process id 1802306
Detailed IFix information: Please use the versionInfo command to view this information
Host Operating System is AIX, version 5.3
Java version = 1.5.0, Java Compiler = j9jit23, Java VM name = IBM J9 VM

【问题讨论】:

    标签: jvm websphere


    【解决方案1】:

    我知道这不是一个很好的答案,但是看看这篇 Understanding how the JVM uses native memory on AIX 的文章是否有什么有用的。

    【讨论】:

    • 有用的链接;但是,如果您从链接中引用有助于回答问题的参考资料,将会更有帮助。见how to answer
    • @DanCruz 是的,我知道这一点。但由于我目前无法做到这一点,特别是因为没有其他答案,我认为请求者宁愿拥有没有上下文的链接,也不愿根本没有。
    • 这篇文章不错,但我仍然无法从中得到答案。真的很糟糕!
    猜你喜欢
    • 2010-10-13
    • 1970-01-01
    • 2013-02-09
    • 2019-01-30
    • 2020-07-21
    • 2021-11-19
    • 2014-06-11
    • 1970-01-01
    • 2014-03-27
    相关资源
    最近更新 更多