Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

30.6.4. Bottlenecks の特定

VDO パフォーマンスに影響する重要な要因や、最も大きな影響がある識別に利用できる多くのツールがあります。
topps などのユーティリティーで表示される 70% を超えるスレッドまたは CPU 使用率は、1 つのスレッドまたは 1 つの CPU で連続した作業が多すぎることを意味します。ただし、場合によっては、VDO スレッドが CPU 上で実行するようにスケジュールされているものの、実際には発生していないことを意味します。このシナリオは、過剰なハードウェア割り込みハンドラー処理、コアまたは NUMA ノード間のメモリー競合、またはスピンロックの競合が発生する可能性があることを意味します。
top ユーティリティーを使用してシステムパフォーマンスを調べる場合は、Red Hat は、すべてのプロセス スレッドを個別に表示し、1 f j キーを入力してから Enter/Return キーを入力します。top コマンドは個々の CPU コアの負荷を表示し、各プロセスまたはスレッドが最後に実行された CPU を特定します。この情報は、以下の洞察を提供します。
  • コアが %id (idle)および %wa (waiting-for-I/O)の値が低い場合、一部の種類の作業でビジー状態が生じます。
  • コア %hi の値が非常に低い場合、そのコアは通常の処理作業を実行します。これは、カーネルスケジューラーによって負荷分散されます。このセットにコアをさらに追加すると、NUMA 競合が発生しない限り、負荷が軽減される可能性があります。
  • コア %hi がいくつかのパーセントを超えており、1 つのスレッドのみがそのコアに割り当てられる場合、% id%wa がゼロの場合、コアは過剰に分類され、スケジューラーは状況に対処されません。この場合、別のコアにカーネルスレッドまたはデバイス割り込み処理を維持するよう再割り当てする必要があります。
perf ユーティリティーは、多くの CPU のパフォーマンスカウンターを検査できます。Red Hat は、perf top サブコマンドを出発点として使用して、ワークスレッドまたはプロセッサーを調べることが推奨されています。たとえば、bioQ スレッドは、スピンロックの取得を試行する多くのサイクルを費やしているので、VDO の下のデバイスドライバーで競合が多すぎる可能性があり、bioQ スレッドの数を下げると状況が損なわれる可能性があります。CPU の使用率が高い使用(エクスピンスロックまたは別の場合)は、NUMA ノード間の競合を示すこともできます。たとえば、bioQ スレッドとデバイス割り込みハンドラーが異なるノードで実行されている可能性があります。プロセッサーがサポートしている場合は、stalled -cycles-backendcache-missesnode-load-misses などのカウンターに関心があります。
sar ユーティリティーは、複数のシステム統計で定期的なレポートを提供できます。sar -d 1 コマンドは、ブロックデバイスの使用状況レベル(進行中の I/O 操作の回数が 1 つ以上ある)とキューの長さ(I/O 要求の数)を 1 回ずつ報告します。ただし、すべてのブロックデバイスドライバーがそのような情報を報告できるわけではないので、使用するデバイスドライバーによっては、sar 有用性 がある場合があります。