Назад | Перейти на главную страницу

Советы / ресурсы по настройке производительности jvm?

Мой опыт работы с jvm в основном заключался в поддержке контейнера tomcat для нескольких приложений. Я всегда не уверен, какое соотношение -Xms -Xmx -Xmn -XX: PermSize -XX: MaxPermSize, я инициализирую свой экземпляр tomcat.

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

Заранее спасибо.

Обновить:

В данном случае это vps slicehost:

64-битный Linux 1024 Ram и 1.6 jdk Sun (хотя я могу это изменить)

Tomcat находится за Apache через mod_jk. Я также запускаю mysql и почтовый сервер (оба мало используются).

На tomcat я просто запускаю одно приложение jruby и два приложения railo (cfml) и позже добавлю еще.

Я ищу больше советов / указателей, чем точных спецификаций настроек. так как почти все может быть изменено.

Вам нужно предоставить гораздо больше информации:

1) Сколько оперативной памяти доступно на коробке? Работает только Tomcat?
2) Это 32-битная или 64-битная виртуальная машина?
3) Сколько процессоров / ядер в этой коробке?
4) Какая основная версия jdk у вас установлена? 1,4, 5 или 6?

Ответы на эти вопросы позволят вам установить границы кучи.

Как только вы справитесь с этим, возможно, потребуется ответить на вопросы о приложении - сколько объектов являются долгоживущими (например, кеш), а сколько недолговечными (менее 5 секунд до того, как они выйдут из области видимости).

Эти вопросы расскажут нам, какой процент кучи можно использовать для Eden, а какой процент нужно использовать для старого поколения.

Обновить

Что ж, если ваш Tomcat работает долго, то добавление флага «-server», вероятно, будет полезным. Учитывая ваши ограничения, если вы не знаете свои приложения как внутри, так и снаружи, вероятно, лучше оставить это на усмотрение эргономики, чтобы определить наилучшие соотношения и сборщик. Настройка Java - это больше искусство, чем наука. Начало здесь: http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html, а затем поищите такие инструменты, как GCHisto и VisualGC, которые помогут вам визуализировать, что происходит внутри виртуальной машины.