문제

Apache Tomcat의 서블릿 컨테이너 시작을 제어하는 ​​server.xml에는 거의 모든 주요 구성 요소에 대한 디버그 속성이 포함되어 있습니다.디버그 속성은 사용자가 제공하는 숫자에 따라 다소 장황합니다. 0은 가장 작고 99는 가장 장황합니다.많은 수의 사용자에게 서비스를 제공할 때 디버그 수준은 Tomcat의 속도에 어떤 영향을 줍니까?나는 0이 빠르며 99가 상대적으로 느리다고 가정하지만 이것이 사실입니다.오류가 발생하지 않으면 문제가 되나요?

도움이 되었습니까?

해결책

광범위한 로깅에는 상당한 시간이 걸립니다.그렇기 때문에 넣는 것이 매우 중요합니다.

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

따라서 프로덕션 서버를 장황하게 설정하면 성능에 심각한 영향을 미칠 수 있다고 말하고 싶습니다.나는 그것이 많은 수의 사용자에게 서비스를 제공해야 한다고 말했기 때문에 당신이 말하는 프로덕션 서버라고 가정합니다.

다른 팁

로깅은 오류를 제공할 뿐만 아니라 진행 상황을 추적하는 역할도 합니다.어떤 경우에는 디버거 내에서 코드를 실행할 수 없으며 로깅이 유일한 옵션입니다.

이것이 바로 로깅 출력이 매우 장황해질 수 있는 이유입니다.그리고 나는 정말 평균 저것.Catalina의 로그 수준을 TRACE로 한 번 설정한 후 몇 메가바이트의 로그 파일이 생성되었던 것을 기억합니다.그건 ~ 전에 서버가 조회수를 전혀 수신하지 못했습니다.그것은 엄청난 성능 돼지였습니다.몇 초 안에 셀 수 있습니다.

Tomcat 자체에 대한 로깅이 필요하지 않은 경우 해당 구성 요소에서 활성화하지 마세요.일반적으로 설정이나 Tomcat 자체에 버그가 있다고 의심되는 경우에만 Tomcat의 로그 수준을 수정하고 싶을 것입니다.

자신의 애플리케이션의 경우 프로파일러를 사용하거나 일부 스트레스 테스트를 사용하여 로깅 비용을 측정하세요.결과가 무엇이든 프로덕션 환경에서는 높은 로그 수준 설정으로 애플리케이션을 실행하지 않는 것이 좋습니다.내 현재 프로젝트는 초당 약 1MB를 덤프합니다. 요구 TRACE 설정에서는 INFO에 약 3~4줄만 있고 WARNING에는 아무것도 없습니다(모든 것이 잘 진행된다면 :-).가장 필요한 로깅 이상을 권장하지 않습니다.앱은 실제로 시작, 종료 및 실패를 보고해야 하며 요청당 최대 한 줄만 보고해야 합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top