java memory...

26
JAVA MEMORY TROUBLESHOOTING

Upload: others

Post on 05-Nov-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

JAVA MEMORY TROUBLESHOOTING

Page 2: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

OutOfMemory의 유형

Page 3: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

진단 방법

Page 4: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

OutOfMemory – 메모리 사이즈

Page 5: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

Full GC Option - Parallel GC vs. Concurrent GC

Page 6: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

JVM GC 모니터링

• Java VM Heap 에 대한 실시간 사용 현황

Page 7: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

JVM 메모리 상황을 Byte 단위로 분석

• Java VM Heap 에 대한 실시간 사용 현황

Page 8: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

JVM GC 시간/횟수 상황을 분석

• Java VM Heap GC 현황을 실시간으로 모니터링

Page 9: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

• 현상

• java.lang.OutOfMemoryError 가 슬로우 된다

• 주된 원인

• Java heap의 사이즈가 부족하다

• 어플리케이션의 증가에 의한 heap의 고갈

• 캐쉬의 증가에 의한 heap의 고갈

• 메모리 리크가 발생하고 있다

• 네이티브메모리가 부족하다

• 물리 메모리가 부족하다

OutOfMemory 발생

Page 10: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황
Page 11: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

Garbage Collection - Recycling

goo.gl/b5NkTk

Page 12: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

Java 프로세스 메모리

Page 13: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

Java Heap Memory

Page 14: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

Java Garbage Collection

Page 15: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황
Page 16: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

JVM Heap 사용률(%) - Current

• 메모리 사용률이 평균 60% 이상 유지할 경우 히스토리 확인이 필요

Page 17: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

JVM Heap 사용률(%) - History

• 10일 이상 지속적으로 Heap 메모리가 쌓여 가는 것을 확인

Page 18: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

JVM Heap 사용률(%) – Trend 분석

• 10일 이상 지속적으로 Heap 메모리가 쌓여 가는 것을 확인

Page 19: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

JVM GC 시간 분석 - Current

• 1초 이상의 Full GC 가 발생되는 것을 확인

Page 20: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

JVM GC 시간 분석 - History

• 히스토리를 통해 GC 에 소요되는 시간이 지속적으로 증가하는 것을 확인

Page 21: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

JVM GC 시간 분석 – Trend 분석

• 트랜드 분석을 통해 Memory Leak 에 있는 것을 추측할 수 있음

Page 22: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황
Page 23: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

메모리 이슈 동영상 예제

Page 24: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

“살아 남는 종(種)은 강한 종이 아니고,

또 우수한 종도 아니다.

변화에 적응하는 종이다. ”

- Charles Darwin, 1809

Page 25: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

감사합니다.

Page 26: JAVA MEMORY TROUBLESHOOTINGopennaru.com/wp-content/uploads/2017/02/110.Java_Memory_장애패턴... · JVM 메모리상황을Byte 단위로분석 • Java VM Heap 에대한실시간사용현황

제품이나 서비스에 관한 문의

콜 센터 :02-469-5426 ( 휴대폰 : 010-2243-3394 )

전자 메일:[email protected]