私が見ている問題は、私が実行しているほとんどすべてのコマンドで発生します。
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ミリ秒であることを示します。 。
これらの列は、直接関連していないさまざまな項目を測定します。