我有一个在Websphere 8.5上运行的应用程序,我知道这个特定JVM的堆内存大小在过去有所增加。 提交的内存现在是5.6GB,但是我们遇到了与直接缓冲内存相关的内存问题,现在我们也需要调整它的大小。我可以通过监控收费来看到这个问题,所以我看不到直接内存的大小。
我的问题是:根据Java堆内存大小,是否有正确的直接内存大小?可以说,每个X GB至少X MB。
XX:MaxDirectMemorySize选项的默认值是什么?
在更改此选项之前,我还应该考虑什么?
答案 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文档
它从小开始慢慢增长。更有可能是你应该调查内存泄漏。