8.7. Receive Packet Steering (RPS)


Receive Packet Steering (受信パケットステアリング: RPS) は、パケットを処理のために特定の CPU に向けるという点で RSS と同様のものです。しかし、RPS はソフトウェアレベルで導入され、単一ネットワークインターフェイスカードのハードウェアキューがネットワークトラフィックのボトルネックになることを防ぐ手助けとなります。
RPS には ハードウェアベースの RSS と比較して、以下のような利点があります。
  • RPS はいかなるネットワークインターフェイスカードとも使用できます。
  • 新たなプロトコルに対応するために RPS にソフトウェアフィルターを追加することが容易です。
  • RPS はネットワークデバイスのハードウェア割り込み率を高めません。ただし、プロセッサー間の割り込みは取り込みます。
RPS は、/sys/class/net/device/queues/rx-queue/rps_cpus ファイル内でネットワークデバイスおよび受信キューごとに設定されます。ここでの device は (eth0 などの) ネットワークデバイス名で、rx-queue は (rx-0 などの) 適切な受信キューの名前です。
rps_cpus ファイルのデフォルト値はゼロです。この場合 RPS は無効になるので、ネットワーク割り込みを処理する CPU がパケットも処理します。
RPS を有効にするには、指定されたネットワークデバイスおよび受信キューからのパケットを処理する CPU で適切な rps_cpus ファイルを設定します。
rps_cpus ファイルは、コンマ区切りの CPU ビットマップを使用します。つまり、CPU がインターフェイス上の受信キューの割り込みを処理できるようにするには、ビットマップ上の位置の値を 1 に設定します。たとえば、CPU 0、1、2、および 3 で割り込みを処理するには、rps_cpus の値を 00001111 (1+2+4+8)、もしくは f (15 の 16進法での値) に設定します。
単一の送信キューのネットワークデバイスでは、同一メモリードメイン内の CPU を使用するように RPS を設定すると、最善のパフォーマンスが達成できます。これは、NUMA 以外のシステム上では、利用可能な CPU すべてが使用されることを意味します。ネットワーク割り込み率が非常に高い場合は、ネットワーク割り込みを処理する CPU を除外するとパフォーマンスが改善する場合もあります。
複数キューのネットワークデバイスでは、通常、RPS と RSS の両方を設定する利点はありません。これは、RSS はデフォルトで CPU を各受信キューにマップするように設定されるためです。ただし、CPU よりもハードウェアキューの方が少ない場合、および同一メモリードメインの CPU を使用するように RPS が設定されている場合は、RPS が利点ももたらす可能性があります。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.