3.4. irqbalance
irqbalance はコマンドラインツールで、プロセッサーにハードウェア割り込みを配布して、システムパフォーマンスを向上させます。デフォルトではデーモンとして実行されますが、
--oneshot
オプションで 1 回きりの実行も可能です。
パフォーマンス改善には、以下のパラメーターが便利です。
- --powerthresh
- CPU が省電力モードになる前にアイドル状態になることが可能な CPU 数を設定します。しきい値を超える CPU 数が平均 softirq ワークロードを 1 標準偏差以上下回り、平均値から 1 標準偏差を超える CPU がなく、複数の irq がこれらに割り当てられている場合、CPU は省電力モードに入ります。このモードでは、CPU は irq バランシングの一部ではないので、不必要に再開されることがありません。
- --hintpolicy
- irq カーネルアフィニティーヒンティングの処理方法を決定します。有効な値は、
exact
(irq アフィニティーヒンティングを常に適用)、subset
(irq はバランシングされるものの、割り当てオブジェクトはアフィニティーヒンティングのサブセット)、またはignore
(irq アフィニティーヒンティングを完全に無視) になります。 - --policyscript
- 各割り込みリクエストを実行するスクリプトの場所を定義します。デバイスパスおよび irq 番号が引数として渡され、irqbalance はゼロ終了コードを予想します。定義されたスクリプトでは、渡された irq の管理で irqbalance をガイドするために、ゼロもしくはそれ以上の鍵の値のペアを指定することができます。有効な鍵の値のペアとして認識されるのは、以下のものです。
- ban
- 有効な値は、
true
(バランシングから渡された irq を除外) もしくはfalse
(この irq でバランシングを実施) です。 - balance_level
- 渡された irq のバランシングレベルをユーザーが上書きできるようにします。デフォルトでは、バランスレベルは、irq を所有するデバイスの PCI デバイスクラスに基づきます。有効な値は、
none
,package
、cache
、またはcore
になります。 - numa_node
- 渡された irq にはローカルとみなされる NUMA ノードを、ユーザーが上書きできるようにします。ローカルノードについての情報が ACPI で指定されていない場合は、デバイスはすべてのノードから等距離とみなされます。有効な値は、特定の NUMA ノードを識別する整数 (0 から)、および irq が全ノードから等距離であるとみなすことを指定する
-1
になります。
- --banirq
- 指定された割り込みリクエスト番号のある割り込みが禁止された割り込みリストに追加されます。
また、
IRQBALANCE_BANNED_CPUS
環境変数を使って、irqbalance によって無視される CPU のマスクを指定することもできます。
詳細は、以下の man ページを参照してください。
$ man irqbalance