반응형
DummyData
@ToString
@Getter
@AllArgsConstructor
public class DummyData {
private int number;
private String name;
}
OomController
@Slf4j
@RestController
public class OomController {
@GetMapping("/api/oom")
public String oom() {
List list = new ArrayList<>();
while (list.size() < Integer.MAX_VALUE) {
DummyData dummyData = new DummyData(list.size(), "test" + list.size());
log.info("dummyData : {}", dummyData);
list.add(dummyData);
}
return "oom!!";
}
}
실행
- 서버에 올린 후 실행
- /api/oom 경로로 접속해 과도한 메모리 사용을 유발
Heap Dump
APP_PID=`jps | grep example.jar | awk '{print $1}'` \
&& jmap -dump:live,format=b,file=heap-dump.bin $APP_PID
Eclipse Memory Analyzer 설치
- 다운로드
- 압축 해제 후 실행
Eclipse Memoery Analyzer로 분석
- File > Open Heap Dump > heap-dump.bin 파일 선택
- Dominator Tree 클릭
- 메모리 점유율이 많은 객체 위주로 확인
참고
반응형
'Development > Java' 카테고리의 다른 글
[Java] Regular Expression (0) | 2020.12.28 |
---|---|
[Java] Thread Dump (0) | 2020.12.28 |
[Java] 명령어 (0) | 2020.12.28 |
[Java] Selenium (0) | 2020.12.28 |
[Java] Apache HttpClient (0) | 2020.12.28 |