RadarURL
Skip to content
웹서버,WAS
2018.07.26 23:40

Tomcat7 Tuning

조회 수 645 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

1. 메모리 관련문제

2. JVM 파라미터 최적화

3. OS 수준의 최적화를 통한 성능 개선

 

01.png

 

[톰캣에 영향을 주는 요소들]

 

[톰캣 컴포넌트 튜닝]

스레드 튜닝, 포트 커스터마이즈, JVM 튜닝 등 서버 성능에 영향을 미치는 다양한 설정 가능

 

1. Connector

- JAVA HTTP Connector : HTTP 프로토콜을 기반. HTTP/1.1 프로토콜만 지원

 

- JAVA AJP Connector : AJP(아파치 JServ프로토콜)와 AJP를 통한 웹 서버 통신을 기반으로 하며 자바 서블릿 컨테이너를 인터넷에 노출하고 싶지 않을 때 AJP Connector를 사용해 톰캣 7에서 SSL Termination을 처리하지 않는 상황이라면 AJP Connector를 매우 유용하게 활용할 수 있다 - 구현체로는 mod_jk, mod_proxy등이 있다 (http://tomcat.apache.org/tomcat-7.0-doc/config/ajp.html)

 

※ SSL Termination은 SSL 처리를 다른 기기에 맞겨서 동시에 보다 많은 요청, 세션, 쿠키등을 처리 가능하게 함

 

- APR(HTTP/AJP) Connector : 확장성, 성능, 다른 웹 서버와의 협력 작업 상황에서 능력을 발휘. Open SSL,공유 메모리, 유닉스 소켓 등과 같은 부가 기능 제공 (http://tomcat.apache.org/tomcat-7.0-doc/config/apr.html)

 

2. 스레드 최적화

- Thread pool : 톰캣이 수락할 수 있는 연결 수 또는 서버가 수락할 수 있는 요청수로 보면 된다. Shared Pool, Dedicated Pool 2가지고 있고 serverlxml을 이용해 풀을 설정할 수 있다.

전용 thread pool ex>

<Connector port="8023" maxHttpHeaderSize="8192"

                 maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

                 enableLookups="false" redirectPort="8443" acceptCount="100"

                 connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />

     <!-- Define an AJP 1.3 Connector on port 8009 -->

    <Connector port="9023"

               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" URIEncoding="UTF-8" maxKeepAliveRequests="-1" maxProcessors="500" maxThreads="250"/>

 

- maxThreads : 서버가 수락할 수 이쓴 최대 요청 수로 default는 150이며 서버의 CPU 사용량이 높으면 thread값을 줄이고 낮으면 높여준다. (DB연결, 네트워크 대역폭 등 다른 resource도 같이 고려해야함)

 

- maxKeepAlive : 종료되지 않고 동시에 대기할 수 있는 TCP 연결 수를 정의하며 default = 1 (비활성화)

    when = 1 

             톰캣에서 SSL Termination 수행하지 않음 / 부하 균형 기법 사용 / 동시에 더 많은 사용자를 수용

     when > 1 

             톰캣에서 SSL Termination 수행 / 적은 동시 사용자를 수용

 

3. JVM 튜닝

톰캣 Default Hep memory = 256MB

 

※ JMAP (메모리 맵) - 공유된 자바 가상 메모리 전체 못브을 출력하는 유틸로 ./jmap -heap <process id> 로 사용

 

 

옵션

설명

 -dump

자바 힙을 hprof 바이너리 형식으로 덤프 

 -finalizer info

소멸(finalization)을 기다리는 오브젝트 정보 출력

 -heap

heap 요약 정보 출력

 -histo

heap histogram 출력

 -permstat

 자바 힙의 영구 세대(Permanent generation)를 클래스 로더 통계로 출력

 

 

 

02.png

 

 

4. Garbage Collection

- GC 호출되면 메모리에 있는 모든 비활성 오브젝트를 수집해서 메모리를 정리

   

5. JVM 옵션

Java Hotspot은 VM 옵션을 크게 표준 옵션 / 비표준 옵션으로 구분

- 표준 옵션 : 기본 설정

- 비표준 옵션 : -x, -xx. 행동 옵션(VM의 기본 행동을 바꾸는 옵션) / 성능 튜닝 옵션(VM 선응을 최적화하는 옵션) / 디버깅 옵션(로그 추적 기능 활성화 관련 옵션)

 

 

 

옵션

파라미터

설명

행동옵션 

-XX:+ScavengeBeforeFullGC

전체 GC에 앞서 젊은 세대 GC를 수행 

 

--XX:-UseParallelGC

병렬 가비지 콜렉션으로 빠른 GC(Scavenge)수행 

성능옵션

-XX:MaxNewSize=size

new 영역의 최대 크기(byte단위)

 

 -XX:MaxPermSize=64m

Perm 영역 크기(-Xmx값 초과시)

 

-Xms 

톰캣 시작시 최소 힙 메모리

 

-Xmx

인스턴스에 할당할 최대 메모리

 

-Xss

힙 스택 크기

 디버깅

-XX:-CITime

 JIT 컴파일러가 소비한 시간 출력

 

-XX:ErrorFile=./hs_err_pid<pid>.log

 발생한 에러를 기록할 파일 지정

 

-XX:HeapDumpPath=

./java_pid<pid>.hprof

 Heap Dump용 디렉토리 경로나 파일명

 

-XX:-HeapDumpOnOutOfMemoryError

 java.lang.OutOfMemoryError가 발생하면 힙을 파일로 덤프

 

-XX:OnError="<cmd args>;<cmd args>"

치명적 에러 발생시 사용자가 정의한 명령 실행

 

-XX:OnOutOfMemoryError="<cmd args>;"

 처음으로 OOM이 발생하면 사용자가 정의한 명령 실행

 

-XX:-PrintClassHistogram

 Ctrl-Break 를 눌렀을 때 클래스 인스턴스의 히스토그램 출력

http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.thml

 

 

- GC 로그에 표시된 파라미터

[%T %B->%A(%C), %D]

 

%T : 빠른 GC단계에서는 'GC'로 전체 GC를 수행할 때는 'Full GC:'로 표시하고 빠른 GC는 new 영역에서 살아있는 오브젝트만 수집하고 Full GC수행시 자바 힙의 모든 공간에서 오브젝트를 수집한다

 

%B : GC 실행하기 전의 자바 힙 크기(KB단위)

 

%A : GC 실행한 후의 자바 힙 크기(KB단위)

 

%C : 전체 자바 힙의 현재 용량(KB단위)

 

%D : 콜렉션에 걸린 시간(초)

 

 

- SurvivorRatio : 생존 공간 크기에 대한 eden의 비율 정의. default는 9로 각 생존 공간의 크기보다 eden이 8배 크다. -XX:SurvivorRatio=<size>

Xmn / (SurvivorRatio + 2) = 각 생존 공간의 크기

(Xmn / (SurvivorRatio + 2)) * SurvivorRatio = eden 크기

 

6. OS 튜닝

64bit VS 32bit : 32bit가 64bit보다 조금 더 빠르나 64bit는 더 큰 메모리를 사용할 수 있고 보통 4GB 이상의 메모리 할당 가능 (64bit JVM 사용하려면 32bit JVM에 비해 30% 메모리 더 추가)

 

 

출처 : http://becko.tistory.com/62

TAG •
?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공지] 공부 게시판 입니다. 처누 2003.08.17 828797
2476 생활 고양시(행신) - 동탄 SRT 역 (지하철, 시외버스) JaeSoo 2018.08.29 1273
2475 생활 워커홀릭(Workholic), 알콜홀릭(Alcoholic), -holic file JaeSoo 2018.08.25 714
2474 업무 Python & R vs. SPSS & SAS file JaeSoo 2018.08.20 548
2473 업무 R과 SAS 비교 JaeSoo 2018.08.20 220
2472 웹서버,WAS Tomcat7 성능 튜닝 방법 JaeSoo 2018.07.26 629
» 웹서버,WAS Tomcat7 Tuning file JaeSoo 2018.07.26 645
2470 취업 늦은 나이에 도전한 공무원 합격 수기(스압죄송;;) JaeSoo 2018.07.24 666
2469 업무 팀의 유형과 팀조직 file JaeSoo 2018.07.06 1013
2468 업무 팀장님, 우리팀 인력이 부족해요! file JaeSoo 2018.07.06 774
2467 취업 공공기관 적성검사 (팀장, 팀원, 인력 관련 문제) JaeSoo 2018.07.06 664
2466 업무 HIT 개발한 팀장이 왕초보 팀장들에게 전하는 말 file JaeSoo 2018.07.06 599
2465 건강 피부에 나는 붉은 점들의 정체 file JaeSoo 2018.04.02 3235
2464 건강 내 몸에 '붉은 점'이 생기는 이유는 무엇일까? file JaeSoo 2018.04.02 1140
2463 건강 피부의 붉은 반점, 걱정해야 할까? file JaeSoo 2018.04.02 2499
2462 취업 임기제 공무원 종류 및 비교 file JaeSoo 2018.03.29 1343
2461 취업 지방이전 대상 공공기관 (2018년 3월 기준) JaeSoo 2018.03.26 1510
2460 사무 소프트웨어 한글 에서 목차 자동으로 넣는 방법 file JaeSoo 2018.03.22 2194
2459 사무 소프트웨어 한글 목차 쪽번호가 자동으로 변경되게 하고 싶다면.. <상호참조> file JaeSoo 2018.03.22 2095
2458 사무 소프트웨어 한글 개요만들기 file JaeSoo 2018.03.22 2643
2457 생활 되다 vs 돼다 JaeSoo 2017.12.14 421
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 124 Next
/ 124

 

■ 즐겨찾기 - 가족
JAESOO's HOMEPAGE YOUNGAE's HOMEPAGE 장여은 홈페이지 장여희 홈페이지 장여원 홈페이지

■ 즐겨찾기 - 업무
알리카페 홀릭 숭실대 컴퓨터 통신연구실 (서창진) 말레이시아 KL Sentral 한국인 GuestHouse

■ 즐겨찾기 - 취미
어드민아이디 유에코 사랑회 아스가르드 좋은사람/나쁜사람 JServer.kr 제이서버 메타블로그 재수 티스토리

■ 즐겨찾기 - 강의, 커뮤니티
재수 강의 홈페이지 한소리 VTMODE.COM 숭실대 인공지능학과 숭실대 통신연구실


PageViews   Today : 1,717   Yesterday : 2,414   Total : 61,424,467  /  Counter Status   Today : 598   Yesterday : 978   Total : 3,337,827
Site Info   Member : 1,395  /  Total documents : 7,155   New documents : 0  /  Total comments : 516

design by by JAESOO.com

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소