Назад | Перейти на главную страницу

Tomcat 9.0.29 - возраст потоков HTTPS, достигнуто максимальное количество подключений, Tomcat не отвечает на 8443

За последние две недели у меня было два случая, когда один производственный сервер CentOS 7, на котором размещалась общедоступная веб-страница, переставал отвечать. В первый раз израсходованы все 300 доступных потоков «https-jsse-nio-8443» с максимальным возрастом около 45 минут, и все они находятся в статусе «S». На этот раз все 300 были израсходованы в статусе "S", самый старый из которых был около 16 минут. В обоих случаях перезапуск Tomcat освободил эти потоки, и веб-сайт снова стал реагировать. Соединения представляют собой методы post / get, которые не должны занимать много времени.
CPU / MEM / JVM находятся в нормальных рабочих пределах. Мне не очень повезло ни с поиском статей, ни с поиском средств правовой защиты. Насколько я могу судить, значения тайм-аута по умолчанию используются как в Tomcat, так и в приложениях, которые работают в нем. Надеюсь, кто-то поймет, почему такое поведение может происходить, почему Tomcat не убивает соединения? Даже в состоянии RST / ACK, не должен ли Tomcat прерывать соединение без ACK от клиента после тайм-аута по умолчанию?
Есть ли изящный способ сценария завершения потоков на случай, если Tomcat не сможет этого сделать по какой-либо причине? Мои исследования по уничтожению потоков приводят к системным потокам или потокам приложений, а не к потокам подключения Tomcat Connector, поэтому я не уверен, что это вообще возможно. Я также ищу способы завершить эти устаревшие сеансы через F5.

В настоящее время я открыт для любых предложений, которые позволят автоматизировать решение проблемы, чтобы система не простаивала, или для любого понимания того, где искать первопричину. Заранее благодарим за любые рекомендации, которые вы можете дать.

Спасибо Дэвид