Какой у вас опыт добавления SSL в Tomcat 6? - PullRequest
1 голос
/ 27 апреля 2009

В выходные мы добавили защиту SSL к экземпляру Tomcat 6, который работал без ошибок некоторое время. Сегодня утром, после увеличения количества сеансов на компьютере, Tomcat начал выдавать пользователям 500 ошибок. Я проверил логи и нашел экземпляр OutOfMemory, за которым последовали десятки ошибок, связанных с попыткой Google Guice создавать новые темы. Я могу только представить, что с добавлением SSL больше памяти используется большим количеством создаваемых потоков или какой-то подобной ситуацией. Я не совсем уверен, где или как используются дополнительные ресурсы.

Я надеялся, что те, кто имеет опыт использования SSL на Tomcat, могут указать мне в каком-то направлении, где искать подсказки. На данный момент я не уверен, где проблема может быть. Вот некоторые статистические данные о нашей настройке и конфигурации:

-XX: ThreadStackSize = 512
Начальный пул памяти: 128 МБ
Максимальный пул памяти: 1024 МБ
Размер стека темы: 512 КБ

Я корректировал их различными способами, пытаясь хотя бы найти путь к успеху. Итак, примерно через 5 минут после перезапуска сервера производительность начинает падать. Любое направление будет с благодарностью.

Ответы [ 3 ]

1 голос
/ 28 апреля 2009

Вот такая возможность, хотя и немного отдаленная: браузеры кешируют контент https гораздо менее агрессивно, чем контент http. Итак, если ваши конечные пользователи теперь получают доступ к сервису через HTTPS, но ранее через HTTP, вы будете обрабатывать намного больше запросов (хотя и с таким же количеством сеансов).

В противном случае я согласился бы с предложением Мэтта Б. выше; профиль, чтобы узнать, где используется куча. Добавьте -verbose:gc -Xloggc:/path/to/where/you/want/gc.log к параметрам запуска JVM и используйте полученный gc.log, чтобы проверить, можете ли вы сопоставить скачки размера кучи с конкретными последовательностями запросов. Используйте jmap -dump:format=b,file=/path/to/dump {tomcat PID} для создания дампа кучи. Если вы возьмете один сразу после запуска tomcat и один, когда он начнет умирать, вы можете использовать jhat, чтобы показать различия между ними.

0 голосов
/ 04 мая 2009

Это обсуждение gc в объектах SSLSessionImpl может быть актуальным. , , .

https://forums.oracle.com/forums/thread.jspa?threadID=1532009

0 голосов
/ 27 апреля 2009

Добавление SSL-сертификата / https в Tomcat6 не должно вызывать этих проблем.

Откуда исходит ошибка OutOfMemoryError? Вы можете прикрепить профилировщик, чтобы посмотреть, что занимает так много памяти?

Я думаю, что здесь вы видите два несвязанных изменения:

  1. Вы включили SSL / https
  2. Ваш номер сеанса увеличился, что обнажило проблемы с памятью.
...