説明

パケット・トラフィックを管理する方法、マルチプロセッサ・ネットワークおよびコンピュータ・プログラム(データ処理ネットワークにおける相互接続の最適利用)

【課題】マルチプロセッサで、特定ノード間のリンク負荷が集中した場合にこれを分散させる。
【解決手段】データ処理ネットワークにおいてパケット・トラフィックを管理する方法は、ネットワークの相互接続部内の各リンクを通過するパケット・トラフィックの量を示すデータを収集することを含む。収集されたデータは、対応するパケットの送信元および送信先を示す送信元および送信先情報を含む。次いで、収集したデータから、使用頻度の高いリンクを識別する。次いで、使用頻度の高いリンクに関連するパケット・データを分析して、当該使用頻度の高いリンクのパケット送信元およびパケット送信先の組合せを識別する。これに応答して、識別されたパケット送信元およびパケット送信先の組合せに関連するプロセスを、例えばネットワークの別のノードに移行して、該使用頻度の高いリンク上のトラフィックを軽減する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、PERCSの第1フェーズによって与えられたNBCHC020056により、政府援助を得てなされたものである。政府は本発明における一定の権利を有する。(This invention was made with Government support under NBCHC020056 awarded by PERCS phase 1. THE GOVERNMENT HAS CERTAIN RIGHTS IN THIS INVENTION.)
【0002】
本発明は、データ処理ネットワークの分野に関し、より詳細には、マルチプロセッサ・ネットワークにおけるネットワーク・パケットのルーティングの管理に関する。
【背景技術】
【0003】
相互接続部を介して複数のノードを相互接続したマルチプロセッサ・システムでは、相互接続部(interconnect)を使用して、計算に関するデータやI/O要件に関するデータなど様々なデータを転送することができる。従来のネットワークでは、プロセスまたはスレッドとそれらに対応するノードとの間のマッピングに特に注目しておらず、システムの相互接続部の利用状況が最適とは言えないことがある。相互接続部において、特定の物理リンクばかりが集中的に使用され、他のリンクがほとんど使用されていないこともある。このような集中的に使用されるリンクを通過するパケットの数がそのリンクの帯域幅制限に近づくと、その他のリンクの帯域幅に余裕がある状況でも、ネットワークの性能すなわち応答時間が低下する可能性がある。相互接続部の利用バランスが崩れたときにプロセスを移行(migrate)させ、より均一に物理リンクにパケットを分配することができる方法、システムおよびネットワークを実施することが望ましい。
【発明の開示】
【発明が解決しようとする課題】
【0004】
ネットワークが比較的少数のノードおよび相互接続リンクからなる場合には、必要が生じた場合にどのプロセスを移行させるのが有利であるかを決定するタスクは、かなり管理しやすい。しかし、ノードおよび相互接続リンクの数が増えると、望ましくない相互接続部の利用パターンを識別して補正する作業は、急激に困難になる。したがって、ネットワーク利用状況のアンバランスに対処しようとするいかなるシステムまたは技術も、その解決策がノード数および相互接続部内のスイッチ数の影響を比較的受けないようにスケーラブルでなければならない。
【課題を解決するための手段】
【0005】
確認されたこれらの目的は、本発明によるデータ処理ネットワークにおいてパケット・トラフィックを管理する方法によって達成される。この方法は、ネットワークの相互接続部内の各リンクを通過するパケット・トラフィックの量を示すデータを収集することを含む。収集されたデータは、対応するパケットの送信元および送信先を示す送信元および送信先情報を含む。次いで、収集したデータから、一組の使用頻度の高いリンクを識別する。次いで、使用頻度の高いリンクに関連するパケット・データを分析して、当該使用頻度の高いリンク上のパケット・トラフィックの有意な一因となっているパケット送信元およびパケット送信先の組合せを識別する。これに応答して、識別されたパケット送信元およびパケット送信先の組合せに関連するプロセスを、例えばネットワークの別のノードに移行して、該使用頻度の高いリンク上のトラフィックを軽減する。一実施形態では、各相互接続スイッチにインストールされたエージェントが、そのスイッチに接続された相互接続リンクについてのパケット・データを収集する。エージェントは、監視している各リンクごとにデータ・テーブルを生成する。データ・テーブルは、監視期間中にリンクを通過する各パケットごとにエントリを含む。各エントリは、対応するパケットに関連する送信元および送信先の情報を含む。送信元情報は、ネットワークの送信元ノードを識別することができ、送信先情報は、送信先ノードを識別することができる。特定の送信元および送信先の組合せに関連するプロセスの移行は、それを送信先ノードに接続する経路が使用頻度の高いリンクを含まないような別の送信元ノードにプロセスを移行することを含むことができる。
【0006】
本発明のその他の目的および利点は、以下の詳細な説明を読み、添付の図面を参照すれば、明らかになるであろう。
【0007】
本発明は様々な修正を施すことができ、また代替の形態をとることもできるが、例示を目的として、本発明の特定の実施形態を図面に示し、それらの実施形態について本明細書で詳細に述べる。ただし、図面および本明細書の詳細な説明は、開示した特定の実施形態に本発明を限定するためのものではなく、本発明は、添付の特許請求の範囲において定義する本発明の趣旨および範囲に含まれるあらゆる修正形態、均等物および代替形態を含むものとする。
【発明を実施するための最良の形態】
【0008】
概して言えば、本発明は、マルチプロセッサ・データ処理ネットワーク、およびネットワークの相互接続部の利用状況を最適化して、比較的少数の物理相互接続リンクが過剰利用されることによる性能低下を防止または軽減する方法に関する。本発明では、ネットワーク内のパケット・トラフィックを管理して、そのピアを有意に超えるトラフィックを搬送するリンクが生じないようにパケット・トラフィック負荷を分配する。これを行うために、相互接続部のトラフィックを監視し、様々なグループに分類し、各グループには送信元識別子および送信先識別子を付けておく。この情報は、システム・ソフトウェアに定期的に報告される。システム・ソフトウェアは、各相互接続スイッチから得られる「ローカル」統計量をアセンブルして、ボトルネック・リンクを通る送信元送信先間通信の大域ビューを得る。これらのリンクを通過する全ての送信元送信先対について、システム・ソフトウェアは、トラフィックが別のリンクにルーティングされるようにプロセス・ノード・マッピングを変更する。
【0009】
ここで図面を参照すると、図1は、本発明の一実施形態によるデータ処理ネットワーク100の要素をいくつか選択して示す図である。ネットワーク100は、2つ以上のプロセッサが協働して特定の機能を実現する、または特定のタスクを実行する多重処理ネットワークとして特徴付けることができる。例えばウェブ・センタに適用すると、ネットワーク100を含む複数のシステムが、ウェブ・サイトまたはその他のウェブでアクセス可能なサービスを、集合的にユーザに対して提供することができる。また、ネットワーク100は、データベース・サービスまたは特定のアプリケーションを提供することもできる。この場合には、ネットワーク100は、インターネットなど、それより大きなネットワークの中で、それ自体がノードとして機能することもある。
【0010】
図1に示すように、ネットワーク100は、相互接続部110を介して相互接続された複数のデータ処理システム101〜108(本明細書ではノード101〜108とも呼ぶ)を含む。図1に示すように、各ノード101〜108は、一対の論理接続で相互接続部110に接続される。ノードと相互接続部110の間の第1の接続121(ノード101とともに示す)は、その他のノードからのメッセージを伝達し、該ノードと相互接続部の間の第2の接続122は、相互接続部110を介してその他のノードにメッセージを伝達する。第1の接続121および第2の接続122は、本願の状況ではそれらの機能が異なることを強調するために、図1では別個に示しているが、共通の物理リンクまたは物理接続を用いて接続121および122を実施することもできることに留意されたい。
【0011】
一実施形態では、ノード101〜108は全て、ほぼ同じハードウェアおよびシステム・ソフトウェアを有する。図4に示すように、各ノード101〜108は、1つまたは複数の汎用マイクロプロセッサ402を含み、汎用マイクロプロセッサ402は、マイクロプロセッサ402が共有するシステム・メモリ404に共用システム・バス405を介してアクセスすることができる。さらに、各ノード101〜108は、システム・バス405と、アダプタ412および414など1つまたは複数の周辺アダプタが接続される周辺バス410との間のインタフェースをとるブリッジ406を含むことができる。一般的な例として、ノード101〜108の周辺アダプタは、ネットワーク・インタフェース・アダプタと、システム内の永続的記憶装置に対するアクセスを実現するハード・ディスク制御装置とを含むことができる。
【0012】
一実施形態では、ネットワーク100は、キャッシュ・コヒーレントな不均等メモリ・アーキテクチャ(NUMA : non-uniform memory architecture)を有するものとして特徴付ける。NUMAシステムでは、特定のノードのプロセッサは、そのノードのシステム・メモリに対する「ローカル」アクセスを有する。プロセッサは、ネットワーク100上のその他のノードのシステム・メモリに対しては「遠隔(リモート)」アクセスを有する。このメモリ・アーキテクチャは、ローカル・アクセスの待ち時間が遠隔アクセスの待ち時間より短いことから、不均等(non-uniform)と呼ばれる。ネットワーク100のNUMA実施態様では、図1の相互接続部110は、介在する制御装置を介して各ノード101のシステム・バス405に直接接続することができる(LANノード同士が周辺バスまたはI/Oバスに接続されたアダプタを介して通信する従来のLANとは異なる)。
【0013】
次に図2を参照すると、図1のネットワーク100が、相互接続部110の構造を強調してさらに詳細に示してある。図2に示す実施態様では、相互接続部110は、各ノードからその他の各ノードまでの間に一意的な経路が存在するようにノード101〜108を相互接続する一組のスイッチ201〜212を含む。スイッチ201〜212はそれぞれ、2つの装置からの入力を受け、別の2つの装置に対して出力を行う。したがって、各スイッチは、2つの装置のいずれかからのメッセージを、2つの出力側装置のいずれかに対してルーティングすることができる。スイッチを接続することができる装置は、ノード、または別のスイッチである。各スイッチにつながる接続および各スイッチから延びる接続を、本明細書では「相互接続リンク」、または単に「リンク」と呼ぶ。したがって、各リンクは、1つの相互接続装置を別の1つの相互接続装置に接続する。
【0014】
図示の実施態様では、特定数のノードおよびスイッチを示し、各スイッチは2つの入力側装置(スイッチの左側の装置)と2つの出力側装置(スイッチの右側の装置)の間の接続を実現するものとして示しているが、これより多数のノードおよびスイッチを備え、より複雑なスイッチを有する(すなわち3つ以上の入力側装置と3つ以上の出力側装置を相互接続するスイッチを有する)実施態様など、その他の実施態様も本発明に含まれる。図示の実施態様は、比較的管理しやすいネットワークに関連する本発明の概念を示すために与えたものである。
【0015】
本発明を説明するために、いくつかのネットワーク・パケットが相互接続部110を通過した、または通過している時点におけるネットワーク100を図2に示してある。パケットが送り出されるノードを「送信元(source)ノード」と呼び、パケットが送られるノードを「送信先(destination)ノード」と呼ぶ。分かりやすくするために、例示的なパケットが通過する相互接続リンクを実線で示し、残りのリンクを点線で示す。各リンクを通過するパケットの数は、各当該リンクに重ねて示す長円の中の数字で示す。
【0016】
図示の例では、ノード104はノード105に対して30個のパケットを送信し、ノード106はノード105に対して50個のパケットを送信し、ノード108は、ノード106に対して20個のパケットを、ノード107に対して10個のパケットを送信する。例えば、ノード104が送信する30個のパケットは、ノード104からスイッチ204まで延びるリンク215を通過する。スイッチ204は、各パケットに含まれる送信先情報に基づいて、これら30個のパケット(ならびにノード108から受信したその他の30個のパケット)を、リンク216を介してスイッチ208にルーティングする。スイッチ208は、スイッチ204から受信したパケットのうちの50個(ならびにスイッチ202から受信した50個のパケットを合わせて合計100個のパケット)を、リンク220を介してスイッチ211にルーティングする。最後に、スイッチ211が、80個のパケット(ノード104からのパケット30個を含む)を、リンク217を介してノード105にルーティングする(残り20個のパケットはリンク218を介してノード106にルーティングする)。相互接続部110を介して送信されるパケットはそれぞれ、少なくとも送信元識別子および送信先識別子を含む。この簡略化した図では、例えば、スイッチ208からスイッチ211に対してリンク220を介して100個のパケットが送信されているが、残りのリンクで80個を超えるパケットを搬送しているものは存在せず、多くのリンクはパケットを全く搬送していないことが分かる。
【0017】
本発明は、システムがリンク220などの使用頻度の高いリンクを識別して、高い使用頻度の一因になっていると考えられる1つまたは複数のプロセスを移行させて当該リンクのパケット負荷を軽減する(例えばそこから指定の送信先までの経路が当該使用頻度の高いリンクを通らないノードに当該プロセスを移行する)ことができるようにするデータを生成することに関する。本発明の利点の1つは、そのスケーラビリティである。すなわち、本発明は、使用頻度の高いリンクを識別する作業の複雑さが、ノードおよびスイッチの数の増加に比例して直線的に増すだけとなるように実施される。この利点は、各スイッチでパケット・データを収集することにより得られる。これに対して、送信元ノードおよび送信先ノードのみでパケットを評価することによって使用頻度の高いリンクを決定しようとする方法では、ノードおよびスイッチの数が増えるにつれて、指数関数的に複雑さが増すことになる。
【0018】
本発明の一部は、コンピュータ可読媒体に記憶した一連または一組のコンピュータ実行可能命令(コンピュータ・ソフトウェア)として実施することができる。コンピュータ可読媒体は、ハード・ディスクや読取り専用メモリ(ROM)デバイス、CDまたはDVDディスク、磁気テープなど、永続的記憶媒体にすることができる。実行中には、ソフトウェアの一部は、DRAMシステム・メモリやSRAMキャッシュ・メモリなどの揮発性記憶媒体内に存在することができる。このような一実施形態では、コンピュータ・ソフトウェアは、図1に示すネットワーク100などのデータ処理ネットワークがそのネットワーク・リンクの使用状況を最適化することを可能にする機能を提供する。
【0019】
図3を参照すると、本発明の一実施形態による実行中のプロセスまたはスレッドをデータ処理ノードにマッピングする方法300の流れ図が示してある。図示の実施形態では、方法300では、図2の相互接続部110などネットワーク相互接続部の各スイッチにおけるパケット統計量を収集する(ブロック302)。ここで図5を参照すると、一実施態様による各相互接続リンクごとに収集した統計量の概念図が示してある。この概念図では、データベースまたはテーブル501は、相互接続110(図2)の各リンク(リンク220など)ごとに作成され、保持される。
【0020】
各スイッチ201から212は、テーブル501など、当該スイッチが接続される各リンクごとのテーブルを保持するのに十分な資源および機能を含む。資源の利用を節約するためには、大部分のスイッチは、その1つまたは複数の出力に接続された1つまたは複数のリンク、またはその1つまたは複数の入力に接続された1つまたは複数のリンクをトラッキングするだけでよい。例えば図2を参照して、各スイッチがその入力に接続された全てのリンクに関する統計量を保持している場合には、トラッキングされないリンクは、スイッチ209から212の出力に接続されたリンクだけであることは明らかであろう。同様に、各スイッチがその出力リンクに関する統計量を保持している場合には、トラッキングされないリンクは、スイッチ201から204への入力リンクのみである。相互接続部の利用パターンを完全にカバーするためには、あるスイッチのサブセットが、その入力リンクおよび出力リンクに関するデータを保持していなければならない。各スイッチがどのリンクをトラッキングするかは、ネットワーク100および相互接続部110の構成を認識しているシステム・ソフトウェアが決定することが好ましい。
【0021】
したがって、一実施形態によれば、各スイッチは、対応するスイッチが処理する、またはこれを通過するパケットをトラッキングすることができるエージェント(通常はソフトウェアまたはファームウェアで実施される)を含む。図2では、これらのパケット・トラッキング・ソフトウェア・エージェントを、参照番号230で示す実行可能ソフトウェア・コードで表す(分かりやすくするために、いくつかのスイッチではエージェント230を省略してある)。図5に戻ると、これらのスイッチ・エージェントが保持するテーブル501は、リンク識別子502および一組のエントリ503を含む。各エントリ503は、送信元識別子504および送信先識別子506を含む。
【0022】
各パケット通過相互接続部110は、少なくとも、パケットの送信元およびその送信先を示す指示を含む。送信元および送信先は、実行中のプロセスもしくはスレッドまたは処理ノード、あるいはその両方によって識別することができる。さらに、各エントリはカウント508を含む。これは、その名が示す通り、エントリ503に関連する送信元識別子および送信先識別子を有する対応するリンク上のパケット発生数を示す。図示の各テーブル501の実施形態では、全てのカウント値508の合計カウント509も保持する。
【0023】
したがって、テーブル501は、特定のリンクを通過するパケット数を示す情報、ならびにそれらのパケットの送信元および送信先に関する情報を提供する。図3に戻ると、パケット統計量は、指定された時間または期間、収集され、保持される。次いで、システム・ソフトウェアは、現在の指定期間が経過したかどうかを判定し(ブロック304)、経過していなければ、各スイッチのエージェントはパケット統計量の収集を継続する。指定期間が経過している場合には、システム・ソフトウェアは、各テーブル501のパケット統計量を収集または累積して(ブロック306)、累積データベースにする。システム・ソフトウェアは、ネットワーク・ノードの1つまたは複数に存在しているアプリケーションまたはオペレーティング・システムのコードを参照する。図2では、本開示で参照するシステム・ソフトウェアは、ノード101にインストールされ、参照番号240で示してある。システム・ソフトウェア240は、その他の任意のネットワーク・ノードにインストールすることも、あるいは複数のノードにインストールされる分散型アプリケーションにすることもできることは理解されるであろう。
【0024】
次いで、システム・ソフトウェア240は、使用頻度が高いリンクであると考えられる相互接続部110内のリンクを識別または選択する(ブロック308)。どのリンクの使用頻度が高いかを決定する方法は実施態様によって決まるが、通常は、あるリンクを介して送信されたパケットの総数に基づいて行う。この決定は、何らかの指定閾値に基づいて行うことも(例えばパケット数がKを超える、など)、比較尺度基準に基づいて行うことも(例えばパケット数がその他の任意のリンクのパケット数より少なくとも10%多い、など)、あるいはこの2つを組み合わせて行うこともできる。
【0025】
使用頻度の高いリンクを識別した後で、システム・ソフトウェアは、リンクを通過するパケットを分析して、頻繁に現れる送信元識別子と送信先識別子の組合せを識別する(ブロック310)。頻繁に現れる送信元/送信先の組合せは、移行候補となるプロセスまたはスレッドを識別するものである。移行候補は、別の送信元または送信先あるいはその両方に移行させた場合に、当該使用頻度の高いリンクのパケット・トラフィックを軽減する可能性のあるプロセスを表している。例えば、頻繁に現れる送信元/送信先の組合せの送信元識別子が特定のノードにマップされる特定のプロセスを示している場合には、この示されたプロセスは、別のノードに移行する候補とすることができる。この状況・文脈では、「移行(migration)」とは、システム・ソフトウェアがプロセスを代替のノードにマップし直すプロセスを意味している。使用頻度の高い相互接続リンクのパケット・トラフィックの所望の軽減を達成するためには、当該使用頻度の高いリンクを含まない相互接続経路を用いて送信先にパケットを送信することができるノードに、当該プロセスをマップし直す。
【0026】
図2に戻ると、例えば、リンクごとのパケット・データを分析すると、リンク220が使用頻度の高いリンク、またはボトルネット・リンクであると識別される。リンク220に対応するパケット・データをさらに分析すると、ノード106を送信元とし、ノード105を送信先とする組合せが、リンク220上に見られる100個のパケットのうち50個を占めることが分かる。次いで、これに応答して、システム・ソフトウェアは、ノード106上で実行されているプロセスを、移行候補として識別する。システム・ソフトウェアは相互接続部110の構成を認識しており、したがって、この候補プロセスをどこに移行させることができるかを知っている。具体的には、システム・ソフトウェアは、候補プロセスを、この処理中に別の使用頻度の高いリンクを生み出すことなく使用頻度の高いリンクのパケット・トラフィックを軽減する送信元ノードに移行させようとする。図2では、これらの目的は、ノード106で実行されているプロセスをノード101に移行することによって達成することができる。ノード101から発生してノード105を送信先とするパケットは、ノード105に到達するためには、スイッチ201、206および211を通過しなければならない。このスイッチ経路に関連するリンクは、リンク220を含まず、また有意なトラフィックが観測されるその他の任意のリンクも含まない。この場合には、ノード106からノード101にプロセッサを移行することにより、残りのリンクのいずれも過負荷状態にすることなく、リンク220のトラフィックを軽減することができる。ボトルネック・リンクを解消し、過負荷の一因となる負荷を分散させることにより、本発明では、パケット・トラフィックの効果的な管理を実現する。
【0027】
上記の実施態様は、各パケットが送信元/送信先の情報(すなわち各パケットの送信元ノードおよび送信先ノードを示す情報)を有することに依拠するものである。この実施態様は、それほど複雑でないネットワーク構成においては有用性が高いが、スケーラビリティが制限されることがある。具体的に言うと、ノード数が増えるにつれて、送信元ノードおよび送信先ノードにより指示されるパケット情報を保持する作業の複雑さが指数関数的に増していく。数百ないし数千ものノードを含む非常に大規模なネットワークでは、図5を参照して上述したような方法でパケット情報を保持することが非効率的になる、または実行不可能になる可能性がある(すなわち上述のようにパケット情報を保持できるだけの十分な記憶能力または処理能力をスイッチが有することができない可能性がある)ことは理解されるであろう。
【0028】
このような起こりうるスケーラビリティの問題への対処として、本発明の一実施形態では、縮小または簡略化したパケット情報セットを保持し、ネットワーク構成に関する知識を有するシステム・ソフトウェアによって任意のボトルネック・リンクの一因になる可能性が最も高い送信元/送信先の組合せを識別する。各リンクについて保持するパケット情報を大幅に簡略化することにより、この実施形態では、スケーラビリティの概念を完全に包含する。ネットワーク中のノード、スイッチおよびリンクの数が増加しても、任意の個々のリンクが保持するパケット情報はほぼ一定のままである。
【0029】
次に図7を参照すると、上述のテーブル501に似た、この実施形態によるスイッチ・エージェントが保持するテーブル701の実施態様が示してある。図示の実施態様では、各テーブル701は、スイッチ201〜212のうちの1つに対応するファイルを表し、当該スイッチを識別する情報704を含む。別法では、情報704を省略し、各テーブル701に関連するスイッチを、ファイル位置であるファイル名で示す。
【0030】
この実施態様では、各エントリ703は「リンク対」に対応し、当該リンク対を識別する情報702と、情報708が最後にクリアされたときから現在までに対応するリンク対(すなわち情報702で識別されるリンク対)を通過したパケット数を示すカウント情報708とを含む。リンク対は、入力リンクと出力リンクの一意的な組合せである。例えば、あるスイッチが2つの入力リンクおよび2つの出力リンクに接続されている場合には、このスイッチに関連する一意的なリンク対は4対存在する。
【0031】
図2を参照して、例えば、リンク対222/220、222/221、216/220および216/221上のパケットのトラッキングを割り当てられているスイッチ208に対応するテーブル701は、リンク対222/220に関する第1のエントリ703や、リンク対222/221に関する第2のエントリ703などを含むことになる。さらに、リンク対222/220に関する第1のエントリ703は、リンク222からリンク220に渡されるパケット数を反映する50というカウント値708を含み、第2のエントリ703は、リンク222からリンク221に渡されるパケットが存在しないことを反映する0というカウント値708を含むことになる。同様に、リンク対216/220および216/221に関するエントリも、それぞれ50および10となる。重要な点は、テーブル701が送信元ノード/送信先ノードの情報を含まないことである。各パケットの送信元ノードおよび送信先ノードを決定した後に、どのテーブル・エントリを増分させるかを決定すると、不要に長い時間が必要となり、また不要に大量の記憶領域がスイッチ内に必要となることがある。これを行う代わりに、各スイッチは、そのリンク対のうちの1つをパケットが通過したと判定し、当該リンク対に応じてテーブル701を指し示し、そのエントリのカウント値708を増分させるだけでよい。図7に示しこれに関連して説明したように適当な情報をテーブル701に記録するために必要とされる処理の量は、図5に示した実施形態により実施したスイッチを通過する各パケットを処理するのに必要な時間より大幅に少ないことは理解されるであろう。このことは、多数のノードを有する大規模ネットワークに特に当てはまる。
【0032】
図7に従って実施されるパケットの監視およびトラッキングでは、移行候補となるプロセスを識別するための追加処理がシステム・レベルで必要となる。この実施形態では、ネットワーク構成に関する知識またはこれに対するアクセス権を有するソフトウェアは、各ネットワーク・スイッチのテーブル701に記憶されたパケット情報を使用して、ボトルネック・リンク、または有意なトラフィックを示しているその他の任意のリンクを通過するパケットについての最も可能性の高い送信元送信先間経路を決定する。ボトルネック・リンクは、適当なリンク対カウントを追加して個々のリンクのパケット・カウントを得ることにより識別される(例えば、スイッチ208のテーブル中のリンク対222/220およびリンク対216/220についてのエントリを追加して、リンク220についてのパケット・カウントを得る)。このようにして可能性の高い送信元送信先間経路を識別すると、次いで、ソフトウェアは、当該送信元ノードおよび送信先ノードに関連する1つまたは複数のプロセスを選択し、移行を行う。移行は、プロセスと、そのプロセスが実行されるノードとの間の関連付けをマップし直すことを含むことがある。移行先のノードは、そのノードからのプロセスが当該送信先ノードに向かうトラフィックを発生させたときに、ボトルネック・リンクを含まないネットワーク・スイッチ/リンク経路を通過するノードであることが好ましい。この実施態様の利点は、スイッチ201〜212で必要とされる処理管理またはデータベース管理あるいはその両方が大幅に減少することである。この実施態様による各スイッチは、各パケットの最初の送信元または最終的な送信先を顧慮することなく、そのスイッチが対応する各リンク対を通るパケットの数を単純にトラッキングするだけである。この手法の副次的な利点は、スイッチ・エージェントがネットワーク構成の変化に左右されないことである。ノードまたはスイッチあるいはその両方が追加または除去され、リンクが追加または除去された場合に、各スイッチ201〜212におけるリンク対カウント情報のローカル・トラッキングは変化しない。システム・ソフトウェア240(図2)のみが、ネットワークの変化を認識していればよい。
【0033】
図6を参照すると、本発明の一実施形態によるネットワークを管理する方法600の実施形態を示す流れ図が示してある。図示の実施形態では、各スイッチで、ローカルなパケット統計量を収集する(ブロック602)。この実施態様で収集されるパケット情報は、各リンクを通過するパケット数のみを含むことが好ましく、監視した各パケットの送信元ノードまたは送信先ノードあるいはその両方とも含まないことが好ましい。パケット情報は、図7を参照して上述したようにスイッチに関連するリンク対ごとにローカルに収集および記憶することができる。図示の実施形態では、パケット統計量は、ブロック604に示すように、指定の時間または期間収集される。
【0034】
監視時間は実施態様に応じて周期的であっても非周期的であってもよいが、各監視時間が終了するときに、各スイッチ201〜212についてのリンク統計量を、好ましくはシステム・ソフトウェア240が記憶される、または実行されるノード上の中央データベースに収集する(ブロック606)。次いで、中央データベースのデータに基づいて、1つまたは複数の使用頻度の高いリンクを識別する(ブロック608)。
【0035】
この実施形態における使用頻度の高いリンクの選択は、その前の監視期間の間に各リンクを通過したパケット数に応じて、単純にリンクを順序付けまたは分類することを含むことができる。図7に関連して上述したようにリンク統計量がリンク対ごとにローカルに監視および記憶される場合には、ブロック606におけるリンク統計量の蓄積は、適当なリンク対値のカウントを追加することによってリンク対データから個々のリンク統計量を得ることを含むことができる。その後、1つまたは複数の最もトラフィックの大きいリンクを識別する(ブロック608)。各期間に使用頻度が高いとして識別されるリンクの数は、実施態様によって様々である可能性がある。実施態様によっては、使用頻度が高いリンクとして認定する必要のあるパケットの最小数を規定するパケット数閾値を含むこともできる。この場合には、使用頻度が高いと認定されるリンクが存在しない(すなわちプロセス移行が不要な)監視期間があることもある。
【0036】
しかし、リンクを通過するパケット数に基づいて、1つまたは複数のリンクが使用頻度が高いリンクとして識別された場合には、システム・ソフトウェア240を呼び出して、システム・ソフトウェア240がアクセス権を有するネットワーク構成情報を、図7に示す簡略なリンク対データ・セットと併せて分析することにより、プロセス移行の潜在候補を識別する。システム・ソフトウェア240は、特定の使用頻度の高いリンクについて、最も可能性が高いその直前のスイッチまたはノードおよび最も可能性が高いその直後のスイッチまたはノードを決定するという方法により、移行候補を識別することができる。この方法は、複雑さが解消されているため望ましい。図2に戻ると、例えば、システム・ソフトウェア240は、1つまたは複数のスイッチ(好ましくは全てのスイッチ)についてのリンク統計量を収集した後で、リンク220を使用頻度が高いリンクとして識別する。これは、そのリンクがネットワーク中のそのほかのどのリンクよりも多くのパケットを搬送しているからである。
【0037】
このようにリンク220を使用頻度が高いリンクとして決定した後で、システム・ソフトウェア240は、最も可能性が高い直前のリンクを最大のトラフィックを搬送した入来(incoming)リンクとして決定する。この情報も、収集したリンク統計量情報に含めることができる。図示の例では、リンク220を介してパケット・トラフィックを送信するスイッチ208は、ネットワーク構成情報に対するアクセス権を有するシステム・ソフトウェア240が決定することができる2本の入来リンク、すなわちリンク216およびリンク222からパケットを受信する。次いで、システム・ソフトウェア240は、各入来リンク上のパケット数を単純に比較することにより、最も可能性の高い直前の推知を識別する。したがって、システム・ソフトウェア240は、リンク216がリンク222より多くのトラフィックを直前の監視期間の間に搬送したことを認識することができる。次いで、システム・ソフトウェア240は、スイッチ204が、スイッチ208に到達するパケット移動において最も可能性の高い直前のスイッチであると決定することができる。このようにして、システム・ソフトウェア240は、最も可能性の高い直前および直後のスイッチまたはノードを連続的に決定することにより、スイッチ208の前後について処理を行い、最終的に、識別した使用頻度の高いリンク220上のパケット・トラフィックの一因となっている可能性が最も高い送信元ノードおよび送信先ノードの組合せとして、送信元がノード104、送信先がノード105であることを決定することができる。
【0038】
この例では、スイッチ204(ここで論じているスイッチ208の最も可能性の高い直前のスイッチ)の直前である可能性が最も高いノードまたはスイッチを決定することにより、興味深い例が得られる。具体的には、スイッチ204についてのパケット統計量は、そのパケットのうち30個がノード104から来たものであり、そのパケットのうち30個がノード108から来たものであることを示している。こうした状況では、システム・ソフトウェア240は、(最も以前に選択されたアルゴリズムまたはその他のアルゴリズムに従って選択した、あるいは任意に選択した)ノードのうち、両方を直前のノードとして識別することも、一方を直前のノードとして識別することも、あるいは両方とも直前のノードとして識別しないこともある。これらの可能性のうちどれに決定するかは、移行候補の識別においてシステム管理者がどの程度積極的であるかによって決まる。
【0039】
ボトルネック・リンクを引き起こしている可能性が最も高い送信元/送信先の組合せを決定したら、システム・ソフトウェア240は、識別された送信元/送信先の組合せに関連する、またはこれと対応付けられる1つまたは複数のプロセスを識別することができる。次いで、システム・ソフトウェア240は、任意のこのような1つまたは複数のプロセスを別のノード・セットに移行させることができる。ここで、新たに識別されたセットの送信元と送信先の間の経路は、図5を参照して上述したシステム・ソフトウェアとほとんど同じ方法で任意の識別された使用頻度の高いリンクを含まない。図2の例では、システム・ソフトウェアは、ネットワーク構成を知っているので、ノード104からノード105までの経路がリンク220上のトラフィックの一因となっている可能性が最も高い送信元送信先間経路であることを認識することもできる。次いで、システム・ソフトウェアは、ノード104またはノード105あるいはその両方にマップされるプロセスを識別し、可能であればそれらのプロセスを別のノード・セットに移行させ、ブロック602のパケットの監視を再開することになる。
【0040】
本発明がネットワーク環境におけるパケット・トラフィックを管理する機構も企図していることは、本開示を読んだ当業者には明らかであろう。図面に示し、詳細な説明において説明した本発明の実施形態は、単なる現時点において好ましい実施例とみなすべきものであることを理解されたい。頭記の特許請求の範囲は、開示の好ましい実施形態のあらゆる変形形態を包含するものとして広範に解釈されるものとする。
【図面の簡単な説明】
【0041】
【図1】本発明の一実施形態によるデータ処理ネットワークの要素を選択して示す図である。
【図2】図1のデータ処理ネットワークの実施態様をさらに詳細に示す図である。
【図3】ネットワークおよび相互接続のボトルネックを最小限に抑えるために、複数のネットワーク・ノードにプロセスを分配するのに適した方法およびソフトウェア・コードの実施態様を示す流れ図である。
【図4】図1に示すネットワーク・ノードの一実施態様の要素を選択して示す図である。
【図5】本発明の実施形態で使用するのに適したデータ・テーブルを示す概念図である。
【図6】本発明の実施形態による、ネットワークおよび相互接続のボトルネックを最小限に抑えるために、複数のネットワーク・ノードにプロセスを分配するのに適した方法およびソフトウェア・コードの実施態様を示す流れ図である。
【図7】本発明の一実施形態で使用するのに適したデータ・テーブルを示す概念図である。
【符号の説明】
【0042】
100 ネットワーク
101 ノード
110 相互接続部
121 第1の接続
122 第2の接続
201 スイッチ
230 エージェント
240 システム・ソフトウェア
402 プロセッサ
404 システム
406 ブリッジ
407 NUMA制御装置
412 アダプタ


