2

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

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

XX:MaxDirectMemorySize 选项的默认值是多少?

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

4

2 回答 2

4

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

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

于 2016-03-17T20:29:21.593 回答
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

它从小开始,慢慢成长。

您更有可能存在应该调查的内存泄漏。

于 2016-03-17T20:23:55.157 回答