๐จ๊ฐ์
์ฌ๋ด์์ ์ด์ ์ค์ธ ํน์ API(tomcat๊ธฐ๋ฐ APP)์ JVM Heap ์ฌ์ฉ๋ฅ ์ด ์ง์์ ์ผ๋ก 70%-80% ์ด์ ์ ์ง๋๋ฉฐ ์ฑ๋ฅ ์ ํ ๊ฐ๋ฅ์ฑ์ด ํ์ธ๋์์ต๋๋ค. ์ด์ ๋ฐ๋ผ Heap ์ฆ์ค ๋ฐ ๋ฉ๋ชจ๋ฆฌ ๋์(Memory Leak) ์ฌ๋ถ๋ฅผ ํฌํจํ ๋ถ์์ ์ํํ์ต๋๋ค.
๐ ๏ธ ์ด์ ์ฌํญ
- 4์ ์ค์:
- JVM๋ชจ๋ํฐ๋ง ์์ ํ ์ด์ ๋์๋ณด๋์์ JVM Heap ์ฌ์ฉ๋ฅ ์ด 80% ์ด์์ผ๋ก ๊พธ์คํ ์ ์ง๋จ์ ๊ฐ์ง
- ์ด๊ธฐ ๋์์ผ๋ก ๊ฐ๋ฐ์์ ๋ ผ์ ํ API JVM Heap ์ฌ์ด์ฆ๋ฅผ 1GB → 2GB๋ก ์ฆ์ค
- 5์ ์ด:
- ๋์ผ API์์ ๋ค์ Heap ์ฌ์ฉ๋ฅ ์ด 80% ์ด์ ์ ์ ๋จ
- Heap ์ฆ๊ฐ ํจํด์ด ๋์ผ API์์ ๋ฐ๋ณต๋จ์ ๋ฐ๋ผ GC ๋ฐ Heap ์ฌ์ฉ ๋ถ์ ์งํ
๐ ์์ธ ๋ถ์
1. JVM ๋ด๋ถ ์งํ ๋ถ์
- Memory Pool ๋ณ ์ฌ์ฉ๋ฅ ํ์ธ ๊ฒฐ๊ณผ,
→ PS Old Gen ์์ญ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๊ณ์์ ์ผ๋ก ์ฐ์ํฅ (์ฆ๊ฐ-ํ๊ธฐ์ด๋ฏธ์ง์ฐธ๊ณ )
→ Full GC ์ดํ์๋ ์ถฉ๋ถํ ํ์๋์ง ์๋ ํจํด ํ์ธ - ์ด๋ ๊ฐ์ฒด๊ฐ ์ฅ๊ธฐ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ๋จธ๋ฌด๋ ํ์์ ์๋ฏธํ๋ฉฐ, Memory Leak ๊ฐ๋ฅ์ฑ์ผ๋ก ์ถ์
2. Heap Dump ๋ถ์
- ๋์ ํ๋ก์ธ์ค์์ heap dump ์ํ
โป -live ์ต์ ์ ํ์ฌ GC ํ ์์กด ๊ฐ์ฒด๋ง ๋คํํ๋ฉฐ, ๋ด๋ถ์ ์ผ๋ก Full GC๋ฅผ ํธ๋ฆฌ๊ฑฐ - ๋ช ๋ น์ด : jmap -dump:live,format=b,file=heap_0513.hprof < tomcat PID>
- Eclipse Memory Analyzer Tool(MAT)๋ก ๋ถ์ ๊ฒฐ๊ณผ:
- Problem 1: MySQL Connector ๊ด๋ จ ๊ฐ์ฒด๊ฐ ํด์ ๋์ง ์๊ณ ๊ณ์ ์ ์ง
- Problem 2: SSL Handshake ๊ฐ์ฒด๊ฐ ๋์ ๋์ด ์๋ฉธ๋์ง ์์
- Problem 1: MySQL Connector ๊ด๋ จ ๊ฐ์ฒด๊ฐ ํด์ ๋์ง ์๊ณ ๊ณ์ ์ ์ง
- ํด๋น ๋์ ๊ฐ์ฒด๋ค์ Retained Size๋ฅผ ๋ถ์ํ ๊ฒฐ๊ณผ:
- ์ด ์ฝ 200MB ์์ค์ ๋ฉ๋ชจ๋ฆฌ ๋์ ํ์ธ
- ์ ์ฒด Heap ๋๋น ์๊ท๋ชจ์ด๋, FullGC ํธ๋ฆฌ๊ฑฐ ์ดํ์ด๊ธฐ์, ๋์ ์ OutOfMemoryError ๊ฐ๋ฅ์ฑ ์กด์ฌ
3. ๋์ ๊ท๋ชจ ํ๋จ ๊ด๋ จ ์ ์์ฌํญ
- jmap -dump:live๋ GC ํ ์์กด ๊ฐ์ฒด๋ง ๋คํํ๋ฏ๋ก,
→ ์ค์ ๋ก๋ GC์ ์ํด ์๋ฉธ๋ ์ผ๋ถ ๊ฐ์ฒด๊ฐ ๋๋ฝ๋ ์ ์์
→ ๋ฐ๋ผ์ ์ค์ ๋์ ๊ท๋ชจ๋ณด๋ค ์๊ฒ ์ง๊ณ๋ ๊ฐ๋ฅ์ฑ ์กด์ฌ
→ ์ถํ heapdump ์งํ์์๋ live ์ต์ ์ ์ธ
โ ์กฐ์น ๋ด์ฉ
- ๊ฐ๋ฐํ์ Problem 1,2 ๊ด๋ จ ๋ฉ๋ชจ๋ฆฌ ๋์ ๊ณต์ ๋ฐ ์์ ์์ฒญ
- MySQL Connector ์ฌ์ฌ์ฉ ๋ฐฉ์ ์ ๊ฒ
- SSL Handshake ๊ฐ์ฒด ์ฌ์ฌ์ฉ ๋๋ ํด์ ๋ก์ง ์ ์ฉ
- ๋ชจ๋ํฐ๋ง ํญ๋ชฉ ์ถ๊ฐ
- PS Old Gen ์ฌ์ฉ๋ฅ ๋ณ๋ ๋์๋ณด๋ํ
- Heap ์ฌ์ฉ๋ ๋ฐ GC ๋ฐ์ ๊ฐ๊ฒฉ ์ถ์ด ์ฃผ๊ธฐ์ ๋ถ์
- ํฅํ ๋์ ๊ณํ
- ์ฃผ๊ธฐ์ HeapDump ์ค์ผ์ค๋ง์ ํตํ ๋์ ํจํด ์กฐ๊ธฐ ํ์ง
- GC ๋ก๊ทธ ๊ธฐ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ฆ๊ฐ ํจํด ์์ง ๋ฐ ์๋ ์๋ฆผ ์ค์
'System > Tomcat' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Tomcat] OutOfMemoryError: unable to create new native thread (0) | 2025.04.01 |
---|---|
[Tomcat]tomcat ๊ธฐ๋ณธ ์๋ฌ ํ์ด์ง ๋ฐํ (0) | 2024.04.24 |