존재하지 않는 프로세스가 여전히 시스템에 리소스를 할당합니까?

존재하지 않는 프로세스가 여전히 시스템에 리소스를 할당합니까?

Nvidia를 사용하여 GPU에서 프로세스를 실행하는 프로덕션 시스템(Ubuntu 18.04)이 있습니다. 특정 프로세스에 메모리가 할당되었으나 현재는 작동하지 않아 GPU를 기본적으로 사용할 수 없게 됩니다.

ps -o ppid= -p

PID=1이 내 존재하지 않는 프로세스의 상위 프로세스이므로 종료할 수 없음을 의미하는 하나를 반환합니다.

nvidia-smi는 이 프로세스에 GPU에 많은 메모리가 할당되어 있음을 보여줍니다. 그래서 내가 사용할 수 있을 것 같아

nvidia-smi --gpu-reset

리소스를 확보합니다. 하위 프로세스가 문제를 일으키나요? 할당한 리소스를 더 이상 사용할 수 없다는 것을 "볼" 수 있습니까?

본질적으로 이것은 어떤 식으로든 위험합니까?

답변1

nvidia-smi --gpu-reset을 사용하면 GPU가 재설정되고 메모리를 포함하여 존재하지 않는 프로세스에 할당된 모든 리소스가 해제됩니다. 그러나 이 명령은 GPU가 유휴 상태일 때만 사용할 수 있습니다. 즉, 다른 활성 프로세스가 GPU를 사용하고 있지 않음을 의미합니다.

GPU가 다른 활성 프로세스에서 사용되고 있는 경우 --gpu-reset 명령이 실패하거나 해당 프로세스를 종료하거나 GPU 리소스의 갑작스러운 손실로 인해 오작동을 일으키는 등 의도하지 않은 부작용이 발생할 수 있습니다.

존재하지 않는 프로세스의 부모는 PID=1이므로 더 이상 문제가 발생할 가능성은 없습니다. GPU를 재설정하면 할당된 리소스가 해제되고, 존재하지 않는 프로세스는 해당 리소스를 보거나 사용할 수 없습니다.

GPU를 적극적으로 사용하는 다른 프로세스가 없는 한 nvidia-smi --gpu-reset을 사용하는 것은 일반적으로 안전합니다. GPU를 사용하는 다른 프로세스가 있는 경우 GPU를 재설정하기 전에 해당 프로세스를 정상적으로 중지해야 합니다. 또한 GPU를 재설정한 후 시스템을 모니터링하여 예상치 못한 문제가 발생하지 않는지 확인하는 것이 좋습니다.

커널 모듈이 멈춰 GPU를 사용하는 프로세스를 종료해도 응답하지 않기 때문에 시스템이 정지되면 시스템을 다시 시작해야 하는 것이 매우 일반적입니다.

관련 정보