Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 가비지 수집 일시 중지를 최소화하기 위해 JVM 매개 변수를 구성하려면 어떻게 해야 합니까?


가비지 수집 일시 중지를 최소화하기 위해 JVM 매개 변수를 구성하려면 어떻게 해야 합니까?


가비지 수집 일시 중지를 최소화하도록 JVM 매개변수를 구성하려면 다음 단계를 수행할 수 있습니다.

1. 힙 크기 설정:

- 최대 힙 크기 설정:
- 최대 힙 크기를 설정하려면 `-Xmx` 플래그를 사용하세요.
- 예를 들어 `-Xmx2g`는 최대 힙 크기를 2GB로 설정합니다.

- 초기 힙 크기 설정:
- 초기 힙 크기를 설정하려면 `-Xms` 플래그를 사용하세요.
- 예를 들어 `-Xms2g`는 초기 힙 크기를 2GB로 설정합니다.

2. 젊은 세대 크기 설정:

- 젊은 세대 크기 설정:
- 젊은 세대 크기를 설정하려면 `-Xmn` 플래그를 사용하세요.
- 예를 들어 `-Xmn1g`는 Young Generation 크기를 1GB로 설정합니다.

3. 가비지 수집기 설정:

- 가비지 우선(G1) 가비지 수집기 사용:
- G1 가비지 수집기를 활성화하려면 `-XX:+UseG1GC` 플래그를 사용하세요.
- 이 수집기는 일시 중지 시간을 최소화하도록 설계되었습니다.

4. 최대 일시 중지 시간 설정:

- 최대 일시 중지 시간 설정:
- 최대 일시 중지 시간을 설정하려면 `-XX:MaxGCPauseMillis` 플래그를 사용하세요.
- 예를 들어 `-XX:MaxGCPauseMillis=200`은 최대 일시 중지 시간을 200밀리초로 설정합니다.

5. 병렬 GC 스레드 설정:

- 병렬 GC 스레드 수 설정:
- 병렬 GC 스레드 수를 설정하려면 `-XX:ParallelGCThreads` 플래그를 사용하세요.
- 예를 들어 `-XX:ParallelGCThreads=20`은 병렬 GC 스레드 수를 20으로 설정합니다.

6. 동시 GC 스레드 설정:

- 동시 GC 스레드 수 설정:
- 동시 GC 스레드 수를 설정하려면 `-XX:ConcGCThreads` 플래그를 사용하세요.
- 예를 들어 `-XX:ConcGCThreads=5`는 동시 GC 스레드 수를 5로 설정합니다.

7. 시작 힙 점유율 설정:

- 시작 힙 점유율 설정:
- 시작 힙 점유 비율을 설정하려면 `-XX:InitiatingHeapOccupancyPercent` 플래그를 사용하세요.
- 예를 들어 `-XX:InitiatingHeapOccupancyPercent=70`은 시작 힙 점유 비율을 70%로 설정합니다.

8. 모니터링 및 조정:

- 가비지 수집 모니터링:
- VisualVM 또는 GCeasy와 같은 도구를 사용하여 가비지 수집을 모니터링합니다.
- 필요에 따라 JVM 매개변수를 조정하여 일시정지 시간을 최소화합니다.

다음 단계를 수행하면 가비지 수집 일시 중지를 최소화하고 효율적인 애플리케이션 성능을 보장하도록 JVM 매개변수를 구성할 수 있습니다.

인용:
[1] https://www.uber.com/blog/jvm-tuning-garbage-collection/
[2] https://docs.datastax.com/en/dse/6.8/managing/Operations/configure-garbage-first-collection.html
[3] https://sematext.com/blog/java-garbage-collection-tuning/
[4] https://docs.oracle.com/cd/E55119_01/doc.71/e55122/cnf_jvmgc.htm
[5] https://docs.oracle.com/cd/E40972_01/doc.70/e40973/cnf_jvmgc.htm