Какой максимальный размер кучи Java можно безопасно использовать на 64-битной платформе Windows? - PullRequest
3 голосов
/ 04 декабря 2010

Мы используем 64-битный сервер Windows 2003 для запуска приложения WebSphere / J2EE (JVM также 64-битный). Машина имеет 16 ГБ физической памяти. К сожалению, наше приложение требует большого объема памяти, и нам все еще потребуется некоторое время, чтобы добавить дополнительную память.

Я понимаю, что сама операционная система требует определенного объема памяти. При этом, какой безопасный (без подкачки?) Максимальный размер кучи мы можем использовать, предполагая, что это единственное приложение, работающее в системе?

Ответы [ 3 ]

2 голосов
/ 04 декабря 2010

Я думаю, что ответ будет зависеть от многих факторов, многие из которых трудно предсказать.

ИМО, самый практичный способ определения безопасного максимального размера кучи - методом проб и ошибок. Я бы начал с максимального размера кучи около 15 Гб, посмотрел на системную память / статистику подкачки и настроил бы вверх или вниз.

0 голосов
/ 04 декабря 2010

Если у вас есть два банка памяти, например, если у вас два ЦП, вы можете обнаружить, что производительность вашего приложения значительно ниже, если вы используете более половины своей памяти.Вы получите лучшую производительность из своей памяти, если вы используете около 3/4 размера банка памяти.

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

0 голосов
/ 04 декабря 2010

Лучшая идея - поэкспериментировать ... Проверьте первый ответ здесь ... это поможет вам ...

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

...