Портал, работающий с Glassfish 2.1.1, Liferay 5.2 и SSL, получает слишком много заблокированных потоков
У меня есть портал, который работает через SSL на Glassfish и использует Liferay. В прошлый раз мы отправили электронное письмо, в котором примерно 200 человек одновременно получили доступ к опубликованной информации, которую застопорила наша Glassfish.
С сервера мы могли видеть, что системные ресурсы были в порядке. - Glassfish может использовать до 8 ГБ, но использует 5 ГБ. - Сервер имеет 4 ЦП, а общее использование составляет около 30%. - Glassfish настроен на 400 потоков HTTP.
Как только мы обнаружили, что наш сервер не отвечает пользователям, мы запустили профилировщик, чтобы понять, что происходит.
Обзор тем показывает слишком много заблокированных тем:
Из стека невозможно увидеть код, отличный от классов sun, grizzly, catalina:
Я хотел бы решить эту проблему, но сейчас я могу сказать, должен ли я работать над нашим кодом, мы должны заменить некоторые компоненты, такие как отключение SSL.
Любые мысли будут очень цениться.
Благодарю.
1 ответ
Дамп потока мог бы быть проще и менее навязчивым, чем профилировщик - это могло бы показать вам, где потоки заблокированы в реальной работающей системе.
Вам нужно выяснить, где произошла блокировка: в коде Liferay или в вашем собственном? Что у тебя было на страницах, как делается тема? Кроме того, обратите внимание, что вы используете действительно старую версию Liferay - в случае, если вы используете CE, она уже несколько лет не обслуживается (Enterprise Edition все еще поддерживается, но, как вы не упомянули об этом, шансы вы используете Community Edition (CE))
Кроме того, если вы вызываете ситуации, подобные описанной вами (отправка множества людей одновременно), вы можете захотеть загрузить тестирование вашей системы с искусственной нагрузкой, чтобы увидеть, как она себя ведет. Кроме того, вы можете захотеть, чтобы целевая страница была буферизована (это не означает, что 200 пользователей много, но для любого такого действия вы, вероятно, хотите знать, что ваша система может справиться с этим)
Пока вы не докажете обратное, я предполагаю, что на странице есть какой-то пользовательский компонент (либо портлет, либо тема), который вызывает узкое место и блокировку, которую вы обнаружили.