tomcat 8 매개 변수 설정 성능 최적화

Tomcat 8 최적화
Tomcat 의 실행 상 태 를 볼 필요 가 있다 면 tomcat 관리자 계 정 을 설정 하고 Tomcat 배경 에 로그 인하 여 볼 수 있 습 니 다.
/ root / tomcat / conf / tomcat - users. xml 파일 을 편집 하고 다음 정 보 를 추가 합 니 다.





프로필 편집: / root / tomcat / conf / server. xml
기본 설명 되 어 있 는 연결 풀 설정 열기:
기본 값:

다음으로 변경:

매개 변수 설명:
max Threads, 최대 병발 수, 기본 설정 200,
일반적으로 500 ~ 800 에서 하드웨어 시설 과 업무 에 따라 판단 하 는 것 을 권장 합 니 다.
minSpareThreads, Tomcat 초기 화 시 생 성 된 스 레 드 수, 기본 설정 25
prestartmin Spare Threads, Tomcat 초기 화 시 minSpare Threads 의 매개 변수 값 을 초기 화 합 니 다. true 와 같 지 않 으 면 minSpare Threads 의 값 은 효과 가 없습니다.
maxQueueSize, 최대 대기 열 수, 초과 하면 요청 거부
 
기본 링크 매개 변수 설정 수정:
기본 값:

다음으로 변경:


 매개 변수 설명:
protocol, Tomcat 8 은 nio 2 를 설정 하 는 것 이 좋 습 니 다. org. apache. coyote. http 11. Http11Nio2Protocol (이것 을 사용 할 수 없다 면 아래 의 것 을 사용 하 세 요)
protocol, Tomcat 6, 7 설정 nio 가 더 좋 습 니 다: org. apache. coyote. http 11. Http11NioProtocol
enableLookus, DNS 검색 비활성화
acceptCount, 사용 할 수 있 는 모든 처리 요청 의 스 레 드 수 를 사용 할 때 처리 대기 열 에 넣 을 수 있 는 요청 수 를 지정 합 니 다. 이 수 를 초과 하 는 요청 은 처리 하지 않 습 니 다. 기본 값 은 100 입 니 다.
maxPost Size, FORM URL 매개 변수 방식 의 POST 제출 방식 으로 제출 의 최대 크기 를 제한 합 니 다. 기본 값 은 2097152 (2 메 가) 이 고 단 위 는 바이트 입 니 다.10485760 은 10M 이다.제한 을 사용 하지 않 으 려 면 - 1 로 설정 할 수 있 습 니 다.
acceptorThreadCount, 연결 을 받 는 스 레 드 의 수량, 기본 값 은 1 입 니 다.일반적으로 이것 은 변경 이 필요 할 때 이 서버 가 다 중 핵 CPU 이기 때 문 입 니 다. 다 중 핵 CPU 라면 일반적으로 2 로 설정 합 니 다.
 
AJP 사용 안 함 (서버 에서 Apache 를 사용 하지 않 았 다 면)
아래 줄 의 주석 을 지 워 라. 기본 Tomcat 은 열 려 있다.

JVM 최적화
자바 의 메모리 모델 은 다음 과 같 습 니 다.
Young, 젊 은 세대 (GC 에 쉽게 노출 됨)
Young 구역 은 세 부분 으로 나 뉘 는데 Eden 구역 과 두 크기 가 똑 같은 Survivor 구역 으로 나 뉘 는데 그 중에서 Survivor 구간 에서
어느 순간 그 중 하나 만 사용 되 고, 다른 하 나 는 쓰레기 수집 시 복제 대상 으로 남 겨 진다.
Young 구간 이 꽉 차 면 minor GC 는 남 은 Survivor 구간 으로 생존 대상 을 옮 깁 니 다.
JVM 의 전략 에 따 르 면 몇 차례 쓰레기 수 거 를 거 쳐 서 바 이 버 에 남 아 있 는 대상 은 Tenured 구간 으로 이동한다.
 
Tenured, 평생 대.
Tenured 구역 은 주로 수명 주기 가 긴 대상 을 보존 하 는데, 일반적으로 오래된 대상 이다.
일부 대상 이 Young 복사 에서 일정 횟수 를 옮 긴 후에 대상 은 Tenured 구역 으로 옮 겨 집 니 다.
일반적으로 시스템 에 애플 리 케 이 션 급 캐 시 를 사용 하면 캐 시 대상 이 이 구간 으로 이동 하 는 경우 가 많다.
Perm (JVM 8 이 해 고 됨) 영구 대
주로 class, method, filed 대상 을 저장 합 니 다. 이 부분의 공간 은 한 번 에 많은 종 류 를 불 러 오지 않 는 한 넘 치지 않 습 니 다.
그러나 열 배치 와 관련 된 응용 서버 에 서 는 자바. lang. OutOfmory Error: PermGen space 의 오류 가 발생 할 수 있 습 니 다.
이 오 류 를 일 으 키 는 큰 원인 은 매번 재배 치 될 수 있 지만 재배 치 후 클래스 의 class 는 마 운 트 해제 되 지 않 았 습 니 다.
이 로 인해 대량의 클 라 스 대상 이 perm 에 저장 되 었 습 니 다. 이 경우 일반적으로 응용 서버 를 다시 시작 하면 문 제 를 해결 할 수 있 습 니 다.
 
