1. ์๋ฒ์ฉ ๋จธ์ : G1GC๊ฐ ์ฌ์ฉ, ๊ทธ ์ธ : Serial Collector ์ฌ์ฉ
2. Initial heap size (JVM์ด ์์ํ ๋ ๋ฐ๋ก ํ๋ณดํ๋ heap ํฌ๊ธฐ) : RAM์ 1/64
3. maximum heap size (JVM heap์ ์ต๋ ํฌ๊ธฐ) : RAM์ 1/4
4. minimum heap size (JVM heap์ ์ต์ ํฌ๊ธฐ) : ๋ํดํธ ๊ฐ ์ค์ ์ด ์ฝ๊ฐ ๋ณต์กํ๊ฒ ๊ฒฐ์ ๋จ
=> ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ์ด ์ธ๊ฐ์ง ๊ฐ์ ๋์ผํ๊ฒ ๋ง์ถค
5. ์ต๋ GC thread ์ : heap size์ ์ด์ฉ ๊ฐ๋ฅํ CPU resources์ ์ํด ๊ฒฐ์ ๋จ
6. JIT ์ปดํ์ผ๋ฌ : C1๊ณผ C2๋ฅผ ์ฌ์ฉํ๋ tiered compiler ์ฌ์ฉ
jps -l # ํ์ฌ ์คํ์ค์ธ ์๋ฐ ํ๋ก์ธ์ค ID ๋ฆฌ์คํธ

jcmd ํ๋ก์ธ์ค์์ด๋ VM.flags # ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์ ๋ VM Option
- ์ผ์ ์ค์ง ์๊ฐ : ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์งํ๊ณ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๊ณต๊ฐ์ ํ์ํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ
- pause time์ด ์๋ฌด๋ฆฌ ๊ธธ์ด๋ `maximum pause-time goal`๋ณด๋ค๋ ์ ์ด์ผ ํ๋ค
- GC๋ pause time์ ๋ํ ๊ฐ์คํ๊ท ๊ณผ ๋ถ์ฐ์ ๊ณ์ฐํด์ ์ด ๋์ ํฉ์ maximum pause-time ์ผ๋ก ์ค์
- maximum pause-time goal์ ๋ํดํธ ๊ฐ์ collector๋ง๋ค ๋ค๋ฆ
>> heap size๋ gc ๊ด๋ จ ์ฌ๋ฌ ํ๋ผ๋ฏธํฐ๋ค์ ์กฐ์ ํ์ฌ pause time์ nnn milliseconds๋ณด๋ค ์๊ฒ ์ ์งํ๋ ค๊ณ ์๋
Q. ์ผ์ ์ค์ง ์๊ฐ์ ์ค์ด๊ณ ์ถ์ด+ํ ๊ด์ ์์๋ ์ด๋ป๊ฒ ์กฐ์ ํด์ผ ํ๋๊ฐ
ํ ์ฌ์ด์ฆ ์ค์ด๊ธฐ (ํ์ํด์ผํ๋ ํ๋ด ๋ฐ์ดํฐ๊ฐ ์ค์ด๋ค์)
- GC time๊ณผ application time์ ๋น๊ตํด์ ํน์ ๋น์จ์ ๋ง์ถ๋ค
- `-XX:GCTimeRatio=nnn`๋ก ์ง์ . `GC Time Ratio = 1/(1+nnn)`๋ก ๋ชฉํ๋ฅผ ์ค์ ํ๋ค
Q. throughput goal์ด ์ถฉ์กฑ๋์ง ์์
ํ ์ฌ์ด์ฆ ๋์ด๊ธฐ
- ์ฒ๋ฆฌ๋ ๋ฐ ์ต๋ ์ผ์ ์ค์ง ์๊ฐ ๋ชฉํ๊ฐ ์ถฉ์กฑ๋๋ฉด, ๋ ๋ชฉํ ์ค ํ๋(๋๊ธฐ ์ฒ๋ฆฌ๋ ๋ชฉํ)๋ฅผ ๋ ์ด์ ์ถฉ์กฑํ ์ ์์ ๋๊น์ง ํ ํฌ๊ธฐ๋ฅผ ์ค์ธ๋ค
(๋ถํ์ํ๊ฒ ์ ์ ํ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ค์ฌ์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋ค)
- ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ์ฌ์ฉํ ์ ์๋ ์ต์ ๋ฐ ์ต๋ ํ ํฌ๊ธฐ๋ ๋ค์์ ์ฌ์ฉํ์ฌ ์ค์ ํ ์ ์๋ค
-Xms=<nnn> : ์ต์ ํ ํฌ๊ธฐ
-Xmx=<mmm> : ์ต๋ ํ ํฌ๊ธฐ
Q. ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ํ = ์ต๋ ํ . ์ ?
๋ฐํ์ ์ค ํ ํฌ๊ธฐ ๋ณํ๋ฅผ ๋ง์์ GC ์์ ์ฑ๊ณผ ์ฑ๋ฅ์ ํ๋ณดํ๊ธฐ ์ํด
์๋ฒ๋:
๐ ํ์ด ๋์ด๋๋ฉด:
throughput goal์ ์ก๊ณ max heap size๋ฅผ ์ก๋๋ค (swap ์์ด)
๊ทธ๋ผ์๋ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ์ง ๋ชปํ๋ฉด RAM ์ด ์ด throughput ์ ๊ฐ๋นํ์ง ๋ชปํ๋ ๊ฒ์ด๋ค
๋ฌ์ฑํ๋๋ฐ pause time์ด ๋๋ฌด ๊ธธ๋ฉด maximum pause-time goal ์ ์ง์ ํ๋ค
(๋จ, throughput goal๊ณผ maximum pause-time goal์ ํธ๋ ์ด๋ ์คํ ๊ด๊ณ์ด๊ธฐ ๋๋ฌธ์ ์ ๋นํ ํํ์ด ํ์ํ๋ค)
์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ผํ๊ฒ ์ค์ ํ๋ค
| Java ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ : 11 -> 17 -> 21 (0) | 2025.10.07 |
|---|---|
| [์๋ฐ] JVM ๊ตฌ์กฐ (0) | 2025.03.27 |
| [์๋ฐ] ์ถ์ ํด๋์ค์ ์ธํฐํ์ด์ค์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์ (0) | 2025.03.27 |
| [JAVA] Random vs SecureRandom vs ThreadLocalRandom (0) | 2024.12.26 |
| [์๋ฐ] Collections API : TreeMap (0) | 2024.10.22 |