Как уровень отладки (0–99) в файле Tomcat server.xml влияет на скорость?

StackOverflow https://stackoverflow.com/questions/102058

  •  01-07-2019
  •  | 
  •  

Вопрос

Файл server.xml, который управляет запуском контейнера сервлетов Apache Tomcat, содержит атрибут отладки почти для каждого основного компонента.Атрибут отладки является более или менее подробным в зависимости от заданного вами числа: ноль — наименьшее значение, а 99 — наибольшая подробность.Как уровень отладки влияет на скорость Tomcat при обслуживании большого количества пользователей?Я предполагаю, что ноль — это быстро, а 99 — относительно медленнее, но так ли это?Если ошибок не возникает, имеет ли это значение?

Это было полезно?

Решение

Обширное ведение журнала занимает значительное количество времени.Вот почему так важно поставить

if (log.isDebugEnabled())
  log.debug(bla_bla_bla);

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

Другие советы

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

Вот почему вывод журнала может быть чрезвычайно подробным.И я действительно иметь в виду что.Я помню, как однажды установил уровень журнала Catalina на TRACE, и в итоге получил файл журнала размером в несколько мегабайт.Что было до сервер вообще не получил никаких обращений.Это была огромная производительность.Счет за несколько секунд.

Если вам не требуется ведение журнала самого Tomcat, не активируйте его ни на одном из его компонентов.Обычно вам захочется поработать с уровнем журнала Tomcat только в том случае, если вы подозреваете ошибку либо в вашей настройке, либо в самом Tomcat.

Для ваших собственных приложений измерьте стоимость журналирования с помощью профилировщика или просто стресс-тестирования.Какими бы ни были ваши результаты, я бы рекомендовал не запускать приложение с высоким уровнем журнала в производственной среде.Мой текущий проект выгружает около мегабайта за запрос при настройке TRACE всего три-четыре строки на INFO и ничего на WARNING (если все идет хорошо :-).Рекомендую не более самого необходимого логирования.На самом деле ваше приложение должно просто сообщать о запуске, завершении работы и сбое, и — самое большее — одну строку на каждый запрос.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top