iWave iWave Japan Inc.
TOP
会社情報 事業概要 製品 サービス パートナー リクルート お問い合せ

プレスリリース

2013年7月19日 マルチコアCPUのネットワーク負荷を軽減するRPSとRFS

インターネット等のネットワークは日常生活で必要不可欠になっており、大量の情報がネットワークで扱われています。 
また、ネットワーク対応器材ではi.MX6のようなマルチコアCPUを持つものが主流になってきており、大量のネットワーク負荷を効率的にマルチコアCPUで処理することが重要になっています。


ネットワーク負荷を効率的にCPUに割り振ることは、簡単なことではありませんが、Googleが2つの解決策を提供しています。
それがRPS (Receive Packet Steering)RFS (Receive Flow Steering) で、Linux kernel 2.6.35以降に適用されます。

RFSとRPSの長所

  • ネットワーク性能を3倍にし、システム全体の利用効率を2倍にする
  • キャッシュの効果的な利用
  • プロトコルを並行的に処理
  • 待ち時間が短い
  • シングルキューもマルチキューもサポート
  • Linuxで実現されているので利用しやすい                              

RPS と RFS のしくみ

RPS (Receive Packet Steering): RPSは受信したパケットを処理するネットワーク負荷をマルチプルコアに分配することができます。 この技術はTCP/IPのようなプロトコルをパケットとして並行的に処理することができます。
マッピングはハッシュテーブルメカニズムで行われます。 受信したキューにはCPUへのマスクのインデックスとして、特定のハッシュ・パケット・ヘッダーが用いられます。 RPSはどのCPUが特定のネットワークキューを実行するかを決定します。

RFS (Receive Flow Steering): RFSはRPSを進めた技術です。 RPSではCPUの選択がランダムに行われますが、選択されたCPUコアが他のタスクでオーバーロードになっている場合には問題が生じます。
RFSでは、“recvmsg()”というシステムコールを出しているCPUを選択することにより、キャッシュの利用効率を高めます。

マルチコアCPUシステム開発への反映

RPSとRFSはLinux kernel 2.6.35 以降のシステムにおいてきわめて有効であり、マルチコアCPUシステム開発にあたってはこれらをうまく使用する必要があります。

                                 詳しくは、営業へお問い合わせ下さい。

                                           プレスリリーストップへ



Copyright(c) iWave Japan, Inc. all rights reserved.