깊이 MySQL의 JAVA의 건축가, Nginx에, 톰캣, JVM 튜닝

I. 배경
JMeter를 스트레스 테스트 인터페이스 HTTP의 사용은 응답 속도가 느립니다.

둘째, 아이디어의 위치에
위치 하나, 시간이 많이 걸리는 SQL
보기 드루이드 모니터

2, 위치 JVM 매개 변수
(1)보기 리눅스 서버 구성 정보
# 리눅스 현재 버전 정보를 볼 수있는 운영 체제 커널
끝나면 uname -a의
현재 버전 정보를 볼 수 # Linux 운영 체제
고양이 / proc 디렉토리 / 버전
# 리눅스 운영 체제 릴리스 정보의 현재 버전보기
고양이 은 / etc / 문제 또는 CAT의 / etc / 레드햇 릴리스
#보기 CPU 리눅스 관련 유형, 주파수, 정보 및 기타 핵심 정보
CAT / proc 디렉토리 / cpuinfo의
# 리눅스는 32 비트 모드에서 실행되는 현재 CPU의 릴리스 정보를 볼 수 있지만, 평균 CPU를하지 않습니다 64 비트를 지원하지 않는다
된 getconf의 LONG_BIT의
# 하드 디스크 사용량 체크
DF -H
#보기 메모리 사용량
무료 및 -m
. 1
2
. 3
. 4
. 5
. 6
. 7
. 8
. 9
(10)
. (11)
(12)가
13 것은
14
은 JVM의 메모리 사용량 (2)
JPS
jstat-
있는 jinfo
jmap는
jhat를
설명 jstack
. 1
2
. 3
. 4
. 5
. 6
III 튜닝 아이디어
(1) MySQL의
기본 키 작성
인덱스

(2) 중간체 톰캣
그러한 구성으로서 조정은 server.xml 파라미터 -Xms4096M -Xmx4096M

# 등록 사용자 정의 URL 핸들러의
보안 정책에서 사용할 수 있습니다 : #은 (특히 '... 전쟁') 사용자 정의 URL 핸들 그래서 여기에이 작업을 수행
= "$ JAVA_OPTS -Djava.protocol.handler.pkgs = org.apache.catalina JAVA_OPTS. webresources -Xms4096M -Xmx4096M "
1
2
3
(3) JVM
调整catalina.sh的의 -Xmx和XMS

<! - 연결 제한을 수정 ->
<집행자의
이름 = "tomcatThreadPool"
namePrefix = "카탈-Exec-"
maxThreads = "300"
minSpareThreads = "50"
maxIdleTime = "60000"
"참으로"prestartminSpareThreads =
maxQueueSize = "100 "
/>

<! -
maxThreads는 : 동시, 200 기본 설정의 최대 수를 결정하는 하드웨어 시설 및 운영에 따라, 800 (500)을 추천 일반적으로
minSpareThreads을 : 톰캣, 25 기본 설정으로 초기화 할 때 생성 된 스레드의 수를
현재의 thread가보다 큰 경우 : maxIdleTime를 스레드를 초기화하고, 해당 스레드는 무료 생존 시간 (밀리 초) 60000 = 60초 = 1 분 기본.
값에 해당 같지 않으면 톰캣 초기화 매개 변수 값 minSpareThreads 초기화되면 minSpareThreads 효과에 부족 : prestartminSpareThreads
maxQueueSize을 : 큐의 최대 수를 초과 요청은 거절된다
->

<! - A "커넥터"는 요청을 수신하는 엔드 포인트 표현
과 응답이 반환됩니다. :에서 문서
자바 HTTP 커넥터 : /docs/config/http.html
자바 AJP 커넥터 : /docs/config/ajp.html
APR (HTTP / AJP) 커넥터 : /docs/apr.html
정의 비 - SSL / TLS HTTP / 1.1 커넥터 포트 8080에
->

<! -参数优化配置->
<커넥터
집행자 = "tomcatThreadPool"
포트 = "8081"
프로토콜 = "org.apache.coyote.http11.Http11NioProtocol"
은 ConnectionTimeout = "60000"
의 MaxConnections = "10000"
있는 redirectPort = "8443"
enableLookups = "false"를
acceptCount = "100"
maxPostSize = "


