EC2에서 JVM Heap Dump 파일 생성

19·2024년 5월 6일
0

에러 모음

목록 보기
24/24

배경

성능을 테스트하기 위해 약 10만건의 요청을 보내봤는데, 메모리가 올라간 뒤에 내려오질 않았다.
memory leak일까 싶어서 알아보다가 알게 된 것들을 잊지 않기 위해 메모

내가 한 방법

  1. 메모리가 튀고 있는 EC2에 접속해서 heap 메모리의 상황을 확인할 수 있는 heap dump 파일을 생성
  2. 로컬로 옮긴다
  3. Eclips의 Memory Analyzer를 사용해 분석

  1. Memory Leak이 의심되었기 때문에, 메모리가 튀어 올라가는 상태에서 heap dump 파일을 생성했다
    • ec2 접속
      sudo ssh -i [*.pem] ec2-user@[ec2 ip]
    • 동작중인 어플리케이션의 프로세스를 확인
      ps -ef | grep java
    • heap dump 파일 생성
      sudo jmap -dump:format=b,file=[파일명].hprof [프로세스 ID]
  2. EC2에 생성한 heap dump 파일을 로컬로 옮긴다
    • heap dump 파일 권한 수정
      sudo chmod 777 [파일명].hprof
    • 로컬로 이동
      scp -i "[*.pem 저장 위치]" ec2-user@[ec2 ip]:[heap dump 파일 저장 위치] [로컬로 이동시킬 위치]
  3. Eclips의 Memory Analyzer 사용
  • Leak Suspects 로 들어가면, 문제가 될만한 부분을 언급해준다

  • 나의 경우엔 Memory Leak이 아니었지만, 정말 Memory Leak인 경우엔 몇백 MB, 심하게는 GB까지 리포트되는 것을 보았다
  • 이 툴을 통해 trace 해보면 좋을 것 같다

참고

heap dump 분석하기
heap dump 분석하기 (2)
EC2에서 heap dump 생성
EC2 파일 업로드 & 다운로드

profile
하나씩 차근차근

0개의 댓글