본문 바로가기
Engineering/스크랩

[스크랩] docker API를 활용하여 docker container별 memory 정보 가져오기

by 알탱2 2022. 3. 13.
반응형

스크랩 포스트 링크 : 

https://tifferent.tistory.com/37

 

Docker Remote API를 사용하여 원격 Docker 정보 얻어오기

'docker ps' 라는 Docker 명령은 Local에 존재하는 Docker System에서만 유효한 명령어이다. 오늘의 도전 과제 원격지의 'docker ps' 결과 얻어오기 우선 docker service 를 설치하면 기본적으로 unix socket 을..

tifferent.tistory.com

 

docker container로 실행하는 application의 memory 사용량을 추출하기 위해 예전에는 docker stats 명령어로 정보를 획득 하였으나, docker 버전 19.04 이후에서는 MEM_USED 에 cache 용량이 포함되어 실제 RSS 사용량만 추출할 수 없었다. 실제 memory leak이 없었음에도 docker stats 을 기반으로 memory 그래프를 그려보니 leak을 의심했던 경험이 있었다;;

결론은 docker 에서 제공하는 API를 통해 RSS 정보만 추출이 가능하고, 해당 값을 추출하여 memory leak 여부를 확인해야한다.

 

상세한 API 정보는 위 스크랩 포스팅에 잘 기재되어 있으니 참고 하기로 하고, 추가로 docker 데몬의 IP, Port를 별도 설정하지 않은 상황에서는 아래의 unix socket으로 요청하여 데이터를 얻어낼 수 있다.

curl --unix-socket /var/run/docker.sock "http://localhost/containers/{container_id}/stats?stream=false"

 

** docker unix socket 위치 확인 : 

netstat -anp | grep docker.sock
반응형

댓글