내가 보고 있는 문제는 내가 실행하는 거의 모든 명령에서 발생합니다.
perf sched record
아주 간단한 예로 ls를 사용하겠습니다. 그래서 만약 내가 그렇게 한다면
perf sched record ls
이어서
perf sched latency
스케줄러 출력은 다음과 같습니다
perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 1.610 MB perf.data (772 samples) ]
-------------------------------------------------------------------------------------
Task | Runtime ms | Switches | Average delay ms | Maximum delay
-------------------------------------------------------------------------------------
kworker/u640:1:142368 | 0.064 ms | 1 | avg: 0.058 ms | max: 0.058
kworker/75:5:47904 | 0.031 ms | 1 | avg: 0.019 ms | max: 0.019
kworker/7:1:238110 | 0.020 ms | 1 | avg: 0.012 ms | max: 0.012
VM Periodic Tas:6310 | 0.031 ms | 1 | avg: 0.009 ms | max: 0.009
kworker/u640:2:216354 | 0.026 ms | 1 | avg: 0.009 ms | max: 0.009
watchdog/62:321 | 0.000 ms | 1 | avg: 0.008 ms | max: 0.008
ls:239340 | 4.934 ms | 75 | avg: 0.007 ms | max: 0.061
migration/7:47 | 0.000 ms | 1 | avg: 0.006 ms | max: 0.006
dsm_sa_datamgrd:13605 | 0.140 ms | 4 | avg: 0.006 ms | max: 0.008
rcu_sched:9 | 0.326 ms | 7 | avg: 0.005 ms | max: 0.007
sshd:191486 | 1.122 ms | 32 | avg: 0.004 ms | max: 0.051
postgres:(16) | 0.381 ms | 9 | avg: 0.004 ms | max: 0.009
kworker/4:2:238454 | 0.668 ms | 73 | avg: 0.003 ms | max: 0.022
perf:239339 | 49.838 ms | 1 | avg: 0.002 ms | max: 0.002
xfsaild/dm-0:1294 | 0.023 ms | 1 | avg: 0.000 ms | max: 0.000
watchdog/61:316 | 0.000 ms | 1 | avg: 0.000 ms | max: 0.000
watchdog/60:311 | 0.000 ms | 1 | avg: 0.000 ms | max: 0.000
watchdog/59:306 | 0.000 ms | 1 | avg: 0.000 ms | max: 0.000
watchdog/58:301 | 0.000 ms | 1 | avg: 0.000 ms | max: 0.000
-------------------------------------------------------------------------------------
TOTAL: | 57.604 ms | 213 |
---------------------------------------------------
"런타임 밀리초"는 "스위치" * "평균 대기 시간 밀리초"와 같아야 한다고 예상했지만 모든 경우에 "런타임 밀리초"는 "스위치" * "평균 대기 시간 밀리초"보다 훨씬 큽니다.
예를 들어 ls:239340은 평균 대기 시간이 0.007밀리초로 75번 전환됩니다. 0.007*75 = 4.934가 아닌 0.525를 곱하세요. 그래서 뭔가 잘못되었습니다.
뭔가 빠진 것이 없다면 "perf sched Record" 출력은 매우 잘못된 것입니다.
답변1
ls:239340 | 4.934 ms | 75 | avg: 0.007 ms | max: 0.061
실행 중인 프로세스 239340이 ls
CPU(실제로 실행 중)에서 총 4.934ms를 소비했으며 75번 전환되었으며 평균 및 최대 예약 대기 시간(프로세스를 실행하기 위해 깨어난 후 실제 컨텍스트 전환 사이의 시간)이 0.007밀리초와 0.061밀리초임을 나타냅니다. .
이러한 열은 직접적으로 관련되지 않은 다양한 항목을 측정합니다.