Является ли Sun JVM медленным, когда доступно больше памяти и используется через -Xmx? (Предположение: машина имеет достаточную физическую память, так что обмен виртуальной памятью не является проблемой.)Уменьшает ли JVM Sun, когда больше памяти выделяется через -Xmx?
Я спрашиваю, потому что мои производственные серверы получат обновление памяти. Я хотел бы поднять значение -Xmx на что-то decadent. Идея состоит в том, чтобы предотвратить сбои в исчерпании пространства кучи из-за моих собственных ошибок программирования, которые происходят время от времени. Редкие события, но их можно было избежать с помощью моего быстро развивающегося webapp, если бы у меня было непристойное значение -Xmx, например 2048 МБ или выше. Приложение сильно контролируется, поэтому будут наблюдаться необычные всплески в потреблении памяти JVM и исправления любых дефектов.
Возможные важные детали:
- Java-6 (runnign в 64-битном режиме)
- 4-ядерный Xeon
- RHEL4 64-битный
- Спринг, Hibernate
- High диск и сеть IO
EDIT: Я попытался избежать публикации конфигурации моей JVM, но, несомненно, это делает вопрос смехотворно открытым. Таким образом, здесь мы идем с соответствующими параметрами конфигурации:
-Xms256m
-Xmx1024m
-XX:+UseConcMarkSweepGC
-XX:+AlwaysActAsServerClassMachine
-XX:MaxGCPauseMillis=1000
-XX:MaxGCMinorPauseMillis=1000
-XX:+PrintGCTimeStamps
-XX:+HeapDumpOnOutOfMemoryError
Спасибо. Как вы увидите из моего отредактированного вопроса, я установил максимальную продолжительность продолжительности GC. Помня о способности настраивать кучу кучи и т. Д., Я еще не пошел туда под видом «преждевременной оптимизации». Но, может быть, это имеет смысл ... Я чувствую, что еще один вопрос! –