5.2. パフォーマンスのボトルネックの特定
VDO パフォーマンスのボトルネックを特定することは、システム効率を最適化するために重要です。実行できる主要な手順の 1 つは、ボトルネックが CPU、メモリー、バッキングストレージの速度のうちどこにあるのかを判断することです。最も遅いコンポーネントを特定したら、パフォーマンスを向上させる戦略を立てることができます。
パフォーマンス低下の根本原因がハードウェアの問題ではないことを確認するには、ストレージスタックで VDO を使用した場合と使用しない場合のテストを実行します。
VDO の journalQ スレッドは、特に VDO ボリュームが書き込み操作を処理している場合には、必然的にボトルネックになります。別のスレッドタイプの使用率が journalQ スレッドよりも高いことが判明した場合、当該タイプのスレッドをさらに追加することでこの問題を修正できます。
5.2.1. top による VDO パフォーマンスの分析 リンクのコピーリンクがクリップボードにコピーされました!
top ユーティリティーを使用して、VDO スレッドのパフォーマンスを調べることができます。
top などのツールは、生産的な CPU サイクルと、キャッシュまたはメモリーの遅延により停止したサイクルを区別できません。このようなツールは、キャッシュの競合と、低速なメモリーアクセスを実際の動作として解釈します。ノード間でスレッドを移動すると、1 秒あたりの操作数が増加した一方で、CPU 使用率が低下したように見えることがあります。
手順
個々のスレッドを表示します。
$ top -H- f キーを押してフィールドマネージャーを表示します。
-
(↓) キーを使用して
P = Last Used Cpu (SMP)フィールドに移動します。 -
スペースバーを押して、
P = Last Used Cpu (SMP)フィールドを選択します。 -
q キーを押してフィールドマネージャーを閉じます。
topユーティリティーは、個々のコアの CPU 負荷を表示し、各プロセスまたはスレッドが最近使用した CPU を示します。1 を押すと、CPU ごとの統計情報に切り替えることができます。