사용자 도구

사이트 도구


java:tomcat:performance

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
java:tomcat:performance [2015/02/08 13:31]
kwon37xi 만듦
java:tomcat:performance [2019/05/24 23:42] (현재)
kwon37xi [Fastest Servlets in the West]
줄 1: 줄 1:
 ====== Tomcat Performance Tuning ====== ====== Tomcat Performance Tuning ======
 +  * [[http://www.genericarticles.com/mediawiki/index.php?title=How_to_optimize_tomcat_performance_in_production|How to optimize tomcat performance in production - Wiki]]
  
 ===== Fastest Servlets in the West ===== ===== Fastest Servlets in the West =====
   * [[https://www.youtube.com/watch?v=uMtYcWB7Z4s|Fastest Servlets in the West?]]   * [[https://www.youtube.com/watch?v=uMtYcWB7Z4s|Fastest Servlets in the West?]]
   * [[http://www.slideshare.net/SpringCentral/williams-fastest-servlets-in-the-west|Fastest Servlets in the West? - Slide]]   * [[http://www.slideshare.net/SpringCentral/williams-fastest-servlets-in-the-west|Fastest Servlets in the West? - Slide]]
 +  * [[https://www.youtube.com/watch?v=LBSWixIwMmU|(4) Apache Tomcat Connector Selection]]
   * 결론   * 결론
-    * APR 사용시 성능이 매우 아진다.+    * Tomcat Connector 는 그냥 NIO 를 사용하는게 낫다. SSL 사용시에는 NIO + OpenSSL. 
 +    * 과거에는 SSL 사용시에 APR이 가장 성능이 좋았으나, SSL을 사용하지 않을 때는 NIO,NIO2 와 성능처이가 거의 없다.
     * JVM GC 튜닝     * JVM GC 튜닝
       * JVM 옵션 튜닝은 한번에 하나씩만 변경하면서 하라.       * JVM 옵션 튜닝은 한번에 하나씩만 변경하면서 하라.
     * Profiling을 하라.     * Profiling을 하라.
 +
 +===== WebappClassLoader lock =====
 +  * ''WebappClassLoader''에서 ''loadClass''를 할 때 전역 Lock이 걸리게 되어 클래스로더를 사용하는 코드들이 전부 lock이 걸리게 된다.
 +  * Tomcat 8/7 최신 버전에서는 ''ParallelWebappClassLaoder''로 변경하여 해결 가능하다.
 +  * ''context.xml의 Loader 항목''<code xml>
 + <Loader loaderClass="org.apache.catalina.loader.ParallelWebappClassLoader" />
 +</code>
 +  * [[http://tomcat.apache.org/tomcat-8.0-doc/config/loader.html|Tomcat 8 The Loader Component]]
 +  * [[https://bz.apache.org/bugzilla/show_bug.cgi?id=57681|Tomcat 7 ParallelWebappClassLoader backport]]
 +
 +===== 구동(boot) 시간 줄이기 =====
 +==== 불필요한 TLD 스캔 시간 줄이기 ====
 +  * [[http://javacan.tistory.com/475|Jar 파일 스캔 제외로 톰캣 시작 시간 단축]]
 +  * ''logging.properties''에서 scan한 파일 로그 확인<code>
 +org.apache.jasper.servlet.TldScanner.level = FINE
 +</code>
 +  * ''catalina.properties''에서 특정 jar 파일들을 TLD 파일을 찾기위해 스캔하는 것을 방지해준다.<code>
 +# scan 에서 제외
 +tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\
 +bootstrap.jar,commons-daemon.jar,tomcat-juli.jar,\
 +xom-*.jar,\
 +rt.jar,\
 +spring-*.RELEASE.jar
 +
 +# scan 대상
 +tomcat.util.scan.StandardJarScanFilter.jarsToScan=\
 +log4j-web*.jar,log4j-taglib*.jar,log4javascript*.jar,slf4j-taglib*.jar,\
 +spring-webmvc-*.jar
 +</code>
  
java/tomcat/performance.1423369914.txt.gz · 마지막으로 수정됨: 2015/02/08 13:31 저자 kwon37xi