(+) VisualVM
์์ ์ ์์ ์ถ์ถ์ ํ๋ค๊ฐ ๊ด๋ฆฌ์๊ฐ oom์ผ๋ก ์๊พธ ๋ด๋ ค๊ฐ์ ๊ทธ๊ฑธ ๊ฐ์ ํด์ผ ํ์๋ ์ ์ด ์๋ค. ํด๊ฒฐ์ ํ๊ธฐ ์ํด์ ์์ธ์ ๋จผ์ ์ฐพ์๋ณด๋ ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์์ ์ ์ถ์ถํ๋ ๊ณผ์ ์์ row ๋ค์ ์์ ์ ์ ํ๋๊ณ ๋ญ๊ฐ ์ฌ์ฒ๋ฆฌ๋ฅผ ์ํด์ ์ ๊ทผ์ ํ ์ ์๋๋ก ๋ฉ๋ชจ๋ฆฌ ์์ ๊ณ์ ๊ฐ์ง๊ณ ์๋ ๋ฐ, ์ด ๋จ์์๊ฐ ๋์์ง์๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ๊ฒ์ด์๋ค.
๊ทธ๋์ row ์ ๋ํ ์ฌ์ ๊ทผ์ ํฌ๊ธฐํ๊ณ ๋ณด๊ดํ๋ row๋ฅผ ์ค์ด๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ค์ด๋ค ๊ฒ์ผ๋ก ์ถ์ธก๋์ด์ ์ฝ๋๋ฅผ ๊ทธ๋ ๊ฒ ๋ฐ๊ฟจ๋๋ฐ, ๋ฌธ์ ๋ ์ค์ ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๊ฒ ์ฐ๋์ง๋ฅผ ์ ์ ์์๋ค.
๊ทธ๋ ์ฌ์ฉํ๊ฒ VisualVM ์ธ๋ฐ ์ฌ๋ฌ ์ฉ๋๊ฐ ์๋ค.
๋ชจ๋ํฐ๋ง: VisualVM์ JVM์์ ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค. CPU ์ฌ์ฉ๋, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, ์ค๋ ๋ ์ํ, ๊ฐ๋น์ง ์ปฌ๋ ์ (Garbage Collection) ๋ฑ์ ์ค์๊ฐ์ผ๋ก ๋ชจ๋ํฐ๋งํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ๊ณผ ๋ฆฌ์์ค ์ฌ์ฉ์ ํ์ ํ ์ ์์ต๋๋ค.
ํ๋กํ์ผ๋ง: VisualVM์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํ ์๊ฐ ๋์์ ์ฑ๋ฅ ํ๋กํ์ผ๋ง์ ์ ๊ณตํฉ๋๋ค. CPU ์ฌ์ฉ๋์ด๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋์ ๋ถ๋ถ์ ์๋ณํ๊ณ , ์ฑ๋ฅ ์ ํ์ ์์ธ์ ๋ถ์ํ ์ ์์ต๋๋ค. ํ๋กํ์ผ๋ง ๊ฒฐ๊ณผ๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณ๋ชฉ ํ์์ ์ฐพ๊ณ ์ต์ ํํ ์ ์์ต๋๋ค.
์ค๋ ๋ ๋ถ์: VisualVM์ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์ ์ค๋ ๋ ์ํ๋ฅผ ๋ถ์ํ ์ ์์ต๋๋ค. ์ค๋ ๋ ๋คํ(Thread Dump)๋ฅผ ํตํด ๋ฐ๋๋ฝ(Deadlock)์ด๋ ์ค๋ ๋ ์ฐจ๋จ(Thread Blocking) ๋ฑ์ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ํด๊ฒฐํ ์ ์์ต๋๋ค.
ํ ๋คํ ๋ถ์: VisualVM์ ํ ๋คํ(Heap Dump)๋ฅผ ์์ฑํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ํ๋ฅผ ๋ถ์ํ ์ ์์ต๋๋ค. ๊ฐ์ฒด์ ์, ๋ฉ๋ชจ๋ฆฌ ๋์(Memory Leak), ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ํจ์จ ๋ฑ์ ๋ถ์ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ จ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
๊ทธ ๋ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์๋ฒ์ ํ ์ฉ๋์ ์๋์ ์ผ๋ก ์ ๊ฒ ๋์์ ๋์ผํ ์์ฒญ์ผ๋ก ๊ธฐ์กด ์ฝ๋, ์๋ก์ด ์ฝ๋์ ์์ฒญํ๋ฉด์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ณด๋ฉด์ ํด๊ฒฐํ๋ค. ๊ฐ์ ๋ ์ฝ๋์์ ์ค์ ๋ก ํ ์ฌ์ฉ๋์ ์ฆ๊ฐํญ์ด ์ ์๋ค.
๊ฐ์ ๋ ์ฝ๋๋ก ํ ์คํธ๋ฅผ ํด๋ณด๊ณ 'oom์ด ์๋๋๊ตฌ๋, ๊ฐ์ ๋๊ฑฐ๊ตฌ๋' ํ๊ณ ๋ฌด์์ ๋ฐ์ํ๊ธฐ ๋ณด๋ค๋ ์ค์ ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ '์ด๋ ๊ฒ ๊ฐ์ ๋์๋ค' ๋ผ๊ณ ์ ํํ๊ฒ ๊ทผ๊ฑฐ๋ฅผ ํตํด ํ๋จํ๋๊ฒ ๋ง๋ค.
Last updated