Недавно мы перевели большое приложение с высоким требованием к Tomcat 5.5 от Tomcat 4 и заметили некоторые особенности замедления, которые, как представляется, связаны с паузами JVM. Чтобы запустить наше приложение и поддерживать повышенную нагрузку с течением времени на Tomcat 4, многие нестандартные параметры JVM были настроены и настроены в соответствии с приведенным ниже, и я надеюсь, что кто-то с настройкой Tuncat JVM может прокомментировать все, что может быть вредным к установке Tomcat 5.5. Также обратите внимание, что некоторые из них могут переноситься из предыдущих версий Java (мы использовали Tomcat 4 на Java 1.6 с этими параметрами успешно в течение некоторого времени, но некоторые из них, возможно, были введены, чтобы помочь сборку мусора на Java 1.4, которая была основой наш Tomcat 4 устанавливается в течение длительного времени и может теперь принести больше вреда, чем пользы).
Некоторые примечания:
- Область памяти приложения около 1 ГБ, вероятно, чуть выше.
- Процессор не является проблемой - все машины обслуживание приложения (балансировка нагрузки) < 30% CPU
- Много места на физической памяти на машинах.
- -XX: MaxPermSize = 512m был единственным параметром, добавленным как часть обновления 5.5, и реагировал на проблему вне пространства памяти (что он решил).
- Работа на Java 1.6, ОС Solaris
-server -Xms1280m -Xmx1280m -XX: MaxPermSize = 512m -XX: ParallelGCThreads = 20 -XX: + UseConcMarkSweepGC -XX: + UseParNewGC -XX: SurvivorRatio = 8 -XX: TargetSurvivorRatio = 75 -XX: MaxTenuringThreshold = 0 - XX: + AggressiveOpts -XX: + PrintGCDetails -XX: + PrintGCTimeStamps -XX: -TraceClassUnloading -Dsun.io.useCanonCaches = false -Dsun.net.client.defaultConnectTimeout = 60000 -Dsun.net.client.defaultReadTimeout = 60000