Tomcat은 JavaWeb 실무자의 기본 개발 환경인 경우가 많지만, 프로덕션 환경으로서의 Tomcat의 기본 구성, 특히 메모리 및 스레드 구성은 기본적으로 매우 낮으며 다행히 Tomcat에서는 쉽게 성능 병목 현상이 발생할 수 있습니다. 아직은 개선의 여지가 많습니다. 다음은 메모리, 스레드, IO로 나눌 수 있는 Tomcat 최적화를 소개합니다.
Tomcat은 JavaWeb 실무자의 기본 개발 환경인 경우가 많지만 프로덕션 환경으로서의 Tomcat의 기본 구성, 특히 메모리 및 스레드 구성은 기본적으로 매우 낮으며 쉽게 성능 병목 현상이 발생할 수 있습니다.
다행히 Tomcat은 아직 개선의 여지가 많습니다. 다음에서는 Tomcat 최적화에 대해 소개하겠습니다. 메모리, 스레드, IO로 나눌 수 있습니다.
Windows의 catalina.bat
catalina.sh는 다음과 같은 Linux에서 사용됩니다.
으아악-Xms
-Xmx
maxThreads="X"는 동시에 최대 X개의 연결을 처리한다는 의미입니다
minSpareThreads="X" X 연결 초기화
maxSpareThreads="X"는 최대 X개의 스레드가 있을 수 있는 경우 X보다 한 번 더 더 이상 필요하지 않은 스레드가 닫히는 것을 의미합니다
acceptCount="X" 동시에 연결된 사람 수가 maxThreads에 도달해도 대기열 크기는 X입니다. X를 초과하면 처리되지 않습니다.
2: JAVA NIO: 동기식 비차단 IO, 비동기식 차단 IO, BIO로 구분됩니다. 가장 큰 차이점은 동일한 스레드를 여러 연결(다중화) 처리에 재사용할 수 있다는 것입니다.
3: 비동기 비차단 IO(Java NIO2는 AIO라고도 함) NIO와의 주요 차이점은 운영 체제의 근본적인 차이점입니다. NIO는 온라인 쇼핑 후에 가야 한다는 것을 의미합니다. 공식 웹사이트를 방문하여 택배가 배달되었는지 확인하세요. 도착 시(여러 번 가능) 택배를 직접 픽업할 수 있습니다. 택배 진행 상황에 주의하세요).
BIO 방식은 연결 수가 상대적으로 적고 고정된 아키텍처에 적합합니다. 이 방식은 서버 리소스에 대한 요구 사항이 상대적으로 높으며 동시성은 JDK1.4 이전에는 유일한 선택이었지만 프로그램은 직관적입니다. , 간단하고 이해하기 쉽습니다.
NIO 방법은 채팅 서버와 같이 연결 수가 많고 연결이 비교적 짧은 아키텍처에 적합합니다. 동시성은 애플리케이션으로 제한되고 프로그래밍은 복잡합니다.
AIO 방식은 사진 앨범 서버와 같이 연결 수가 많고 상대적으로 긴 연결(과중한 작업)이 있는 아키텍처에 사용됩니다. 동시 작업에 참여하기 위해 OS를 완전히 호출하므로 JDK7이 시작됩니다. 응원해주세요
server.xml에서
Tomcat용 IO 전환을 실현합니다.
4: 빅 킬러 APR프로덕션 환경에서는 특히 Tomcat을 WEB 서버로 직접 사용하는 경우 성능 향상을 위해 Tomcat Native를 사용해야 합니다. APR이 없으면 기본적으로 300개의 스레드가 곧 가득 차고 향후 요청은 APR을 추가한 후에 기다려야 합니다. 동시 스레드 수가 원래 300개에서 수십 개로 크게 줄어들었고 새로운 요청이 차단되지 않고 들어올 것입니다.
LAN 환경에서 테스트했을 때 400개의 동시 요청도 순식간에 처리/전송되었습니다. 그러나 실제 인터넷 환경에서는 페이지 처리 시간이 0.1% 미만에 불과하며 대부분의 시간이 페이지 전송에 사용됩니다. APR을 사용하지 않으면 하나의 스레드가 한 번에 한 명의 사용자만 처리할 수 있으므로 필연적으로 차단이 발생합니다. 따라서 프로덕션 환경에서는 apr을 사용하는 것이 매우 필요합니다.
Apache Tomcat Native Library를 설치하고 직접 시작 시 apr(http://tomcat.apache.org/native-doc/)을 지원합니다. 구체적인 설치 방법은 다른 블로그 및 기사를 참조하세요. 코드 문제 및 Tomcat 최적화 이 수준에서는 대부분의 성능 요구 사항을 충족할 수 있습니다.
으아악위 내용은 Tomcat 성능을 최적화하는 N가지 방법 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!