스트레스 테스트 .Tomcat, 매개 변수 등을 조정하여 구성 최적화 톰캣
1. 배포 웹 프로젝트, 테스트 액세스
1.1.1 SQL 스크립트 실행, 해당 데이터베이스를 생성하는
서버 SQL 스크립트에 업로드됩니다, 고양이 .SQL하여 스크립트 | mysql을 -uroot -p
1.1.2 배포 프로젝트
항목, jdbc.properties 구성 파일을 수정 찾을
리눅스 시스템 Tomcat이 디렉토리에 폴더 웹 어플리케이션 추출하기 위해 프로젝트를 업로드
1.1.3 시작 톰캣
HTTP : //192.168.7.22 : 클라이언트 방문 8080 / 대시 보드 - 웹 / 색인
도구 테스트 2.Jmeter 스트레스
추출 후에는 bin 디렉토리에 완료, 시작에서는 jmeter.bat 두 번 클릭하면 다음 Opetions으로 시작할 수 있습니다 Lanauge 중국어 간체 선택이 선택하는
새로운 스레드 그룹, 1000 스레드 수, 사이클의 수를 만들 수 2.1 10
2.2 클릭 새로운 스레드 그룹 이메일 샘플러를 만들 수 HTTP 프로토콜
사용 HTTP 프로토콜, 주소 리눅스 주소, 포트 tomcat8080 포트 액세스 웹 주소 대시 보드 / 지수
2.3은 새로운 쿼리 결과를 만들 수 없다 시작 테스트 클릭
더 3.Tomcat을 어떤 케이스 구성 :
평균 요청 처리 시간 : 6195
오류 에러율 : 0.00 %
처리량 : 154 / S
3.1 최적화 옵션을 하나 : 사용 안 함 AJP 서비스
바람둥이 정지 : ./shutdown.sh에 의해 bin 디렉토리로 전환
찾기가 conf 폴더 아래에있는 디렉토리를 추출 tomacat, AJP 서비스 주석 사이의 server.xml
빈 디렉토리를 시작합니다 : ../logs/catalina.out -f ./startup.sh && 꼬리
다음과 같은 시험 결과는 :
평균 요청 처리 시간 : 5200
오류 에러율 : 0.00 %
(170) /은 S : 처리량
3.2 최적화 방식 II는 : 액츄에이터 이동 (스레드 풀 )
시험 A : 최대 처음에 500 실, 50는
바람둥이 중지 : bin 디렉토리로 전환을 ./shutdown.sh로
찾기 conf 폴더, server.xml에 아래의 디렉토리에 압축을 풉니 다 tomacat
<집행자 이름 = "tomcatThreadPool"namePrefix = "카탈 -exec- "maxThreads ="500 "minSpareThreads ="50 "prestartminSpareThreads =" "참 />
1. 배포 웹 프로젝트, 테스트 액세스
1.1.1 SQL 스크립트 실행, 해당 데이터베이스를 생성하는
서버 SQL 스크립트에 업로드됩니다, 고양이 .SQL하여 스크립트 | mysql을 -uroot -p
1.1.2 배포 프로젝트
항목, jdbc.properties 구성 파일을 수정 찾을
리눅스 시스템 Tomcat이 디렉토리에 폴더 웹 어플리케이션 추출하기 위해 프로젝트를 업로드
1.1.3 시작 톰캣
HTTP : //192.168.7.22 : 클라이언트 방문 8080 / 대시 보드 - 웹 / 색인
도구 테스트 2.Jmeter 스트레스
추출 후에는 bin 디렉토리에 완료, 시작에서는 jmeter.bat 두 번 클릭하면 다음 Opetions으로 시작할 수 있습니다 Lanauge 중국어 간체 선택이 선택하는
새로운 스레드 그룹, 1000 스레드 수, 사이클의 수를 만들 수 2.1 10
2.2 클릭 새로운 스레드 그룹 이메일 샘플러를 만들 수 HTTP 프로토콜
사용 HTTP 프로토콜, 주소 리눅스 주소, 포트 tomcat8080 포트 액세스 웹 주소 대시 보드 / 지수
2.3은 새로운 쿼리 결과를 만들 수 없다 시작 테스트 클릭
더 3.Tomcat을 어떤 케이스 구성 :
평균 요청 처리 시간 : 6195
오류 에러율 : 0.00 %
처리량 : 154 / S
3.1 최적화 옵션을 하나 : 사용 안 함 AJP 서비스
바람둥이 정지 : ./shutdown.sh에 의해 bin 디렉토리로 전환
찾기가 conf 폴더 아래에있는 디렉토리를 추출 tomacat, AJP 서비스 주석 사이의 server.xml
빈 디렉토리를 시작합니다 : ../logs/catalina.out -f ./startup.sh && 꼬리
다음과 같은 시험 결과는 :
평균 요청 처리 시간 : 5200
오류 에러율 : 0.00 %
(170) /은 S : 처리량
3.2 최적화 방식 II는 : 액츄에이터 이동 (스레드 풀 )
시험 A : 최대 처음에 500 실, 50는
바람둥이 중지 : bin 디렉토리로 전환을 ./shutdown.sh로
찾기 conf 폴더, server.xml에 아래의 디렉토리에 압축을 풉니 다 tomacat
<집행자 이름 = "tomcatThreadPool"namePrefix = "카탈 -exec- "maxThreads ="500 "minSpareThreads ="50 "prestartminSpareThreads =" "참 />
<커넥터 집행자 = "tomcatThreadPool"포트 = "8080"= 프로토콜 "는 HTTP / 1.1"
은 ConnectionTimeout = "20000"
있는 redirectPort = "8443"/>
빈 디렉토리를 시작하려면 : ./ startup.sh && 꼬리 -f ../logs/catalina 이 .out
평균 요청 처리 시간 : 4200
오류 에러율 : 9.30 %
처리량 : 180 / S
시험 1 : 처음에 1,000 스레드 업 200
평균 요청 처리 시간 : 5000
오류 에러율 1.3 %의
처리량 : 165 / s에
순수한 스레드가 완전히 Tomcat이 성능 제출되지 향상시키기 위해
시험 II : 대기 큐의 최대 수를 설정
<집행자 이름 = "tomcatThreadPool"namePrefix = "카탈-exec-"maxThreads는 = "500"minSpareThreads = "50"prestartminSpareThreads = "진정한 "maxQueueSize ="100 "/>
은 ConnectionTimeout = "20000"
있는 redirectPort = "8443"/>
빈 디렉토리를 시작하려면 : ./ startup.sh && 꼬리 -f ../logs/catalina 이 .out
평균 요청 처리 시간 : 4200
오류 에러율 : 9.30 %
처리량 : 180 / S
시험 1 : 처음에 1,000 스레드 업 200
평균 요청 처리 시간 : 5000
오류 에러율 1.3 %의
처리량 : 165 / s에
순수한 스레드가 완전히 Tomcat이 성능 제출되지 향상시키기 위해
시험 II : 대기 큐의 최대 수를 설정
<집행자 이름 = "tomcatThreadPool"namePrefix = "카탈-exec-"maxThreads는 = "500"minSpareThreads = "50"prestartminSpareThreads = "진정한 "maxQueueSize ="100 "/>
<커넥터 집행자 = "tomcatThreadPool"포트 = "8080"프로토콜 = "는 HTTP / 1.1"
은 ConnectionTimeout = "20000"
있는 redirectPort = "8443"/>
테스트 III :의 작동 모드는 noi2
<커넥터 집행자 = "tomcatThreadPool"포트 = " 8080 "프로토콜 ="org.apache.coyote.http11.Http11Nio2Protocol "은 ConnectionTimeout ="20000 "있는 redirectPort ="8443 "/>
4.Tomcat 최적화 : JVM 파라미터가 최적화 된
4.1 병렬 가비지 컬렉터 있도록
구성 파일을 수정 catalina.sh
JAVA_OPTS을 = "- XX : + UseParallelGC -XX : + UseParallelOldGC -Xms64m -Xmx512m -XX : + PrintGCDetails -XX : + PrintGCTimeStamps -XX : + PrintGCDateStamps -XX : + PrintHeapAtGC -Xloggc : ../ 로그 / gc.log"
별 결론 : 젊은 세대의 메모리 할당이 너무 작습니다. 전체 힙 메모리 할당이 너무 작습니다
JAVA_OPTS = "- XX : + UseParallelGC -XX : + UseParallelOldGC -Xms128m -Xmx1024m -XX : newSize와 = 64m -XX : MaxNewSize = 256m -XX : + PrintGCDetails -XX : + PrintGCTimeStamps -XX : + PrintGCDateStamps -XX : + PrintHeapAtGC - Xloggc : ../ 로그 / gc.log "
4.2 G1 활성화 가비지 컬렉터
JAVA_OPTS ="- XX : + UseG1GC -XX : MaxGCPauseMillis = 100 -Xms128m -Xmx1024m -XX : + PrintGCDetails -XX : + PrintGCTimeStamps -XX : + PrintGCDateStamps -XX은 : + PrintHeapAtGC -Xloggc : ../ 로그 / gc.log "
때 5.Tomcat 최적화는 점을 최적화, 현재 환경에 대한 구성을 테스트하기 위해 계속 : 조정 2.JVM에 1.Tomcat 구성 매개 변수를
은 ConnectionTimeout = "20000"
있는 redirectPort = "8443"/>
테스트 III :의 작동 모드는 noi2
<커넥터 집행자 = "tomcatThreadPool"포트 = " 8080 "프로토콜 ="org.apache.coyote.http11.Http11Nio2Protocol "은 ConnectionTimeout ="20000 "있는 redirectPort ="8443 "/>
4.Tomcat 최적화 : JVM 파라미터가 최적화 된
4.1 병렬 가비지 컬렉터 있도록
구성 파일을 수정 catalina.sh
JAVA_OPTS을 = "- XX : + UseParallelGC -XX : + UseParallelOldGC -Xms64m -Xmx512m -XX : + PrintGCDetails -XX : + PrintGCTimeStamps -XX : + PrintGCDateStamps -XX : + PrintHeapAtGC -Xloggc : ../ 로그 / gc.log"
별 결론 : 젊은 세대의 메모리 할당이 너무 작습니다. 전체 힙 메모리 할당이 너무 작습니다
JAVA_OPTS = "- XX : + UseParallelGC -XX : + UseParallelOldGC -Xms128m -Xmx1024m -XX : newSize와 = 64m -XX : MaxNewSize = 256m -XX : + PrintGCDetails -XX : + PrintGCTimeStamps -XX : + PrintGCDateStamps -XX : + PrintHeapAtGC - Xloggc : ../ 로그 / gc.log "
4.2 G1 활성화 가비지 컬렉터
JAVA_OPTS ="- XX : + UseG1GC -XX : MaxGCPauseMillis = 100 -Xms128m -Xmx1024m -XX : + PrintGCDetails -XX : + PrintGCTimeStamps -XX : + PrintGCDateStamps -XX은 : + PrintHeapAtGC -Xloggc : ../ 로그 / gc.log "
때 5.Tomcat 최적화는 점을 최적화, 현재 환경에 대한 구성을 테스트하기 위해 계속 : 조정 2.JVM에 1.Tomcat 구성 매개 변수를