조정 시간:
- 힙 메모리(구세대)는 설정된 최대 메모리 값까지 계속 증가합니다.
- Full GC 횟수는 빈번합니다.
- GC 일시 중지 시간이 너무 깁니다(1초 이상).
- 응용 프로그램에 OutOfMemory와 같은 메모리 예외가 있습니다.
- 응용 프로그램은 로컬 캐시를 사용하고 많은 메모리 공간을 차지합니다.
- 시스템 처리량 및 응답성이 낮거나 저하됩니다.
튜닝 원리:
- 대부분의 Java 애플리케이션은 서버에서 JVM 최적화가 필요하지 않습니다.
- GC 문제를 일으키는 대부분의 Java 응용 프로그램은 잘못된 매개 변수 설정 때문이 아니라 코드 문제입니다.
- 애플리케이션이 온라인 상태가 되기 전에 시스템의 JVM 매개변수를 최적(가장 적합)으로 설정하는 것을 고려하십시오.
- 생성된 개체 수를 줄입니다.
- 전역 변수 및 큰 개체의 사용을 줄입니다.
- JVM 최적화는 최후의 수단입니다.
- 실제 사용에서는 JVM 매개 변수를 최적화하는 것보다 코드를 최적화하기 위해 GC 상황을 분석하는 것이 좋습니다.
조정 대상:
-
GC 낮은 일시 중지;
-
GC 저주파;
-
낮은 메모리 사용량;
-
높은 처리량;
조정 단계:
-
GC 로그 및 덤프 파일을 분석하여 최적화가 필요한지 여부를 결정하고 병목 현상을 식별합니다.
-
jvm 튜닝의 정량적 목표를 결정합니다.
-
jvm 조정 매개변수를 결정합니다(이력 jvm 매개변수에 따라 조정됨).
-
서버를 조정하고 조정 전과 후의 차이를 비교하고 관찰합니다.
-
적절한 jvm 매개변수 구성을 찾는 지속적인 분석 및 조정
-
가장 적합한 매개변수를 찾아 모든 서버에 적용하고 후속 조치를 취하십시오.