Linux에서 프로세스의 시스템 CPU 시간 및 사용자 CPU 시간 계산

Linux에서 프로세스의 시스템 CPU 시간 및 사용자 CPU 시간 계산

.NET Framework에 존재하는 통계를 이용하여 시스템 모드와 사용자 모드에서 특정 프로세스의 CPU 시간 소비를 계산하고 싶습니다 /proc/<PID>.

파일에는 utime과 stime이라는 두 개의 필드가 있으며 /proc/<PID>/stat해당 문서에는 다음과 같이 나와 있습니다.

  • utime: 이 프로세스가 사용자 모드에서 예약된 시간
  • stime: 프로세스가 커널(시스템) 모드에서 예약된 시간

다음 공식을 사용하여 시스템 모드에서 CPU 시간 소비를 초 단위로 계산합니다. (stime / 시계 틱 수) 사용자 모드에서 CPU 시간 소비에 대해 다음 공식을 사용합니다. (utime/클럭 틱 수)

atop시스템 및 사용자 CPU 시간에 대한 명령 출력을 확인했지만 계산이 잘못되었습니다.

노트:프로세스의 시스템 및 사용자 CPU 시간에 대해 잘못된 필드를 평가하고 있다면 알려주십시오. 아니면 올바른 계산 방법은 무엇입니까?

PS utime 및 stime은 CPU 클럭 틱으로 표시되므로 시스템 CPU 시간과 사용자 CPU 시간을 초 단위로 계산하기 위해 이 필드를 초당 클럭 틱 수로 나누었습니다.

관련 정보