Tomcat повторно открывает jar-файлы по каждому запросу - PullRequest
0 голосов
/ 04 августа 2020

Недавно я столкнулся с проблемой, когда сервер получал жалобу на открытие слишком большого количества файлов. (В настоящее время мы используем tomcat 9.0.19). И, конечно, я могу увеличить ulimit, но, исследуя проблему, я обнаружил, что каждый запрос вызывает повторное открытие и закрытие всех jar-файлов в app / WEB-INF / lib. Это явно чрезмерно и очень расточительно. Я отслеживал это как на Linux, так и на windows, и в обоих случаях это происходит. Поскольку на сервере есть несколько веб-приложений, я не хочу делать зло, перемещая все к общему, что предотвращает возникновение проблемы, но мне нужен полупостоянный загрузчик классов, который будет использоваться для всех запросов к отдельному человеку. приложения, а не открывать их повторно по каждому запросу. В рассматриваемом приложении более 160 банок, так что стоимость явно смехотворна. В то же время, причины модульности для разных банок никуда не денутся. Сделав это раньше, у меня нет желания писать собственный загрузчик классов, но я не вижу способа изменить текущее неправильное поведение.

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

Любые предложения будут оценены. Я вижу, что у многих людей возникают аналогичные проблемы, и на Linux время открытия jar-файлов заметно увеличилось, так что я часто вижу 37k открытых файлов, когда есть причина для более чем 200.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...