2016-03-17 3 views
2

У меня есть приложение, работающее на Websphere 8.5, я знаю, что размер памяти кучи этой конкретной JVM был увеличен в прошлом. В настоящее время память составляет 5,6 ГБ, но у нас есть проблемы с памятью, связанные с памятью с прямым буфером, и теперь мы также должны изменить ее размер. Я вижу, что эта проблема происходит из-за платы за мониторинг, поэтому я не вижу размер прямой памяти.Изменение размера прямой буферной памяти

Мои вопросы: есть ли правильный размер для прямой памяти в соответствии с размером памяти кучи Java? Допустим, по крайней мере, X MB для каждого X GB.

Каково значение по умолчанию параметра XX: MaxDirectMemorySize?

Что еще следует рассмотреть перед изменением этой опции?

ответ

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

Я думаю, вы должны рассмотреть вопрос, готовы ли вы позволить приложение, которое использует прямую память не получится, позволяя при этом другой работе продолжить на сервере. Установка размера прямой памяти приведет к тому, что приложение будет работать быстрее, поскольку значение по умолчанию не ограничено.

+0

Возможно, кто-то изменил эту опцию, прежде чем увеличивать общий объем памяти кучи. На сервере нет другой работы, потому что инструмент мониторинга, который я использую, может отслеживать любую асинхронную задачу, запущенную приложением. – dinhokz

+1

Возможно, это было изменено раньше, возможно, кто-то не понимал, каким будет эффект. В любом случае, если сервер не обрабатывает какую-либо работу после достижения лимита, я не вижу никакой пользы при настройке свойства вообще - могу также позволить ему по умолчанию неограниченно и позволить серверу работать до тех пор, пока он до тех пор, пока он не закончится, одновременно отлаживая вероятную утечку памяти параллельно. – kaczyns

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

она начинается небольшой и растет медленно.

Скорее всего, у вас есть утечка памяти, которая должна быть исследована.

Смежные вопросы