프로세스에 필요한 I/O 양을 어떻게 알 수 있나요?

프로세스에 필요한 I/O 양을 어떻게 알 수 있나요?

IO 바인딩 프로세스가 있습니다.

my_username@GPU8:~$ ps -U my_username -u
USER        PID    %CPU %MEM    VSZ   RSS      TTY      STAT START   TIME COMMAND
my_username 151348 12.7 52.4 47051296 34544380 pts/16   DNl+ 11:38  15:27 python my_py.py

시스템에 다른 사용자의 다른 IO 바인딩 프로세스가 있습니다.

알고 있지만 iotop루트 액세스 권한이 필요하지만 나에게는 없습니다.

내 프로그램이 기다리고 있는 리소스의 양(용량 대비)을 어떻게 알 수 있나요? 본질적으로 프로그램이 다시 실행될 때까지의 예상 대기 시간을 찾고 있습니다.

답변1

하지만 루트 액세스 권한이 필요하지만 나에게는 권한이 없습니다.

전체 시스템 성능이나 동작에 영향을 미치는 개입에 대한 자세한 이해에도 루트 액세스가 필요합니다. 무엇을 달성하고 싶나요?

내 프로그램이 다시 실행될 때까지의 예상 대기 시간입니다.

그래서 몇 번 실행했는데 ps매번 중단되지 않은 절전 상태인 것을 볼 때마다 항상 이 상태였다는 결론이 나오나요? 그렇다면 논리에 문제가 있는 것입니다.

언제 완료될지 추측할 수 없습니다. 우리는 귀하의 프로그램이 무엇을 하는지 알 수 없을 뿐만 아니라, 시스템의 다른 모든 것이 무엇을 하고 있는지도 모르고, 저장소의 기능이 무엇인지도 모릅니다. 이렇게 하더라도 활용도와 같은 측정은 다소 오해의 소지가 있을 수 있습니다.

IO 바인딩된 경우 커널에서 사용되는 시간은 호출당 RR_TIMESLICE(100ms)보다 훨씬 짧을 수 있습니다. 대기열의 맨 위에 도달하는 빈도는 동시에 실행할 수 있는 프로세스 수에 따라 달라집니다. 그러나 대부분의 다른 프로세스도 IO 바인딩된 경우 프로세스가 실행 가능하지만 아직 CPU에서는 실행되지 않는 짧은 시간이 있을 수 있습니다.

관련 정보