web-dev-qa-db-ja.com

統計:CPU時間と経過時間。より重要なことは何ですか?

パフォーマンスを調整する場合、より重要なことは次のとおりです。

  • CPU時間または経過時間?
  • それらの1つが他よりも重要であるシナリオはありますか?

例:パフォーマンスのチューニング中にCPU時間はreduceが約38%になりますが、経過時間increasesは約22%になります。これは改善ですか?

9
EnterTheCode

CPU時間は、プロセスが使用したプロセッサ時間の量です。これはdurationを示すものではありません。 「経過時間」は、タスクの合計期間を表します。特定のタスクが8の並列処理(つまり、8スレッド)を使用し、各スレッドがタスクの期間全体にわたって100%の割合で使用される場合、CPU時間は8000ミリ秒、経過時間は1000ミリ秒にすぎません。

したがって、「経過時間」が短いほど応答時間が速くなります。

CPUのプレッシャーが気になり、ユーザーエクスペリエンスを気にしない場合は、CPU時間を短くし、経過時間を長くする必要があります。

CPU使用率が高くなる代わりに、ユーザーが待機している時間が短くなる可能性があるため、経過時間が減少する場合は、より長いCPU時間を受け入れることができます。

おそらく、クエリチューニングのより重要なメトリックは 待機時間 です。

13
Max Vernon

... CPU時間のパフォーマンスチューニングでは最大38%減少しますが、経過時間は最大22%増加します。これは改善?ですか?

これは、最適化の対象とその理由に完全に依存します。 Max Vernonが彼の回答で述べたように、最も一般的な意味では-クエリ出力の速度-これは改善ではありません。

ただし、システムがCPUにバインドされている場合は、CPU負荷を減らしたため、これはwouldの改善になります。実際、これが事実である場合、最終結果は結果セットのより速いリターンも意味する可能性があります。

また、システムがディスクまたはメモリにバインドされている場合、これらの測定値が改善または低下したことを示すものがないため、これは中立的な結果になります。

したがって、95%の確率で、Maxは完全に正しいです。これは改善ではありません。残りのいくつかのケースでは、改善になる可能性があります。

4
Laughing Vergil