SocketException между нашими балансировщиками нагрузки и Tomcat во время сборки мусора - PullRequest
0 голосов
/ 14 июня 2011

Мы заметили следующую проблему: всякий раз, когда наша JVM Tomcat выполняет полный GC, запросы на создание соединения между LB и Tomcat не выполняются. Это очень проблематично, поскольку все эти запросы никогда не получат возможность попасть на сервер приложений.

Эта проблема возникала, даже когда мы указывали один Tomcat на другого без каких-либо LB между ними.

Есть ли какое-либо определение, которое может быть сделано в JVM / Tomcat / Linux, которое установит HTTP-соединение, чтобы дождаться окончания GC, и прикладная JVM получит запрос.

Мы используем Java6, Tomcat7 и Linux Ubuntu OS.

Спасибо, Йоси

Ответы [ 2 ]

0 голосов
/ 14 июня 2011

Возможно, вам потребуется включить параллельную сборку мусора, как описано в http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html

-XX:+UseConcMarkSweepGC

Также попробуйте другие конфиги GC.

0 голосов
/ 14 июня 2011

Рассматривали ли вы использование параллельного сборщика мусора с использованием опции «XX: + UseConcMarkSweepGC»? По сути, это выполняет сборку мусора в фоновом режиме, так что не так много (если таковые имеются) полных сборщиков мусора "останови мир".

...