본문 바로가기
테크/기타

마지막 수업 #6 - 톰캣 서버 성능

by ahnne 2011. 11. 15.


성능 테스트 결과가 심히 복잡하였다.

서버 성능은 생각도 못하고 있었다.

환경 세팅 면으로 조절할 수 있는 부분을 볼 때, JSP 톰캣 서버의 쓰레드풀과 데이터베이스 풀이 아마 가장 큰 부분을 차지할 것이다.

1. 톰캣 쓰레드 풀

http://wiki.kldp.org/KoreanDoc/html/Tomcat-KLDP/Tomcat-KLDP-12.html
클라이언트의 요청 때마다, 쓰레드가 생성되어 처리되던 방식은 톰캣 3.2.1에서 Thread Pool 방식으로 바뀐 것 같다.
open상태의 쓰레드를 각 요청들이 사용하게 되며, 사용이 끝난 후에 완전히 사라지는 것이 아니라, 다른 요청을 기다린다.
이 상태를 idle 상태라고 한다.
server.xml의 <Connctor ~> 에서 설정할 수 있으며, 아무 값이 없을 경우 디폴트 값이 들어간다.

http://tomcat.apache.org/tomcat-6.0-doc/config/http.html
http://tomcat.apache.org/tomcat-6.0-doc/config/executor.html
위의 톰캣 공식 사이트에 따르면, 톰캣6.0에서의 maxThreads의 디폴트는 200, minSpareThreads의 디폴트는 25이다.
maxThreads는 사용가능한 전체 쓰레드이며,
minSpareThreads는 최초 풀 생성시의 idle 쓰레드를 말한다.
threadPriority
daemon
maxIdleTime : idle쓰레드가 살아있는시간(ms), 60000은 1분(디폴트)

http://lkhstory.blogspot.com/2010/08/tomcat.html
위에는 다음과 같은 값도 있다.
maxSpareThreads
enableLookups
acceptCount
connectionTimeout
disableUploadTimeout 



2. 톰캣 메모리 관련
http://hunn.tistory.com/48


3. 디비 풀

http://mimul.com/pebble/default/2007/08/24/1187964360000.html  
톰캣을 사용하는데 필요한 20가지 팁