2024-07-03 00:07
[GC pause (G1 Evacuation Pause) (young), 0.0456789 secs]
[Parallel Time: 40.0 ms, GC Workers: 8]
[Eden: 512M(512M)->0B(512M) Survivors: 32M->32M Heap: 1024M(2048M)->512M(2048M)]| ๊ตฌ์ฑ ์์ | ๊ฐ | ์์ธ ์ค๋ช |
|---|---|---|
| GC ํ์ | G1 Evacuation Pause (young) | โข G1GC์ Young Generation ์์ง โข Minor GC๋ก Eden๊ณผ Survivor ์์ญ๋ง ์ ๋ฆฌ โข Old ์์ญ์ ๊ฑด๋๋ฆฌ์ง ์์ |
| ์ ์ฒด ์์ ์๊ฐ | 0.0456789 secs (45.6ms) | โข Stop-The-World ์๊ฐ โข ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ค๋ ๋ ์ ์ง โข ์ผ๋ฐ ์๋น์ค: 100ms ์ดํ ์ํธ โข ์ค์๊ฐ ์๋น์ค: ๊ฐ์ ํ์ |
| ๋ณ๋ ฌ ์ฒ๋ฆฌ ์๊ฐ | 40.0 ms | โข ์ค์ GC ์์
์๊ฐ โข ์ ์ฒด ์๊ฐ์ 87.6% ์ฐจ์ง โข ๋๋จธ์ง 5.6ms๋ ์ค๋น/์ ๋ฆฌ ์ค๋ฒํค๋ |
| GC Workers | 8๊ฐ | โข ๋ณ๋ ฌ๋ก ์์
ํ๋ ์ค๋ ๋ ์ โข CPU ์ฝ์ด ์์ ์ฐ๊ด โข -XX:ParallelGCThreads๋ก ์กฐ์ ๊ฐ๋ฅ |
| ๋ฉ๋ชจ๋ฆฌ ์์ญ | GC ์ | GC ํ | ์ต๋ ํฌ๊ธฐ | ๋ถ์ |
|---|---|---|---|---|
| Eden | 512M | 0B | 512M | โข 100% ์ฌ์ฉ โ ์์ ๋น์ โข ์ด์์๋ ๊ฐ์ฒด๋ Survivor๋ก ์ด๋ โข ์ฃฝ์ ๊ฐ์ฒด๋ ๋ชจ๋ ์ ๊ฑฐ๋จ |
| Survivors | 32M | 32M | - | โข ํฌ๊ธฐ ๋ณํ ์์ โข From๊ณผ To ์์ญ ๊ฐ Swap ๋ฐ์ โข ์ผ๋ถ๋ Old๋ก ์น๊ฒฉ๋์์ ๊ฐ๋ฅ์ฑ |
| ์ ์ฒด Heap | 1024M | 512M | 2048M | โข 50% ๊ฐ์ (512MB ํ์) โข ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ์ 25%๋ง ์ฌ์ฉ ์ค โข ์ถฉ๋ถํ ์ฌ์ ๊ณต๊ฐ ํ๋ณด |
์ค๋ฌด ํ: Full GC๊ฐ ์์ฃผ ๋ฐ์ํ๋ฉด Old ์์ญ์ด ๋ถ์กฑํ๊ฑฐ๋, ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ์์ฌ๋๋ค.
- ์๊ฐ๋น 1ํ ์ด์: ๋ชจ๋ํฐ๋ง ๊ฐํ
- 10๋ถ๋น 1ํ ์ด์: ํ๋ ๊ฒํ
- ๋ถ๋น 1ํ ์ด์: ์ฆ์ ๋์ ํ์
-Xmx ์ต์
)| ์ค์ ๋ฐฉ๋ฒ | ์์ | ์ฃผ์์ฌํญ |
|---|---|---|
| ๊ธฐ๋ณธ ์ค์ | -Xms4g -Xmx4g |
โข ์ด๊ธฐ/์ต๋ ํฌ๊ธฐ ๋์ผ ์ค์ โข ๋ฆฌ์ฌ์ด์ง ์ค๋ฒํค๋ ๋ฐฉ์ง |
| Container ํ๊ฒฝ | -XX:MaxRAMPercentage=75.0 |
โข ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น โข ์ปจํ ์ด๋ ๋ฆฌ์์ค ์ ํ ๊ณ ๋ ค |
| ๋์ฉ๋ ์ค์ | -Xmx32g |
โข 32GB ์ด์์ ์์ถ OOP ๋นํ์ฑํ โข ๋ฉ๋ชจ๋ฆฌ ํจ์จ ์ ํ ์ฃผ์ |
remove() ํธ์ถ ํ์| GC ์๊ณ ๋ฆฌ์ฆ | ๊ถ์ฅ ์ต์ | ์ ์ฉ ์๋๋ฆฌ์ค |
|---|---|---|
| G1GC | -XX:+UseG1GC-XX:MaxGCPauseMillis=200 |
โข ์ผ๋ฐ์ ์ธ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์
โข 4GB ์ด์ Heap |
| ZGC | -XX:+UseZGC-XX:ConcGCThreads=4 |
โข ์ด์ ์ง์ฐ ์๊ตฌ์ฌํญ โข ๋์ฉ๋ Heap (์์ญ GB ์ด์) |
| Parallel GC | -XX:+UseParallelGC-XX:ParallelGCThreads=8 |
โข ์ฒ๋ฆฌ๋ ์ต์ฐ์ โข ๋ฐฐ์น ์์ |
| ๋๊ตฌ | ์ฌ์ฉ๋ฒ | ์ฃผ์ ๊ธฐ๋ฅ |
|---|---|---|
| Heap Dump | jmap -dump:format=b,file=heap.hprof <PID> |
โข ๋ฉ๋ชจ๋ฆฌ ์ค๋
์ท ์์ฑ โข ์ฌํ ๋ถ์์ฉ |
| MAT | Leak Suspects Report ์คํ | โข ๋์ ์์ฌ ๊ฐ์ฒด ์๋ ํ์ง โข Dominator Tree ๋ถ์ |
| VisualVM | ์ค์๊ฐ ๋ชจ๋ํฐ๋ง | โข CPU/Memory ํ๋กํ์ผ๋ง โข ์ค์๊ฐ GC ํ๋ ์ถ์ |
| APM ๋๊ตฌ | Pinpoint, Datadog ๋ฑ | โข ์ฅ๊ธฐ๊ฐ ์ถ์ด ๋ถ์ โข ์๋ฆผ ์๋ํ |
JVM ๊ตฌ์กฐ์ GC ์๋ฆฌ๋ฅผ ์ดํดํ๋ฉด, ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฑ๋ฅ๊ณผ ์์ ์ฑ์ ํ ๋จ๊ณ ์
๊ทธ๋ ์ด๋ํ ์ ์๋ค.
ํนํ ์๋ฒ ์ด์, ์ฅ์ ๋์, ๋์ฉ๋ ํธ๋ํฝ ์ฒ๋ฆฌ์์ GC ๋ก๊ทธ ํด์ ๋ฅ๋ ฅ์ ํ์๋ค.
Heap/GC ์ต์ ์ ์๋น์ค ํน์ฑ์ ๋ง๊ฒ ์กฐ์
GC ๋ก๊ทธ๋ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ชจ๋ํฐ๋ง
-Xlog:gc*:file=gc.log:time,uptime,level,tags:filecount=10,filesize=10MOutOfMemoryError๊ฐ ๋ฐ์ํ๋ฉด, Heap Dump ๋ถ์๊ณผ ์ฝ๋ ์ ๊ฒ์ ๋ณํ
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dumps์ด๋ ๊ฒ ์ ๋ฆฌํด๋๋ฉด, ๋์ค์ ์ค๋ฌด์์ JVM/GC ์ด์๊ฐ ํฐ์ก์ ๋ ๋นํฉํ์ง ์๊ณ ๋์ฒํ ์ ์์ ๊ฒ์ด๋ค.
GC ๋ก๊ทธ ํ ์ค ํ ์ค์ด ์๋น์ค์ ๊ฑด๊ฐ ์ํ๋ฅผ ๋งํด์ฃผ๋ ์ค์ํ ์งํ์์ ์์ง ๋ง์.