나는 taskstats 구조체의 통계가 합산되는 방법을 파악하려고합니다. IO를하고 종료하는 간단한 C 프로그램을 작성했습니다. taskstats netlink 멀티 캐스트 그룹에서 얻은 taskstats 구조체를 사용하여이 프로그램의 통계를 모니터합니다. I는 cpu_delay_total
, blkio_delay_total
, swapin_delay_total
, freepages_delay_total
, ac_utime
및 ac_stime
의 값을 합계하면, I는 경과 시간의 값보다 약 0.5 초 정도 큰 값을 얻을 여기 (ac_etime
)taskstats stats are added up
은 3.5 초 통계는 실행
ac_etime: 3536036
ac_utime: 172000
ac_stime: 3032000
cpu_delay_total: 792528445
blkio_delay_total: 46320128
swapin_delay_total: 0
etime
만 3536036
동안
, 지연 utime의 수율 및 STIME 4042848.573
(마이크로 변환 1000에 의해 지연 나누기) 값을 합산! ac_utime + ac_stime: 3204000
가 taskstats.h의 댓글이 명확하게한다고 것을에도 불구하고 cpu_run_real_total
필드, CPU 시간을주지 않지만, cpu_run_real_total: 3204000129
:
흥미롭게도, 벽 시계 시간은 + STIME을 UTIME하기 위해 실질적으로 동일 값을 제공합니다 이건 벽시계 야? 그리고 이들 필드의 합이 경과 시간보다 큰 이유는 무엇일까요?
내 커널 버전은 3.2.0-38입니다.