Menu Close
Settings Close

Language and Page Formatting Options

Red Hat Training

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

30.6.4. ボトルネックの特定

VDO のパフォーマンスに影響を与えるいくつかの重要な要素があり、最も影響力のあるものを特定するために利用できる多くのツールがあります。
toppsなどのユーティリティーで見られるように、スレッドまたは CPU の使用率が 70% を超える場合は、通常、1 つのスレッドまたは 1 つの CPU に多くの作業が集中していることを意味します。ただし、場合によっては、VDO スレッドが CPU で実行されるようにスケジュールされていても、実際には作業が行われなかったことを意味する場合があります。このシナリオは、過度のハードウェア割り込みハンドラー処理、コアまたは NUMA ノード間のメモリー競合、またはスピンロックの競合で発生する可能性があります。
topユーティリティーを使用してシステムパフォーマンスを調べる場合、Red Hat は、top -Hを実行してすべてのプロセススレッドを個別に表示し、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 の使用率が高い場合 (スピンロックの取得など) は、たとえば、bioQ スレッドとデバイス割り込みハンドラーが異なるノードで実行されている場合、NUMA ノード間の競合を示している可能性もあります。プロセッサーが対応している場合は、stalled-cycles-backendcache-misses、および node-load-misses などのカウンターが重要になることがあります。
sar ユーティリティーは、マルチシステム統計に関する定期的なレポートを提供できます。sar -d 1 コマンドは、ブロックデバイスの使用率レベル (少なくとも 1 つの I/O 操作が進行中である割合) とキューの長さ (I/O 要求の待機数) を 1 秒に 1 回報告します。ただし、すべてのブロックデバイスドライバーがそのような情報を報告できるわけではないため、sarの有用性は、使用されているデバイスドライバーによって異なります。