Как уровень отладки (0-99) в Tomcat server.xml влияет на скорость? - PullRequest
4 голосов
/ 19 сентября 2008

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

Ответы [ 2 ]

2 голосов
/ 19 сентября 2008

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

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

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

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

2 голосов
/ 19 сентября 2008

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

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

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

...