개 요
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 |