Linux 수정 / root / tomcat / bin / catalina. sh 파일 을 파일 첫 줄 에 추가 합 니 다.
윈도 와 리 눅 스 가 조금 다른 점 은 리 눅 스에 서 아래 의 매개 변수 값 은 따옴표 로 둘러싸 여 있 고 윈도 는 따옴표 로 둘러싸 이지 않 아 도 된다 는 점 이다. 
        4G:

CATALINA_OPTS="-Dfile.encoding=UTF-8 -server -Xms2048m -Xmx2048m -Xmn1024m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:SurvivorRatio=10 -XX:MaxTenuringThreshold=15 -XX:NewRatio=2 -XX:+DisableExplicitGC"

        8G:

CATALINA_OPTS="-Dfile.encoding=UTF-8 -server -Xms4096m -Xmx4096m -Xmn2048m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:SurvivorRatio=10 -XX:MaxTenuringThreshold=15 -XX:NewRatio=2 -XX:+DisableExplicitGC"

        16G:

CATALINA_OPTS="-Dfile.encoding=UTF-8 -server -Xms8192m -Xmx8192m -Xmn4096m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:SurvivorRatio=10 -XX:MaxTenuringThreshold=15 -XX:NewRatio=2 -XX:+DisableExplicitGC"

        32G:

CATALINA_OPTS="-Dfile.encoding=UTF-8 -server -Xms16384m -Xmx16384m -Xmn8192m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:SurvivorRatio=10 -XX:MaxTenuringThreshold=15 -XX:NewRatio=2 -XX:+DisableExplicitGC"

    8G    

-Xms2048m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=256m -XX:MaxPermSize=512m

    16G    

-Xms4096m -Xmx4096m -XX:NewSize=1024m -XX:MaxNewSize=2048m -XX:PermSize=256m -XX:MaxPermSize=512m

매개 변수 설명:
- dfile. encoding: 기본 파일 인 코딩
- server: 서버 에 적용 되 는 설정 입 니 다. JVM 내부 에 특수 처리 가 있 을 것 입 니 다.
- Xmx1024m: JVM 최대 사용 가능 한 메모 리 를 1024 MB 로 설정
- Xms 1024m: JVM 의 최소 메모 리 를 1024 m 로 설정 합 니 다.이 값 은 쓰레기 회수 가 끝 날 때마다 JVM 이 메모 리 를 재배 치 하지 않도록 - Xmx 와 동일 하 게 설정 할 수 있 습 니 다.
- Xmn1024m: JVM 신세대 크기 설정 (JDK 1.4 이후 버 전).보통 - Xmn 의 크기 는 - Xms 의 1 / 2 정도 이 므 로 너무 크 거나 작 게 설정 하지 마 십시오. 너무 크 면 옛날 시대 가 작 아 지고 자주 Full GC 가 되 며 너무 작 으 면 minor GC 가 빈번 합 니 다.설정 하지 않 으 면 - Xmn, - XX: NewRatio = 2 로 설정 가능, 같은 효과
- XX: NewSize: 신세대 크기 설정
- XX: MaxNewSize: 최대 신세대 크기 설정
- XX: PermSize: 영구 세대 크기 설정
- XX: MaxPerm Size: 최대 영구 세대 크기 설정
- XX: NewRatio = 4: 젊 은 세대 (Eden 과 두 개의 Survivor 구역 포함) 와 평생 세대 의 비율 (영구 세대 제외) 을 설정 합 니 다.4 로 설정 하면 젊 은 세대 와 평생 세대 가 차지 하 는 비율 은 1: 4 이 고 젊 은 세대 가 전체 스 택 의 1 / 5 를 차지한다.
- XX: MaxTenuring Threshold = 10: 쓰레기 의 최대 연령 을 설정 합 니 다. 기본 값 은: 15 입 니 다.
0 으로 설정 하면 젊 은 세대 대상 은 서 바 이 버 존 을 거치 지 않 고 바로 연로 대 에 들어간다.
연로 대 에 비교적 많은 응용 은 효율 을 높 일 수 있다.이 값 을 큰 값 으로 설정 하면 젊 은 세대 대상 은 Survivor 구역 에서 여러 번 복 제 를 하여 대상 이 젊 은 세대 의 생존 시간 을 늘 리 고 젊 은 세대 에서 회수 되 는 개론 을 늘 릴 수 있다.
주의해 야 할 것 은 - XX: MaxTenuring Threshold 를 설정 한 것 은 대상 이 반드시 젊 은 세대 에서 15 번 살아 야 옛날 에 들 어 갈 수 있다 는 것 을 의미 하지 않 습 니 다. 이것 은 최대 치 일 뿐 입 니 다. 사실은 동적 컴퓨터 제 가 존재 합 니 다. 매번 에 옛날 에 들 어 갈 때마다 한도 값 을 계산 하고 한도 값 과 MaxTenuring Threshold 중 작은 하 나 를 기준 으로 합 니 다.
- XX: + DisableExplicitGC: GC 를 수 동 으로 호출 하 는 코드 를 무시 하여 System. gc () 의 호출 을 에어컨 으로 만 들 고 GC 를 전혀 촉발 하지 않 습 니 다.

좋은 웹페이지 즐겨찾기