【特許請求の範囲】
【請求項1】
複数のスイッチおよび複数の相互接続リンクを含む相互接続部を介して相互接続された複数のノードから構成されるデータ処理ネットワークにおいてパケット・トラフィックを管理する方法であって、
選択したリンクを通過するパケット・トラフィックの量を示すデータを収集するステップと、
前記収集したデータから使用頻度の高いリンクを識別するステップと、
前記使用頻度の高いリンクについて収集データを分析して、前記使用頻度の高いリンクのトラフィックの一因となっている送信元ノードおよび送信先ノードの組合せを識別するステップと、
前記識別した送信元および送信先の組合せに関連するプロセスを移行させるステップとを含み、前記移行されたプロセスにより生成されるパケットが、前記使用頻度の高いリンク以外のリンクからなる送信元から送信先までの経路を通過する、方法。
【請求項2】
パケット・トラフィックの量を示すデータを収集するステップが、前記相互接続部内の各スイッチのパケット・データを収集するステップを含む、請求項1に記載の方法。
【請求項3】
前記相互接続部内の各スイッチのデータを収集するステップが、各スイッチ上のエージェントを実行するステップを含み、各スイッチのエージェントが、該スイッチが接続される選択したリンク上のパケット・トラフィックを監視するように構成される、請求項2に記載の方法。
【請求項4】
各スイッチのデータを収集するステップが、各スイッチごとにデータ・テーブルを生成するステップを含み、各データ・テーブルが、当該スイッチに関連する各リンク対ごとにエントリを含み、各エントリが、監視期間の間に対応するリンク対を通過するパケットの数を示す、請求項3に記載の方法。
【請求項5】
各リンク対エントリが、当該スイッチに関連する入力リンクおよび出力リンクの一意的な組合せに対応する、請求項4に記載の方法。
【請求項6】
送信元および送信先の組合せに関連するプロセスを移行させるステップが、別の送信元ノードにプロセスを移行させるステップを含み、前記別の送信元ノードと前記送信先ノードとを接続する経路が前記使用頻度の高いリンクを含まない、請求項5に記載の方法。
【請求項7】
収集したデータを分析するステップが、関連する送信元および送信先の情報の最も多く見られる組合せを識別するステップを含む、請求項1に記載の方法。
【請求項8】
マルチプロセッサ・ネットワークであって、
一組のノードと、
前記ノードが互いに通信することを可能にする、前記ノードのそれぞれが接続される一組のスイッチおよび相互接続リンクと、
選択したリンクを通過するパケットの数を示すリンク・データを収集する手段と、
前記リンク・データから使用頻度の高いリンクを識別する手段と、
前記リンク・データを分析して、前記使用頻度の高いリンクを通過するパケットを発生させる候補プロセスを識別する手段と、
候補プロセスのマッピングを第1のノードから第2のノードに変更する手段とを含み、前記候補プロセスが発生させるパケットは、前記第2のノードにマップされると、前記使用頻度の高いリンクを迂回する経路を通る、マルチプロセッサ・ネットワーク。
【請求項9】
前記相互接続リンクはそれぞれ、1つの送信元装置を1つの送信先装置に接続するものであり、前記送信元装置および前記送信先装置は、前記一組のノードおよび前記一組のスイッチから選択される、請求項8に記載のネットワーク。
【請求項10】
リンク・データを収集する前記手段が、前記一組のスイッチのそれぞれにインストールされるエージェントを含み、各エージェントが、対応するスイッチが接続されるリンクのうちの少なくとも一部分についてのパケット・データを収集するように構成される、請求項9に記載のネットワーク。
【請求項11】
エージェントが収集したパケット・データが、対応するリンクを通過する各パケットごとに、当該パケットの送信元および送信先を示す送信元および送信先データを含む、請求項10に記載のネットワーク。
【請求項12】
各エージェントが、前記一部分のリンクのそれぞれについてデータ・テーブルを生成するように構成され、各データ・テーブルが、対応するリンクを通過する各パケットごとにエントリを有し、データ・テーブル中のエントリ数が、対応するリンクを通過するパケットの総数を示す、請求項11に記載のネットワーク。
【請求項13】
使用頻度の高いリンクを識別する前記手段が、指定閾値を超えるパケット総数を有するリンクを識別する手段を含む、請求項12に記載のネットワーク。
【請求項14】
リンク・データを分析する前記手段が、送信元データおよび送信先データの組合せに従ってパケット・データを評価して、頻繁に現れる送信元と送信先の組合せを識別する手段を含む、請求項13に記載のネットワーク。
【請求項15】
前記リンク・データが、パケットの送信元および送信先を示す情報を含まず、リンク・データを分析する前記手段が、送信元ノードおよび送信先ノードの組合せが識別されるまで連続的に最も可能性の高い直前および直後のネットワーク装置を決定する手段を含む、請求項10に記載のネットワーク。
【請求項16】
複数のスイッチおよび複数の相互接続リンクを含む相互接続部を介して相互接続された複数のノードで構成されたデータ処理ネットワークにおいてパケット・トラフィックを管理する、コンピュータ可読媒体に記憶されるコンピュータ・プログラムであって、
選択したリンクのパケット・トラフィックの量を示すデータを収集する、選択したスイッチ上のコンピュータ・コード手段と、
収集したデータを分析して、使用頻度の高いリンク上のトラフィックの一因となっている送信元ノードおよび送信先ノードの組合せを識別するコンピュータ・コード手段と、
識別した送信元および送信先の組合せに関連するプロセスを移行させて、使用頻度の高いリンク上のトラフィックを軽減するコンピュータ・コード手段とを含む、コンピュータ・プログラム。
【請求項17】
パケット・トラフィックの量を示すデータを収集することが、相互接続部内の各スイッチについてのパケット・データを収集することを含む、請求項16に記載のコンピュータ・プログラム。
【請求項18】
相互接続部内の各スイッチについてのデータを収集することが、スイッチ上のエージェントを実行することを含み、各スイッチ・エージェントが、当該スイッチが接続される選択したリンク上のパケット・トラフィックを監視するように構成される、請求項17に記載のコンピュータ・プログラム。
【請求項19】
各スイッチについてのデータを収集することが、当該スイッチが監視している各リンクについてデータ・テーブルを生成することを含み、前記データ・テーブルが、送信元ノードおよび送信先ノードの各組合せに対応するエントリを含む、請求項18に記載のコンピュータ・プログラム。
【請求項20】
各パケット中の送信元情報が、前記ネットワークの送信元ノードを識別し、各パケット中の送信先情報が、送信先ノードを識別する、請求項19に記載のコンピュータ・プログラム。
【請求項21】
送信元および送信先の組合せに関連するプロセスを移行させることが、別の送信元ノードにプロセスを移行させることを含み、前記別の送信元ノードと前記送信先ノードとを接続する経路が、前記使用頻度の高いリンクを含まない、請求項20に記載のコンピュータ・プログラム。
【請求項22】
パケット・トラフィック・データが、対応するパケットの送信元ノードまたは送信先ノードを示さず、収集したデータを分析する前記コード手段が、最も可能性の高い送信元ノードおよび送信先ノードの組合せが識別されるまで、連続的に最も可能性の高い直前および直後のネットワーク装置を識別するコード手段を含む、請求項16に記載のコンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2006−94464(P2006−94464A)
【公開日】平成18年4月6日(2006.4.6)
【国際特許分類】
【出願番号】特願2005−147711(P2005−147711)
【出願日】平成17年5月20日(2005.5.20)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】