Back

시스템 명령어로 도커 컨테이너의 리소스 사용 정보 구하기

계피러버 2024. 2. 28. 11:08

docker stats 명령어 

Docker 컨테이너의 리소스 사용량에 대한 실시간 통계를 제공

실시간으로 변화하는  CPU 사용량, 메모리 사용량, 네트워크 I/O, 디스크 I/O 표시

각 수치는 사용자가 보기 편하도록 적절한 단위로 환산되어 표시됨

 

--no-stream 옵션을 추가할 경우 

명령어를 실행한 시점의 통계만 출력하고 종료

 

사용 예시

$ docker stats [CONTAINER ID 또는 CONTAINER NAME] --no-stream
CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O         PIDS
ab0ter904kl432   myContainer 33.15%   9.352GiB / 352.1GiB    0.13%   4.3GB / 1.3GB  3.1kB / 66.2GB      294

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------

df 명령어 

파일 시스템의 이름, 전체 용량, 사용 중인 용량, 사용 가능한 용량, 사용률 및 마운트 위치 등의 정보 표시 

 

-B 1 옵션

파일 시스템의 디스크 사용량을 바이트 단위로 출력하는 옵션

 

사용 예시 

$ df -B 1

Filesystem             1B-blocks         Used     Available Use% Mounted on
/dev/sda1      104857600000000000 20000000000  80000000000  21% /
tmpfs            1048576000000000        4000   1048572000   1% /dev/shm
/dev/sdb1      104857600000000000  1200000000  98000000000   2% /mnt/data

 

 

df -B 1명령어를 특정 도커 컨테이너에 대해 실행하려면 아래 명령어를 사용

docker exec -t 명령어

실행 중인 Docker 컨테이너 내에서 특정 명령을 실행

-t 옵션 :  터미널(TTY)를 할당하여 컨테이너 내부에서 실행하는 명령에 대해 사용자 입력을 받거나 출력을 표시할 수 있음

 

사용 예시

$ docker exec -t [CONTAINER ID 또는 CONTAINER NAME] df -B 1 

 

total 값 구하기 

$ docker exec -t [CONTAINER ID 또는 CONTAINER NAME]  df -B 1 --total | awk '/total/'

total                             1178074583240 863442963139 314631620101 % -

---------------------------------------------------------------------------------------------------------------------------------------------------------------

nproc 명령어

시스템에서 사용 가능한 프로세서(CPU 코어) 수 출력

 

도커 컨테이너에서 사용 가능한 프로세서 수

$ docker exec [CONTAINER ID 또는 CONTAINER NAME] nproc

32

 

32코어일 경우 0~31 번째 CPU 중 컨테이너에서 사용할 CPU 를 지정할 수 있음

$ docker update --cpuset-cpus=0,1,4 [CONTAINER ID 또는 CONTAINER NAME] 

-> 1, 2, 5번째 CPU 를 사용하겠다고 지정

 

위 명령어 실행 후 사용 가능한 프로세서 출력 결과 예시

$ docker exec [CONTAINER ID 또는 CONTAINER NAME] nproc

3