Server/Server

[Tomcat] 톰캣 서버 성능 향상 및 동시 접속자 대응방법

2023. 1. 11. 16:19
목차
  1. 1. 톰캣 성능 향상을 위한 튜닝
  2. 2. 동시 접속자 대응 및 트래픽 폭주 시 대응
  3. 3. 그 외 방법

혼자 공부한내용을 토대로 톰캣 서버의 성능 향상, 동시 접속자 대응, 그리고 트래픽 폭주 시 서버 설정에 대해 정리했습니다.

1. 톰캣 성능 향상을 위한 튜닝

 

1.1 적절한 메모리 할당

톰캣의 성능을 향상시키기 위해서는 적절한 메모리 할당이 중요합니다. 메모리를 부족하게 설정하면 OutOfMemoryError가 발생할 수 있으며, 과도하게 할당하면 시스템 전체 성능에 영향을 줄 수 있습니다. JAVA_OPTS 환경 변수를 사용하여 힙 메모리 크기를 조절할 수 있습니다.

# 톰캣 실행 스크립트인 'catalina.sh' 파일에서 설정한다.
export JAVA_OPTS="-Xms256m -Xmx512m"

 

1.2. 스레드 풀(Thread Pool) 설정

톰캣의 성능을 향상시키기 위해 Executor를 사용하여 스레드 풀을 구성할 수 있습니다. 스레드 풀은 요청에 대한 응답을 빠르게 처리할 수 있게 해줍니다. server.xml 파일에서 아래 설정을 추가하세요.

<!-- server.xml 파일 -->
<Server>
...
<Service name="Catalina">
<!-- 스레드 풀 설정 추가 -->
<Executor name="tomcatThreadPool" namePrefix="tomcat-exec-" maxThreads="150" minSpareThreads="10"/>
...
</Service>
...
</Server>

🥸 maxThreads 는 동시접속에 영향을 주지만 유연성이 떨어진다고합니다.

 

2. 동시 접속자 대응 및 트래픽 폭주 시 대응

2.1. Connector 설정 변경

동시 접속자가 증가하거나 트래픽 폭주 시, Connector 설정을 변경하여 대응할 수 있습니다. server.xml 파일에서 아래와 같이 maxConnections, maxThreads, acceptCount 설정을 변경하세요.

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
executor="tomcatThreadPool"
maxConnections="10000"
acceptCount="500" />

 

 

🥸

connectionTimeout : 타임아웃시간을 지정한다(밀리초 단위)

executor : 1.2 에서 설정한 스레드풀을 사용하도록 지정하는 태그

maxConnections : 동시에 처리할수있는 최대 연결 수를 지정

acceptCount : 최대 연결수에 도달했을때 대기할수있는 추가연결요청 수 

 

3. 그 외 방법

3.1. 클러스터링과 로드밸런싱

클러스터링으로 여러톰캣서버 하나로 묶고, 로드밸런서로 트래픽을 분산시킬수있다는데 너무어려워서 안찾아봄

 

 

 

저작자표시 (새창열림)

'Server > Server' 카테고리의 다른 글

[Tomcat] 톰캣 세션(session) 타임아웃 설정 및 세션 우선순위  (0) 2023.01.11
[Tomcat] appBase, docBase 차이 및 설정 방법  (0) 2022.04.21
[Tomcat] 2개 서버 localhost 에서 세션 끊길때  (0) 2021.11.11
  1. 1. 톰캣 성능 향상을 위한 튜닝
  2. 2. 동시 접속자 대응 및 트래픽 폭주 시 대응
  3. 3. 그 외 방법
'Server/Server' 카테고리의 다른 글
  • [Tomcat] 톰캣 세션(session) 타임아웃 설정 및 세션 우선순위
  • [Tomcat] appBase, docBase 차이 및 설정 방법
  • [Tomcat] 2개 서버 localhost 에서 세션 끊길때
yoob
yoob
😎 Current : Back-end Developer          💻 Interests : Kotlin, Restful API                          📧 Contact : psung616@naver.com
yoob의 기술블로그😎 Current : Back-end Developer          💻 Interests : Kotlin, Restful API                          📧 Contact : psung616@naver.com
yoob
yoob의 기술블로그
yoob

블로그 메뉴

  • 🥳 힙한 생활용품 마켓 바로가기 ⬅️
전체
오늘
어제
  • 분류 전체보기 (121)
    • 프로그래머스 코테 (29)
      • 프로그래머스 Lv. 0 (11)
      • 프로그래머스 Lv. 1 (13)
      • 프로그래머스 Lv. 2 (5)
      • 프로그래머스 Lv. 3 (0)
    • Java (16)
      • Java😊 (12)
      • JSP😊 (4)
    • MSA (1)
      • Micro Service.. (1)
    • AWS (2)
      • AWS EC2 (1)
      • AWS RDS (1)
      • AWS EBS (0)
    • Framework (14)
      • Spring😊 (6)
      • Spring Boot😊 (6)
      • MyBatis😊 (1)
      • JPA (1)
    • JavaScript (16)
      • JavaScript😊 (9)
      • Jquery😊 (7)
    • Linux (6)
      • Linux😜 (6)
    • DBMS (10)
      • DataBase (10)
    • Server (4)
      • Server (4)
    • Python (3)
      • Python (3)
    • Git (3)
    • HTML5+CSS3 (3)
      • HTML5😊 (3)
      • CSS3😊 (0)
    • 창고 (12)
      • MAC OS (0)
      • 정보처리기사 (8)
      • TMI (4)

인기 글

최근 글

최근 댓글

09-19 15:41
hELLO · Designed By 정상우.
yoob
[Tomcat] 톰캣 서버 성능 향상 및 동시 접속자 대응방법
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.