서버 메모리 최적화를 해보자 -(1)서버 모니터링 시스템을 만들자

Alex·2025년 1월 30일
1

Plaything

목록 보기
96/118
free -h

스프링 서버가 메모리를 많이 잡아먹긴하지만 상당히 많이 쓰고 있다.

어떤 부분에서 메모리 사용이 많은 건지 확인해보기 위해서
VisualVM을 로컬에 띄운 뒤 원격으로 모니터링 연결을 해보기로 했다.

이를 위해서 우선 AWS에서 8500 인바운드 포트를 열어준다.

jar 파일을 실행할 때

java -Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.port=8500 \
-Dcom.sun.management.jmxremote.rmi.port=8500 \
-Djava.rmi.server.hostname=ip주소\  //여기에 http나 hptts/ 같은 프로토콜 붙이지 말고 ip만넣어야 한다.
-jar jar파일

이렇게 실행한 뒤에 visualvm을 켜서

host name에 ip 주소를 입력해주면 된다.
그리고 밑에 뜨는 커넥션을 연결하면서 포트번호만 입력해주면 된다.


sampler른 루른 뒤 memory 샘플링을 해준다.


솔직히 이것만 보고선 뭐가 문젠지 파악하기 어렵다.

heap dump 파일을 만들고서

scp -i key.pem ubuntu@ip주소:/tmp/heapdump-1738245641018.hprof 경로 주소

이렇게 해서 내 로컬로 파일을 가져오기로 했다.

이것만 보고서는 아직 왜 메모리 사용량이 높은지 알기 어렵다. 다음편에 한번 api를 호출해보면서 확인해보자.

profile
답을 찾기 위해서 노력하는 사람

0개의 댓글