개발자의 길

tomcat 성능 향상 방법 - 튜닝 본문

9. TOMCAT

tomcat 성능 향상 방법 - 튜닝

자르르 2010. 2. 17. 09:59


*. JVM Tuning 튜닝

 1. 메모리 가용성을 확보한 다음 힙 사이즈를 늘려라
   - -server -Xms768M -Xmx768M
 2. garbage collector를 튜닝하라(GC 로깅 분석 후)
   - -XX: +UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:-TraceClassUnloading
 3. 원격지에서 모니터링을 주기적으로 하라(물론 상용에선 빼라)
   - -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

*. Tomcat 튜닝

 1.  중복 로그 접점을 제거하고 하나로 통일하라(logging.properties)
   - .handlers = 1catalina.org.apache.juli.FileHandler,java.util.logging.ConsoleHandler 부분을 .handler = 1catalina.org.apache.juli.FileHandler로 변경
 2. 로그 Overflow 예방하기 위해 아래 설정을 logging.properties에 추가하라
   - 1catalina.java.util.logging.FileHandler.pattern =${catalina.base}/logs/catalina.%g.log
   - 1catalina.java.util.logging.FileHandler.limit = 20000000
   - 1catalina.java.util.logging.FileHandler.count = 5
 3.  Synchronized Logging은 Disk I/O, 어플의 bottleneck의 한 요소이니 Asynchronous Logging으로해도 무방하다.
 4. maxKeepAliveRequest수가 클 경우 1000이 넘을 경우(TCP커넥션당 HTTP request가 많을 경우에 해당함)
   - keep alive를 disable한다.
 5. DNS lookups을 줄여라(server.xml)
  - enableLookups=false
 6. maxThreads 늘리고, connectionTimeout을 줄여라
  - maxThreads=512, connectionTimeout=5000
 7. 불필요한 부하 발생을 제거하라
  - reloadable을 false, debug는 0, acceptCount를 무리하게 크게 하지 않음
 8. 네트워크 트래픽을 줄여라
  - compression를 on하고 compressableMimeTypes를 지정(text/html,text/xml,text/javascript,text/css,text/plain)

*. AJP Tuning

 1. 톰켓 서버를 두대이상 운영할 경우 Load Balance를 하라
 2. 커넥션 설정(Socket Timeout, Connection Pool Size, Connection Pool Timeout)을 지정하라

[관련 포스트]
톰켓을 사용하는데 필요한 20가지 Tips



이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공유하기 링크
Comments