dev/기타

Docker Stats로 리소스 모니터링하는 방법

wndud587 2024. 10. 4. 21:50
728x90

목차

1. Docker Stats란?

2. Docker Stats 명령어의 기본 사용법

3. 특정 컨테이너 모니터링

4. 여러 컨테이너의 리소스 모니터링

5. 실시간 자동 갱신 중지 (--no-stream 옵션)

 

1. Docker Stats란?

Docker stats는 Docker 컨테이너의 실시간 리소스 사용량(CPU, 메모리, 네트워크, I/O 등)을 확인할 수 있는 유용한 명령어입니다. 이 도구는 컨테이너의 성능을 모니터링하고, 잠재적인 성능 문제를 진단하며 최적화하는 데 필수적입니다.


2. Docker Stats 명령어의 기본 사용법

docker stats 명령어는 실행 중인 모든 컨테이너의 리소스 사용량을 실시간으로 표시합니다. 이 명령어를 실행하면 표 형식으로 데이터가 주기적으로 업데이트되어, CPU 사용량, 메모리 사용량, 네트워크 트래픽 등을 쉽게 확인할 수 있습니다.

docker stats

 

docker stats

 

이 명령어를 입력하면 각 컨테이너의 리소스 사용량에 대한 정보를 실시간으로 확인할 수 있습니다.

도커 컨테이너를 하나 중지하면, 출력이 어떻게 변경되는지 확인할 수 있습니다.

출력 설명

  • CONTAINER ID: 각 컨테이너의 고유 식별자.
  • NAME: 각 컨테이너의 이름.
  • CPU %: CPU 사용량을 백분율로 표시합니다. 대부분의 컨테이너는 CPU를 거의 사용하지 않는 경우가 많습니다.
  • MEM USAGE / LIMIT: 사용 중인 메모리와 할당된 최대 메모리 용량을 나타냅니다. 예를 들어, lotto-api는 1GiB의 메모리 중 213.2MiB를 사용 중입니다.
  • MEM %: 메모리 사용량의 백분율입니다. lotto-api는 1GiB 중 20.82%를 사용하고 있습니다.
  • NET I/O: 컨테이너의 네트워크 입출력량(보낸 바이트 / 받은 바이트). 예를 들어, lotto-api는 80.1kB를 보내고, 55.2kB를 받았습니다.
  • BLOCK I/O: 디스크 입출력량(읽기 바이트 / 쓰기 바이트). 현재는 모두 0B로 나타나 블록 입출력이 발생하지 않은 상태입니다.
  • PIDS: 각 컨테이너 내에서 실행 중인 프로세스의 수를 나타냅니다. 예를 들어, lotto-api에는 35개의 프로세스가 실행 중입니다.

3. 특정 컨테이너 모니터링

특정 컨테이너의 리소스 사용량을 모니터링하려면, 해당 컨테이너의 이름이나 ID를 명시하여 명령어를 실행합니다. 이렇게 하면 원하는 컨테이너에 대한 자세한 정보를 얻을 수 있습니다.

docker stats lotto-api

 

docker stats {containerId}

 


4. 여러 컨테이너의 리소스 모니터링

여러 컨테이너를 동시에 모니터링하려면, 각 컨테이너의 이름이나 ID를 공백으로 구분하여 나열하면 됩니다. 이를 통해 여러 컨테이너의 리소스 사용량을 한 화면에서 관리할 수 있습니다.

docker stats lotto-api lotto-batch

docker stats {containerId} {containerId}

 

 


5. 실시간 자동 갱신 중지 (--no-stream 옵션)

기본적으로 docker stats 명령어는 실시간으로 정보를 갱신합니다. 만약 자동 갱신을 중지하고 한 번의 스냅샷만 보려면 --no-stream 옵션을 사용할 수 있습니다.

docker stats --no-stream

이렇게 하면 현재의 리소스 사용량을 한 번만 표시하고, 이후에는 갱신되지 않습니다.

 

docker stats --no-stream

 

 

 

 

 

 

* 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

728x90