로컬 Tomcat 서버 실행속도 개선
Eclipse에 Tomcat 8.5를 연동한 후에 서버를 실행할 때마다 속이 터지는 줄 알았다.
한 번 실행하면 근 10초를 넘게 기다려야 하니 습관적으로 코드를 수정하면 계속해서 10초씩 날려먹는게 너무나 아까웠는데..
인터넷 서핑하며 방법을 찾아보고 적용하니 성공적!
평소 실행속도 16~18초 걸리던 것이 이제 1초 이하로 나온다.
수정한 항목은 총 3개이다.
먼저 Tomcat 서버 폴더\apache-tomcat-(버전)\conf로 진입
1. catalina.properties 파일 수정
파일을 열고 보면
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=.............// 굉장히 긴 코드가 있다.
아래처럼 모든 jar파일을 Skip하도록 바꿔주자.
tomcat.util.scan.StandardJarScanFilter.jarsToSkip= *.jar
* 18/8/1 추가 : 당시에는 jar가 뭔지도 모르고 속도 개선만을 위해 저렇게 모든 jar Scanning을 Skip하도록 변경했는데 사용하는 jar가 util에 있다면 주의해야 할 것 같다.
하지만 가끔씩 util에서 불러오는 라이브러리를 소스코드에서 import 하면 정상작동한다.
2. Context.xml 파일 수정
파일 내 Context 태그 안에 <JarScanner scanClassPath="false"/>를 아래와 같이 추가한다.
<Context>
<JarScanner scanClassPath="false"/>
<!-- Default set of monitored resources. If one of these changes, the -->
<!-- web application will be reloaded. -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
</Context>
* 18/8/1 추가 : 1번과 마찬가지로 ClassPath에 있는 jar Scanning을 Skip하는 것 같은데 이렇게 해도 무방한지는 Test 대상이다. 만약 ClassPath에 수동으로 Import한 라이브러리가 있으면 동작하는지 하지 않는지 확인 필요하다.
3. logging.properties 파일 수정
중간에 org.apache.jasper.servlet.TldScanner.level = FINE 을 추가한다.
이 부분 효과가 얼마나 있는진 모르지만 어쨌든 better to do than nothing.
* 18/8/1 추가 : 단순히 로깅 레벨을 변경하는 것 같은데, 실제 속도향상에 얼마나 기여하는지는 잘 모르겠다. 혹시라도 테스트해보신 분이 계시면 알려주세요~
한 번 실행하면 근 10초를 넘게 기다려야 하니 습관적으로 코드를 수정하면 계속해서 10초씩 날려먹는게 너무나 아까웠는데..
인터넷 서핑하며 방법을 찾아보고 적용하니 성공적!
평소 실행속도 16~18초 걸리던 것이 이제 1초 이하로 나온다.
수정한 항목은 총 3개이다.
먼저 Tomcat 서버 폴더\apache-tomcat-(버전)\conf로 진입
1. catalina.properties 파일 수정
파일을 열고 보면
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=.............// 굉장히 긴 코드가 있다.
아래처럼 모든 jar파일을 Skip하도록 바꿔주자.
tomcat.util.scan.StandardJarScanFilter.jarsToSkip= *.jar
* 18/8/1 추가 : 당시에는 jar가 뭔지도 모르고 속도 개선만을 위해 저렇게 모든 jar Scanning을 Skip하도록 변경했는데 사용하는 jar가 util에 있다면 주의해야 할 것 같다.
하지만 가끔씩 util에서 불러오는 라이브러리를 소스코드에서 import 하면 정상작동한다.
2. Context.xml 파일 수정
파일 내 Context 태그 안에 <JarScanner scanClassPath="false"/>를 아래와 같이 추가한다.
<Context>
<JarScanner scanClassPath="false"/>
<!-- Default set of monitored resources. If one of these changes, the -->
<!-- web application will be reloaded. -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
</Context>
* 18/8/1 추가 : 1번과 마찬가지로 ClassPath에 있는 jar Scanning을 Skip하는 것 같은데 이렇게 해도 무방한지는 Test 대상이다. 만약 ClassPath에 수동으로 Import한 라이브러리가 있으면 동작하는지 하지 않는지 확인 필요하다.
3. logging.properties 파일 수정
중간에 org.apache.jasper.servlet.TldScanner.level = FINE 을 추가한다.
이 부분 효과가 얼마나 있는진 모르지만 어쨌든 better to do than nothing.
* 18/8/1 추가 : 단순히 로깅 레벨을 변경하는 것 같은데, 실제 속도향상에 얼마나 기여하는지는 잘 모르겠다. 혹시라도 테스트해보신 분이 계시면 알려주세요~
감사합니다
답글삭제감사합니다.
답글삭제