调整直接缓冲内存的大小

时间:2016-03-17 20:11:25

标签: java out-of-memory websphere shared-memory ibm-jvm

我有一个在Websphere 8.5上运行的应用程序,我知道这个特定JVM的堆内存大小在过去有所增加。 提交的内存现在是5.6GB,但是我们遇到了与直接缓冲内存相关的内存问题,现在我们也需要调整它的大小。我可以通过监控收费来看到这个问题,所以我看不到直接内存的大小。

我的问题是:根据Java堆内存大小,是否有正确的直接内存大小?可以说,每个X GB至少X MB。

XX:MaxDirectMemorySize选项的默认值是什么?

在更改此选项之前,我还应该考虑什么?

2 个答案:

答案 0 :(得分:4)

doc(对于IBM Java 7)说它默认是无界限的: https://www.ibm.com/support/knowledgecenter/SSYKE2_7.0.0/com.ibm.java.win.70.doc/diag/appendixes/cmdline/xxmaxdirectmemorysize.html

我认为您应该考虑是否愿意让使用直接内存的应用程序失败,同时允许其他工作在服务器中继续。设置直接内存大小只会导致应用程序更快失败,因为默认值是无限制的。

答案 1 :(得分:2)

根据Oracle文档

http://docs.oracle.com/cd/E15289_01/doc.40/e15062/optionxx.htm#BABGCFFB

默认情况下没有限制

根据IBM文档

https://www.ibm.com/support/knowledgecenter/SSYKE2_7.0.0/com.ibm.java.win.70.doc/diag/appendixes/cmdline/xxmaxdirectmemorysize.html

它从小开始慢慢增长。

更有可能是你应该调查内存泄漏。