개 요

java application을 성능 최적화를 위해 성능테스트를 통해 JVM 설정을 해야한다.

지금부터 JVM 설정에 대해 알아볼것이며, 가장 was로 많이 사용 되는 Tomcat 기반으로 설정을 설정하고자한다.

 

설정하기

설정경로

  • windows : /tomcat/bin/catalina.bat
  • linux : /tomcat/bin/catalina.sh

Memory 설정

-server or -client

-Xmx / -Xms

-XX:NewSize

-XX:MaxNewSize

-XX:NewRatio

-XX:SurvivorRatio

-XX:PermSize(~java7) or -XX:MetaSpaceSize(java8~)

-XX:MaxPermSize(~java7) or -XX:MetaSpaceSize(java8~)

 

GC 설정

Serial GC

-XX:+UserSerialGC

Perallel GC

-XX:+UseParallelGC

-XX:ParallelGCThreads=value

Parallel Compacting GC

-XX:+UseParallelOldGC

CMS GC

-XX:+UseConcMarkSweepGC

-XX:+UseParNewGC

-XX:+CMSParallelRemarkEnabled

-XX:CMSInitialtingOccupancyFrantion=value

-XX:+UseCMSInitiatingOccupancyOnly

-XX:+CMSConcurrentMTEnabled

-XX:+CMSClaassUnloadingEnabled

  • cms는 permanent genalation 영역의 GC를 수행하지 않는다. 수행하려면 해당옵션을 사용.
G1 GC

-XX : G1HeapRegionSize = n 

-XX : MaxGCPauseMillis = 200 

-XX : G1NewSizePercent = 5 

-XX : G1MaxNewSizePercent = 60 

-XX : ParallelGCThreads = n 

-XX : ConcGCThreads = n 

-XX : HeapOccupancyPercent = 45 시작

-XX : G1MixedGCLiveThresholdPercent = 65 

-XX : G1HeapWastePercent = 10 

-XX : G1MixedGCCountTarget = 8 

-XX : G1OldCSetRegionThresholdPercent = 10 

-XX : G1ReservePercent = 10

-XX:+UnlockExperimentalVMotions

-XX:+UseG1GC

GC log print

-verbosegc

  • GC 로그 남기는 설정. 분석도구가 따로필요.(HPJMeter)

-XX:+PrintHeapAtGC

-XX:+PrintGCTimeStamps

  • GC 발생 시간 정보 출력

-XX:+PrintGCDetail

  • GC 수행 상세 정보 출력

-Xloggc:file

  • GC로그 파일이름 지정, 이게 없으면 바로 console에 출력됨.

'서버 > 성능과 튜닝' 카테고리의 다른 글

톰켓(Tomcat) 성능 튜닝하기  (0) 2020.05.19
성능테스트 프로세스  (0) 2020.05.19
API 성능테스트 시 고려사항  (0) 2020.05.06
JVM GC 알고리즘 및 튜닝  (0) 2020.02.09
JVM(Java Virtual Machine) 역할 및 구조  (0) 2020.02.09

+ Recent posts