disableUploadTimeout = "true"를
compressionMinSize = "2048"
acceptorThreadCount = "2"
compressableMimeType = "text / html과, 텍스트 / 일반, 텍스트 / CSS, 응용 프로그램 / 자바 스크립트, 응용 프로그램 / JSON, 응용 프로그램 / X-글꼴 TTF, 응용 프로그램 / x 축 폰트 OTF 이미지 / SVG + XML, 이미지 / JPEG 화상 / PNG 이미지 / GIF, 오디오 / 된 MPEG 비디오 / MP4 "
URIEncoding ="UTF-8 "
processorCache ="20000 "
tcpnodelay yes를 ="true "로
connectionLinger =" 5 "/>

<! -
집행자 : 스레드 풀 모드
포트 : 응용 프로그램 포트
프로토콜 : 톰캣 8 배치 nio2 더 나은
은 ConnectionTimeout : 커넥터 수신 시간 (밀리 초) 연결 대기 한 후, 기본값은 60000입니다.
의 MaxConnections :이 값은 바람둥이로 소켓 연결의 최대 수를 나타냅니다
HTTPS 포트 리디렉터 다음있는 redirectPort
enableLookups : 사용 안 함 DNS 쿼리
acceptCount : 스레드의 수가 허용 요청의 최대 수를 대기 할 때 때 Tomcat을 시작, 기본값은 100입니다.
maxPostSize는 : 용기의 최대 길이에 의해 해결 URL 인수는 (1, 0보다 작은)이 등록을 해제하는 기본이 2,097,152 (2M)이다
maxHttpHeaderSize : 최대 범위에 HTTP 요청 헤더이 길이의 일부는 무시 초과한다. 일반 8K.
압축 : 오프 GZIP 압축에 사용 가능 (텍스트 데이터 압축)를 활성화하기 위해 사용할 수 없습니다 여부, 힘은 모든 데이터 압축
disableUploadTimeout :이 플래그는 서블릿 컨테이너가 다른 보통 이상 업로드 데이터 연결 시간 초과를 사용할 수 있습니다. 지정되지 않은 경우,이 속성은 (는) 타임 아웃을 비활성화, true로 설정됩니다.
compressionMinSize : 데이터 크기가 최소 압축 초과하는 경우에만
acceptorThreadCount을 : 연결을 허용하는 스레드의 수. 당신이 정말로 더이보다 필요가 없습니다하지만, 멀티 CPU 시스템에서이 값을 늘리면. 많은 비는 연결이도를 유지한다, 당신은이 값을 늘릴 수 있습니다. 기본값은 1입니다.
compressableMimeType는 : 구성 데이터 압축과 같은 유형의
URIEncoding : 사이트는 일반적으로 기본 인코딩으로 UTF-8을 사용합니다.
processorCache : 프로토콜 핸들러 객체 프로세서 캐시 성능을 향상합니다. 이 설정은 얼마나 많은 캐시 이러한 개체를 결정합니다. -1 수단 제한, 기본값은 200입니다. 당신은 서블릿 3.0 비동기 처리를 사용하지 않는 경우, 디폴트는 같은 maxThreads 설정을 사용하는 것입니다. 당신은 서블릿 3.0 비동기 처리를 사용하는 경우, 기본값은 (동기 및 비동기) 최대 번호와 예상되는 대형 maxThreads 동시 요청입니다.
tcpnodelay yes를 : 사실, TCP_NO_DELAY 옵션으로 설정이 서버 소켓에 설정하고, 대부분의 경우 성능을 향상시킬 수됩니다. 이 기본 설정은 사실이다.
connectionLinger : 소켓 커넥터 오프 초 때 연속 사용. 디폴트 값은 -1, 소켓을 사용하지 않도록 지연 시간입니다.
->
. (1)
(2)
. 3
. 4
. 5
. 6
. 7
. 8
. 9
(10)
. (11)
(12)이
13 인
14
15
16
17.
18된다
(19).
20
(21)이
22 인
23 인
24
25
26되고
27
28
29
(30)
(31)은
(32)
(33)이
34 인
35
36
37
38 인
(39)
(40)
(41)이
42 인
43 인
44된다
(45)
(46)는
(47)
48
(49)
50
(51)이
52 인
53 인
54
55
56 인
(57)는
58
(59)
60
(61)이
62 인
63 인
64
65
66
67
68
69
70
(4) 코드
루프

대형 오브젝트

SQL 문을

추천

출처www.cnblogs.com/java889/p/12163921.html