코딩

우분투 서버에서 특정 GPU를 사용하고 있는 컨테이너를 찾아내는 방법

NGC3132 2023. 4. 18. 10:01

 

nvidia-smi

 

보통 nvidia-smi 를 사용하면 다음과 같은 화면이 나온다.

 

현재 GPU가 0 / 1 / 2 / 3 총 4개가 있는 것을 알 수 있고, 실행 중인 프로세스는 0번 GPU에 2개, 3번 GPU에 1개가 있는 것을 알 수 있다.

 

현재 이 서버는 도커를 기반으로 사용자가 각자 컨테이너에서 작업하고, GPU를 사용하도록 구성되어 있다.

그렇다면 0번 GPU에서 3824MB 메모리를 사용하고 있는 사용자를, 컨테이너를 찾아내 알아보자.

 

 

pstree

우선 이 프로세스의 PID는 '349842'이다. 이를 이용하여 찾아볼 것인데, 기본적으로 'pstree' 명령어를 이용할 것이다.

pstree -aps 349842 | grep id

다음과 같은 명령어를 사용하게 되면 

다음과 같은 줄이 나오는데, 여기서 주목해야 할 곳은 'id' 뒤의 숫자이다. 

이 숫자가 바로 container id이다.

 

따라서, container id의 앞부분만 조금 가져와 docker ps에서 grep을 하게 되면,

 

docker ps

docker ps | grep 33839

다음과 같이 container id에 33839가 들어간 container의 이름을 찾을 수 있다!

 

예시로 사용한 서버에서는 container 이름에 사용자 이름을 넣도록 규칙을 정했기 때문에, 어떤 사람이 GPU를 사용하고 있는지 확실히 알 수 있다.