Количество виртуальных машин = 4, каждая с экземпляром Tomcat 8.5. * в кластере. Приложения = 5 военных приложений - 2 приложения пользовательского интерфейса и 3 веб-службы. Версия Java = java 1.8. * Configuratin = 2 LTMS и 2 веб-сервера Apache - 1 LTM поверх кластеров tomcat, который обрабатывает запросы веб-сервисов (200K + в день в будние дни). Еще один LTM поверх веб-сервера, который также находится поверх экземпляров Tomcat, который обрабатывает запросы приложений пользовательского интерфейса (более 10 тыс. Запросов в день). Параметры JVM: все по умолчанию с -Xms3072m -Xmx3072
Connector port="xxxx"
protocol="HTTP/1.1"
connectionTimeout="3000"
enableLookups="false"
redirectPort="yyyy"
maxThreads="80"
Connector port="yyyy"
protocol="org.apache.coyote.http11.Http11NioProtocol"
redirectPort="yyyy"
secure="true"
scheme="https"
clientAuth="false"
sslProtocol="TLS"
sslEnabledProtocols="SSLv2Hello,TLSv1,TLSv1.1,TLSv1.2"
SSLEnabled="true"
maxThreads="70"
maxKeepAliveRequests="100"
keepAliveTimeout="5000"
connectionTimeout="10000"
keystoreFile="....."
keyPass="..."
keystorePass="..."
keyAlias="....."
truststoreFile="..."
truststorePass="..."
ciphers="......."
Connector port="zzzz"
scheme="https"
protocol="AJP/1.3"
redirectPort="yyyy"
Проблема: нам приходится перерабатывать кота раз в неделю, и мы делаем это в выходные дни. ЕСЛИ не переработан, на 7-й или 8-й день безотказной работы незначительное время сборки мусора увеличивается от 5 до 30 секунд, если все еще не перезапущено, то всякий раз, когда происходит основной сборщик мусора, требуется по крайней мере минута, вызывая несколько неудачных транзакций. Проверяя статус виртуальной машины на всех 4 узлах, за это время мы видим, что происходит много подкачки. Использование памяти все время ниже 55%, а также загрузка процессора ниже 25%. Удивительно, но это происходит в выходные дни, когда нагрузки очень мало или вообще нет. Мы никогда не видели ошибок OOM, но пока что настройка кучи не является проблемой (я могу ошибаться). У нас также есть такая же конфигурация в среде моделирования производства, где нагрузка не такая большая, как на рабочих серверах, и в этой среде нет таких проблем с подкачкой / сборкой мусора. Любое понимание или любой совет по этому поводу были бы большим подспорьем. Пожалуйста, дайте мне знать, если потребуется дополнительная информация.
Подкачка происходит из-за неактивных страниц памяти, объектов, которые не используются какое-то время, но не подлежат сборке мусора, попробуйте уменьшить подкачку системы до 10%.
Также проверьте использование кэша кода перед переработкой tomcat, это может привести к замедлению со временем.
Попробуйте изменить GC на g1gc и проверьте, должно ли быть меньше пауз STW.