일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JavaScript
- 도커
- spring boot
- SpringBoot
- Next.js 14
- spring
- ollama langflow
- java9
- custom valid
- NextJS
- docker 설치
- 리눅스
- docker
- MySQL
- React
- dto valid
- CentOS6
- JPA
- generate entity
- generate pojos
- jpa entity자동
- 헤더 설정
- Java
- jvm
- 초기 세팅
- 초기 구축
- memcached
- java8
- swagger
- header setting
- Today
- Total
개발자의 길
tomcat 성능 향상 방법 - 튜닝 본문
*. JVM Tuning 튜닝
1. 메모리 가용성을 확보한 다음 힙 사이즈를 늘려라
- -server -Xms768M -Xmx768M
2. garbage collector를 튜닝하라(GC 로깅 분석 후)
- -XX: +UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:-TraceClassUnloading
3. 원격지에서 모니터링을 주기적으로 하라(물론 상용에선 빼라)
- -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
*. Tomcat 튜닝
1. 중복 로그 접점을 제거하고 하나로 통일하라(logging.properties)
- .handlers = 1catalina.org.apache.juli.FileHandler,java.util.logging.ConsoleHandler 부분을 .handler = 1catalina.org.apache.juli.FileHandler로 변경
2. 로그 Overflow 예방하기 위해 아래 설정을 logging.properties에 추가하라
- 1catalina.java.util.logging.FileHandler.pattern =${catalina.base}/logs/catalina.%g.log
- 1catalina.java.util.logging.FileHandler.limit = 20000000
- 1catalina.java.util.logging.FileHandler.count = 5
3. Synchronized Logging은 Disk I/O, 어플의 bottleneck의 한 요소이니 Asynchronous Logging으로해도 무방하다.
4. maxKeepAliveRequest수가 클 경우 1000이 넘을 경우(TCP커넥션당 HTTP request가 많을 경우에 해당함)
- keep alive를 disable한다.
5. DNS lookups을 줄여라(server.xml)
- enableLookups=false
6. maxThreads 늘리고, connectionTimeout을 줄여라
- maxThreads=512, connectionTimeout=5000
7. 불필요한 부하 발생을 제거하라
- reloadable을 false, debug는 0, acceptCount를 무리하게 크게 하지 않음
8. 네트워크 트래픽을 줄여라
- compression를 on하고 compressableMimeTypes를 지정(text/html,text/xml,text/javascript,text/css,text/plain)
*. AJP Tuning
1. 톰켓 서버를 두대이상 운영할 경우 Load Balance를 하라
2. 커넥션 설정(Socket Timeout, Connection Pool Size, Connection Pool Timeout)을 지정하라
[관련 포스트]
톰켓을 사용하는데 필요한 20가지 Tips
'9. TOMCAT' 카테고리의 다른 글
[tomcat] 파라메타(parameter) 넘길 시 한글 깨짐 해결 (1) | 2015.06.24 |
---|---|
[tomcat] jndi 설정 (2) | 2015.06.17 |
web server 및 어플리케이션의 이해와 tomcat 구조 (7) | 2010.07.27 |
tomcat ThreadPool (0) | 2009.12.24 |
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.