Skip to content

Commit

Permalink
기본이 중요하다
Browse files Browse the repository at this point in the history
  • Loading branch information
K-Diger committed Feb 28, 2024
1 parent 5c3bd3b commit 398b396
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions _posts/2023-10-10-JVM-GC.md
Original file line number Diff line number Diff line change
Expand Up @@ -375,3 +375,20 @@ ZGC는 몇 밀리초의 Stop-The-World을 가지지만 이로 인해 일부 처
Stop-The-World 지속시간은 사용 중인 힙 크기와 무관하며. ZGC는 8MB에서 16TB까지의 힙 크기를 지원한다. `-XX:+UseZGC`

---

# 실제 튜닝을 적용한 명령어 - 수위키

```shell
sudo mkdir -p gclog && nohup java -server -Xms256m -Xmx512m -XX:+UseSerialGC -XX:+DisableExplicitGC -Xlog:gc*:file=gclog/gc.log.$(date +%Y-%m-%d):time,tags:filecount=5,filesize=10m -jar build/libs/*.jar --spring.config.location=file:config/application-jpa.yml,file:config/application-log.yml,file:config/application-smtp.yml,file:config/application-key.yml,file:config/application.yml > /home/ubuntu/log.out 2>&1 &
```

- `-server` : JVM을 서버 모드로 실행하게 한다. 서버 모드에서는 최적의 성능을 위해 JIT 컴파일러를 사용하고, 일반적으로 더 많은 시스템 리소스를 사용한다.
- `-Xms256m -Xmx512m` : -Xms 옵션은 JVM의 초기 힙 크기를 설정하고 -Xmx 옵션은 최대 힙 크기를 설정한다.
- `-XX:+UseSerialGC` : 이 옵션은 Serial 가비지 컬렉터를 사용하게 한다. Serial 가비지 컬렉터는 단일 쓰레드에서 동작하며, 주로 작은 어플리케이션에서 사용된다. (EC2 프리티어는 코어가 한 개이므로 단일 쓰레드에 적합한 SerialGC로 선정한다.)
- `-XX:+DisableExplicitGC` : 이 옵션은 System.gc() 호출에 의한 가비지 컬렉션을 비활성화하여 애플리케이션의 성능을 향상시킬 수 있다.
- `-Xlog:gc*:file=gclog/gc.log.$(date +%Y-%m-%d):time,tags:filecount=5,filesize=10m` : 이 옵션은 GC 로그를 파일로 출력하게 한다. 파일 이름은 gc.log.날짜 형식이며, 로그 파일은 최대 5개까지, 각 파일 크기는 최대 10MB까지이다.

- `> /home/ubuntu/log.out 2>&1 &` : 이 부분은 표준 출력과 표준 에러를 log.out 파일에 리다이렉트하며, &는 명령어를 백그라운드에서 실행하게 한다.

---

0 comments on commit 398b396

Please sign in to comment.