perf sched レコードに表示される列の値は意味がありません。

perf sched レコードに表示される列の値は意味がありません。

私が見ている問題は、私が実行しているほとんどすべてのコマンドで発生します。

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がlsCPU(実際に実行中)で合計4.934msを消費し、75回切り替えられ、平均および最大予約待ち時間(プロセスを実行するために起きた後の実際のコンテキスト切り替え間の時間)が0.007ミリ秒と0.061ミリ秒であることを示します。 。

これらの列は、直接関連していないさまざまな項目を測定します。

関連情報