5.3.2. CPU アフィニティーの設定
VDO スレッドの CPU アフィニティーを調整すると、特定のストレージデバイスドライバーでの VDO パフォーマンスを向上させることができます。
ストレージデバイスドライバーの割り込み (IRQ) ハンドラーが大きな作業を実行し、ドライバーがスレッド化された IRQ ハンドラーを使用しない場合、VDO パフォーマンスを最適化するシステムスケジューラーの機能が制限される可能性があります。
最適なパフォーマンスを得るには、次のアクションを実行します。
-
コアがオーバーロード状態になった場合は特定のコアを IRQ 処理専用にし、VDO スレッドアフィニティーを調整します。
%hi値が他のコアよりも数パーセント以上高い場合、コアはオーバーロード状態になっています。 -
ビジーな IRQ コアでは、
kvdo:journalQスレッドなどのシングルトン VDO スレッドを実行しないようにします。 - 他のスレッドタイプも、IRQ でビジーなコアでは実行しないようにします (個々の CPU 使用率が高い場合のみ)。
この設定は、システムを再起動すると元に戻ります。
手順
CPU アフィニティーを設定します。
# taskset -c <cpu-numbers> -p <process-id><cpu-numbers>は、プロセスを割り当てる CPU 番号のコンマ区切りのリストに置き換えます。<process-id>は、CPU アフィニティーを設定する実行中のプロセスの ID に置き換えます。例5.1 CPU コア 1 および 2 に
kvdoプロセスの CPU アフィニティーを設定する例# for pid in `ps -eo pid,comm | grep kvdo | awk '{ print $1 }'` do taskset -c "1,2" -p $pid done
検証
アフィニティーセットを表示します。
# taskset -p <cpu-numbers> -p <process-id><cpu-numbers>は、プロセスを割り当てる CPU 番号のコンマ区切りのリストに置き換えます。<process-id>は、CPU アフィニティーを設定する実行中のプロセスの ID に置き換えます。