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

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
0
5 695
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

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

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

Честно говоря, нет. вам нужно только isDebugEnabled () проверять, являются ли данные журнала очень тяжелыми или сложными для построения. Debug () или warn () регистратора или любые другие методы обычно эффективно реализуются, чтобы проверить, подходят ли они, а затем немедленно выйти, без особых накладных расходов.

Aleksandar Dimitrov 22.09.2008 15:21

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

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

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

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

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