この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

割り込みモード

v1.10.0以降、SUSE StorageはV2データエンジンボリュームのために*SPDK割り込みモード*をサポートします。割り込みモードは、デフォルトの*ポーリングモード*の代替手段を提供し、特定の環境でCPU効率を向上させます。

割り込みモードは、限られたCPUリソースと比較的少数のボリュームを持つクラスターに特に適しています。ポーリングモードは、割り当てられたコアでCPU使用率を100%に近づけることでパフォーマンスを最大化しますが、割り込みモードはSPDKリアクターが継続的にポーリングするのではなく、動的に使用量を調整することを許可することでCPU使用量を削減します。

概要

ポーリングモード対割り込みモード

  • ポーリングモード(デフォルト)

    • I/O操作を継続的にポーリングします。

    • 最も低いレイテンシを提供します。

    • 常に割り当てられたCPUコアの約100%を消費します。

    • 頻繁なI/Oを伴う高パフォーマンスのワークロードに最適です。

  • 割り込みモード

    • 割り込み駆動のI/O処理を使用します。

    • CPU消費は接続されたボリュームの数に応じてスケールします。

    • リソースが制約された環境により適しています。

前提条件

  • SUSE Storage v1.10.0以降

  • V2データエンジンが有効

  • 設定を変更する際に接続されたv2ボリュームはありません

  • NVMeディスクの場合、IOMMUを有効にする必要があります。確認するには:

    find /sys/kernel/iommu_groups/ -type l

    例の出力(IOMMUが有効な場合):

    /sys/kernel/iommu_groups/0/devices/0000:e6:0b.1
    /sys/kernel/iommu_groups/1/devices/0000:34:0a.6
    /sys/kernel/iommu_groups/2/devices/0000:a0:00.0

    コマンドが出力を返さない場合、IOMMUは有効ではありません。

    IOMMUのサポートは、仮想化されたインスタンスでは公開されていない可能性があります。不明な場合は、ベアメタルインスタンスの使用を検討するか、クラウドプロバイダーのドキュメントまたはサポートチームに相談してください。

    詳細については、 SPDK公式SPDKドキュメントを参照してください。

設定

グローバル設定

割り込みモードをグローバルに有効にするには、data-engine-interrupt-mode-enabled設定を更新してください。

重要な考慮事項

  • ボリューム状態要件:設定は、V2ボリュームが接続されていないときのみ変更できます。SUSE Storage V2ボリュームがアクティブな場合、更新はブロックされます。

  • グローバル効果:この設定は、すべてのV2ボリュームに適用されます。

パフォーマンス特性

推奨使用ケース

これらのケースで割り込みモードを有効にしてください:

  • リソースが制約されたクラスターで実行しています。

  • 少数のボリュームを管理しています。

  • CPUリソースが制限されているか、他のワークロードと共有されています。

  • I/Oパターンは連続的ではなく、散発的です。

  • エネルギー効率は優先事項です。

制限

ハイブリッド実装

現在のV2ボリューム割り込みモードは、NVMe/TCPトランスポートのためにハイブリッドアプローチを使用しています:

  • 管理キュー操作:それは、キープアライブとコントローラーの回復のために定期的なポーリングに依存しています。

  • I/Oキュー完了:コマンド完了のためにポーリングを使用します。

  • 残余CPU使用率:接続されているボリュームがアイドル状態であっても、小さくても一定のCPU負荷が発生します。

パフォーマンスのトレードオフ

  • レイテンシ:ポーリングモードよりもわずかに高くなります。

運用制限

  • 設定変更:V2ボリュームが接続されている間は変更できません。

  • グローバルスコープ:グローバルに適用されます。ボリュームごとのオーバーライドは利用できません。