(57)【特許請求の範囲】
【請求項１】
メモリに登録されている複数のルールの中から検索されるルールに基づいて受信フローを処理するネットワーク機能のワークロードを推定するワークロード推定方法であって、
前記メモリに登録されている各ルールについて前記ネットワーク機能の最大スループットを表す情報を取得し、
前記メモリに登録されている各ルールにマッチするフローのトラフィック量を測定し、
前記メモリに登録されている各ルールについて最大スループットに対するトラフィック量の割合を算出し、
前記メモリに登録されている各ルールについて算出された割合の総和に基づいて前記ネットワーク機能のワークロードを推定する
ことを特徴とするワークロード推定方法。
【請求項２】
メモリに登録されているＮ個のルールのいずれかに受信フローがマッチするまで１番目のルールからＮ番目のルールに向かって１つずつ順番に検索を行って、前記受信フローにマッチしたルールに従って前記受信フローを処理するネットワーク機能のワークロードを推定するワークロード推定方法であって、
前記メモリに登録されている各ルールについて前記ネットワーク機能の最大スループットを表す情報を取得し、
前記メモリに登録されている各ルールにマッチするフローのトラフィック量を測定し、
下記のワークロード算出式に従って前記ネットワーク機能のワークロードを推定する
【数１０】
0006583048.tif 000011
Ｔn：前記Ｎ個のルールの中のｎ番目のルールについての前記ネットワーク機能の最大スループット
ｔn：前記Ｎ個のルールの中のｎ番目のルールにマッチするフローについて測定されたトラフィック量
ｎ：前記Ｎ個のルールを識別する１からＮの整数
ことを特徴とするワークロード推定方法。
【請求項３】
前記Ｎ個のルールの中から抽出される複数の抽出ルールそれぞれについて前記ネットワーク機能の最大スループットを測定し、
前記抽出ルールそれぞれについて測定された最大スループットに基づいて、前記ネットワーク機能の最大スループットを表す近似式を生成し、
前記近似式を用いて前記Ｎ個のルールそれぞれについて前記ネットワーク機能の最大スループットを算出し、
前記Ｎ個のルールそれぞれについて算出された最大スループットを前記ワークロード算出式に与えることにより、前記ネットワーク機能のワークロードを推定する
ことを特徴とする請求項２に記載のワークロード推定方法。
【請求項４】
前記近似式を表す近似モデルは
【数１１】
0006583048.tif 000012
で表され、
前記抽出ルールそれぞれについて測定された最大スループットおよび前記抽出ルールを識別する整数ｎを前記近似モデルに与えることにより複数の方程式を生成し、
前記複数の方程式に対して非線形最小二乗法を適用して前記近似モデル中の実数ａおよび実数ｂを求めて前記近似式を生成する
ことを特徴とする請求項３に記載のワークロード推定方法。
【請求項５】
メモリに登録されている複数のルールの中から検索されるルールに基づいて受信フローを処理するネットワーク機能のワークロードを推定するワークロード推定装置であって、
前記メモリに登録されている各ルールについて前記ネットワーク機能の最大スループットを表す情報を取得する最大スループット処理部と、
前記メモリに登録されている各ルールにマッチするフローのトラフィック量を測定するトラフィック測定部と、
前記メモリに登録されている各ルールについて最大スループットに対するトラフィック量の割合を算出し、算出した割合の総和に基づいて前記ネットワーク機能のワークロードを推定する推定部と、
を有するワークロード推定装置。
【請求項６】
メモリに登録されている複数のルールの中から検索されるルールに基づいて受信フローを処理するネットワーク機能のワークロードを推定するワークロード推定プログラムであって、
前記メモリに登録されている各ルールについて前記ネットワーク機能の最大スループットを表す情報を取得し、
前記メモリに登録されている各ルールにマッチするフローのトラフィック量を測定し、
前記メモリに登録されている各ルールについて最大スループットに対するトラフィック量の割合を算出し、
前記メモリに登録されている各ルールについて算出された割合の総和に基づいて前記ネットワーク機能のワークロードを推定する
処理をコンピュータに実行させるワークロード推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク機能のワークロードを推定する方法および装置に係わる。
【背景技術】
【０００２】
近年、ネットワーク機能を仮想化するＮＦＶ（Network Functions Virtualization）が注目されている。ＮＦＶは、ネットワーク機能を汎用サーバ上で動作するアプリケーションで実現することができる。したがって、ネットワーク機器のコストを削減することができる。また、ＮＦＶにより、ネットワークサービスの柔軟性の向上および高機能化が実現され得る。
【０００３】
一方、ネットワーク機能が仮想化されると、そのネットワーク機能の最大処理性能（以下、単に「性能」と呼ぶことがある）を把握することが困難になる。この理由は、ネットワーク機能の性能は、仮想化環境およびネットワーク機能の設定内容に依存するからである。例えば、ファイアウォールまたはルータ等のテーブル検索処理を行うネットワーク機能の最大スループットは、テーブル検索回数に依存する。このため、トラフィック量が同じ場合であっても、テーブル検索回数の少ないフローと比べて、テーブル検索回数の多いフローにおいてパケットロスが発生しやすくなる。そして、ネットワーク機能の性能を正しく把握することなくネットワークを設計すると、過負荷によるパケットロスが発生するおそれがある。あるいは、パケットロスを回避するために最大トラフィックを過剰に大きく設定すると、ネットワークリソースの利用効率が低下してしまう。したがって、ＮＦＶを有効に利用するためには、ネットワーク機能の性能を精度よく評価することが重要である。
【０００４】
ネットワーク機能の性能は、例えば、ＣＰＵ使用率に基づいて評価される。例えば、物理サーバを利用してネットワーク機能を提供するケースでは、その物理サーバのＣＰＵ使用率に基づいてネットワーク機能の性能が評価される。或いは、仮想マシンを利用してネットワーク機能を提供するケースでは、その仮想マシンに割り当てられるＣＰＵの使用率に基づいてネットワーク機能の性能が評価される。ここで、ＣＰＵ使用率は、ネットワーク機能の現在のワークロードまたは余剰処理能力を表す。したがって、ＣＰＵ使用率に基づいて、ネットワーク機能の性能（たとえば、最大スループット）を推定することができる。
【０００５】
なお、サービス運用中のネットワークにおいて、品質条件を満たしながら設備運用コストを最小化させる方法が提案されている（例えば、特許文献１）。また、無線通信に動的に資源を提供する方法が提案されている（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−４４４８７号公報
【特許文献２】特表２０１１−５３０２３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところが、ネットワーク機能がテーブル検索処理を実行する場合、ＣＰＵ使用率に基づいてネットワーク機能の性能を精度よく評価できないことがある。一例として、本件出願人は、下記の実験環境において、ネットワーク機能に流入するトラフィック量、ＣＰＵ使用率、最大スループットの関係を測定した。
【０００８】
Linux（登録商標）標準のソフトウェアであるiptablesを用いて物理サーバ上にファイアウォールが構築される。ファイアウォールのルールテーブルには、１０００個のルールが設定される。各ルールのマッチング条件は、パケットの送信元ＭＡＣアドレスである。１番目〜９９９番目のルールは、それぞれ、条件にマッチしたパケットを廃棄する。１０００番目のルールは、条件にマッチしたパケットの転送を許可する。ＣＰＵは、受信パケットの送信元ＭＡＣアドレスでルールテーブルを検索する。このとき、受信パケットにマッチするルールが検出されるまで、１番目のルールから１０００番目のルールに向かって１つずつ順番に検索処理が実行される。例えば、１番目のルールにマッチするパケットが入力されたときは、ＣＰＵは、テーブル検索を１回だけ実行する。また、１０００番目のルールにマッチするパケットが入力されたときは、ＣＰＵは、テーブル検索を１０００回実行する。パケット送信器は、指定された送信レートで、１０００番目のルールにマッチするパケットを送信する。そして、上記パケットの送信レートを変化させながらＣＰＵ使用率が測定される。加えて、ファイアウォールから出力されるパケットをモニタすることにより、パケットロスが測定される。なお、ファイアウォールは、１０００番目のルールにマッチするパケットのみを出力する。
【０００９】
図１は、トラフィック量に対するＣＰＵ使用率およびパケットロスについての測定結果の一例を示す。この測定においては、ＣＰＵ使用率は、トラフィック量に対して特徴的な傾向を有する。具体的には、送信レートが低い領域では、ＣＰＵ使用率は、ほぼ横ばいである。ところが、送信レートが所定の閾値（図１では、約180000fps）を超えると、ＣＰＵ使用率は急激に上昇する。そして、送信レートが220000fpsを超えると、パケットロスが発生する。この場合、最大スループットは、220000fpsである。
【００１０】
このように、ネットワーク機能がテーブル検索処理を実行するときには、ＣＰＵ使用率は、送信レートの増加に対してリニアに上昇しない。例えば、送信レートが40000fpsから180000fpsへ増加すると、ネットワーク機能のワークロードも増加しているはずである。ところが、送信レートが40000fpsから180000fpsへ増加しても、ＣＰＵ使用率は大きく変化していない。したがって、ＣＰＵ使用率に基づいてワークロードを推定することは困難である。
【００１１】
ネットワーク機能の性能は、トラフィック量とネットワーク機能のワークロードとの関係に基づいて推定される。このため、ワークロードを精度よく推定できないときは、ネットワーク機能の性能を精度よく推定することは困難である。例えば、図１に示す測定結果では、最大スループットは220000fpsである。ところが、最大スループットの約８０パーセントのトラフィックが流れていても、ＣＰＵ使用率は約２０パーセントである。したがって、ＣＰＵ使用率から最大スループット（即ち、ネットワーク機能の性能）を推定することは困難である。なお、ネットワーク機能の性能を精度よく推定できないと、上述したように、パケットロスが発生したり、ネットワークリソースの利用効率が低下することがある。
【００１２】
本発明の１つの側面に係わる目的は、ネットワーク機能のワークロードを精度よく推定する装置および方法を提供することである。
【課題を解決するための手段】
【００１３】
本発明の１つの態様のワークロード推定方法は、メモリに登録されている複数のルールの中から検索されるルールに基づいて受信フローを処理するネットワーク機能のワークロードを推定する。このワークロード推定方法は、前記メモリに登録されている各ルールについて前記ネットワーク機能の最大スループットを表す情報を取得し、前記メモリに登録されている各ルールにマッチするフローのトラフィック量を測定し、前記メモリに登録されている各ルールについて最大スループットに対するトラフィック量の割合を算出し、前記メモリに登録されている各ルールについて算出された割合の総和に基づいて前記ネットワーク機能のワークロードを推定する。
【発明の効果】
【００１４】
上述の態様によれば、ネットワーク機能のワークロードを精度よく推定できる。
【図面の簡単な説明】
【００１５】
【図１】ＣＰＵ使用率およびパケットロスについての測定結果の一例を示す図である。
【図２】ＮＦＶシステムの一例を示す図である。
【図３】ワークロード推定方法が使用されるネットワークシステムの一例を示す図である。
【図４】ネットワーク機器の構成の一例を示す図である。
【図５】ルールテーブルの一例を示す図である。
【図６】ルールテーブルを検索する方法の一例を示すフローチャートである。
【図７】ワークロード推定装置の一例を示す図である。
【図８】最大スループットを測定する測定系の一例を示す図である。
【図９】ネットワーク機能のワークロードを推定する方法の一例を示すフローチャートである。
【図１０】最大スループットの測定値の一例を示す図である。
【図１１】各ルールにマッチするフローのトラフィック量の一例を示す図である。
【図１２】ワークロードＷＬの算出結果の一例を示す図である。
【図１３】ワークロードＷＬの算出結果の他の例を示す図である。
【図１４】最大スループットの近似値と測定値との比較を示す図である。
【図１５】近似式を用いて最大スループットを算出する方法の一例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
図２は、ＮＦＶ（Network Functions Virtualization）システムの一例を示す。ＮＦＶシステムにおいては、ネットワークが提供する機能（以下、ネットワーク機能）は、仮想化されている。したがって、ネットワーク機能は、汎用サーバ上で動作するアプリケーションで実現され得る。例えば、ネットワーク内のノードに設けられるルータは、パケット転送機能を提供するアプリケーションにより実現される。また、ファイアウォールは、指定されたルールに従ってパケットを廃棄または転送するアプリケーションにより実現される。
【００１７】
コントローラ１０は、ネットワーク機能を制御する。すなわち、ネットワーク機能は、コントローラ１０による制御に従って、ネットワーク内を流れるパケットフローを処理する。また、コントローラ１０は、ネットワーク機能を制御するために必要な情報をネットワーク機能から収集する。例えば、コントローラ１０は、ネットワーク内のトラフィック量を表す情報を収集する。
【００１８】
図３は、本発明の実施形態に係わるワークロード推定方法が使用されるネットワークシステムの一例を示す。ネットワークシステムは、コントローラ１０および複数のネットワーク機器２０により構成される。ネットワーク機器２０は、例えば、ネットワーク内のノードに設けられる。また、ネットワーク機器２０は、例えば光ファイバリンクにより、他のネットワーク機器２０に接続されている。或いは、無線リンクによりネットワーク機器２０どうしが接続されていてもよい。
【００１９】
コントローラ１０は、ネットワーク機器２０に対して、ネットワーク機能を制御するためのプログラムおよびデータを提供する。たとえば、ネットワーク機器２０がファイアウォールを構築する場合は、コントローラ１０は、そのネットワーク機器２０に対して、ファイアウォールを実現するためのアプリケーションプログラムおよびルール情報を提供する。そうすると、ネットワーク機器２０は、アプリケーションプログラムを実行することにより、与えられたルール情報に基づくファイアウォール機能を提供する。すなわち、ネットワーク機器２０は、コントローラ１０による制御に従って、ネットワーク機能を提供することができる。
【００２０】
コントローラ１０は、ネットワーク機器２０から、ネットワーク機能を制御するために必要な情報を収集する。例えば、コントローラ１０は、ネットワーク機器２０からトラフィック量を表す情報を収集することができる。
【００２１】
ワークロード推定装置３０は、ネットワーク機能のワークロードを推定する。ワークロードは、この実施例では、ネットワーク機能にかかる負荷の大きさを表す。すなわち、ワークロードは、ネットワーク機能の最大能力に対して、実際に使用されている能力の割合を表す。なお、ネットワーク機能のワークロードは、ＣＰＵ使用率に比例するものではなく、ＣＰＵ使用率、メモリ使用率、ネットワークリソースの使用率などに依存する。
【００２２】
ワークロード推定装置３０は、図３に示す例では、ネットワーク機器２０ａに接続されている。この場合、ワークロード推定装置３０は、ネットワーク機器２０ａにより提供されるネットワーク機能のワークロードを推定することができる。また、ワークロード推定装置３０は、コントローラ１０の中に設けられていてもよい。この場合、ワークロード推定装置３０は、複数のネットワーク機器２０により提供される各ネットワーク機能のワークロードをそれぞれ推定できる。或いは、ワークロード推定装置３０は、各ネットワーク機器２０の中に内蔵されていてもよい。
【００２３】
図４は、ネットワーク機器２０の構成の一例を示す。この実施例では、ネットワーク機器２０は、入力ポート２１、バッファメモリ２２、メモリ２３、ＣＰＵ２５、出力ポート２６を備える。なお、ネットワーク機器２０は、複数の入力ポート２１および複数の出力ポート２６を備えていてもよい。また、ネットワーク機器２０は、図４に示していない他の回路要素を備えていてもよい。
【００２４】
バッファメモリ２２は、受信パケットを一時的に格納する。すなわち、入力ポート２１に到着した受信するパケットは、バッファメモリ２２に格納される。メモリ２３には、ネットワーク機能を提供するための情報が格納される。この実施例では、メモリ２３にはルールテーブル２４が格納されている。なお、ルールテーブル２４に設定されるデータは、例えば、図２または図３に示すコントローラ１０から与えられる。
【００２５】
図５は、ルールテーブル２４の一例を示す。ルールテーブル２４には、複数のルールが登録されている。各ルールは、この例では、「条件」および「動作」により表される。条件は、ルールに従って受信パケットを処理するか否かを判定するために使用される。動作は、条件にマッチした受信パケットに対して実行すべき動作を表す。例えば、図５に示すルール１は、「受信パケットの送信元アドレスＳＡがｘｘｘ１であったときに、その受信パケットを廃棄する」を表す。また、ルールＮは、「受信パケットの送信元アドレスＳＡがｘｘｘ７であったときに、その受信パケットを宛先へ転送する」を表す。なお、図５に示す「カウンタ」については後述する。
【００２６】
ＣＰＵ２５は、バッファメモリ２２に格納された受信パケットのヘッダに基づいてその受信パケットを処理する。このとき、ＣＰＵ２５は、受信パケットのヘッダに格納されているヘッダ情報に基づいてルールテーブル２４を検索する。そして、ＣＰＵ２５は、ヘッダ情報にマッチするルールを特定することにより、その受信パケットに対する動作を決定する。例えば、受信パケットの送信元アドレスＳＡが「ｘｘｘ１」であるときは、ルールテーブル２４においてルール１が特定される。この場合、ＣＰＵ２５は、ルール１に従って、バッファメモリ２２に格納されている受信パケットを廃棄する。また、受信パケットの送信元アドレスＳＡが「ｘｘｘ７」であるときは、ルールテーブル２４においてルールＮが特定される。この場合、ＣＰＵ２５は、ルールＮに従って、バッファメモリ２２に格納されている受信パケットを、出力ポート２６を介して宛先へ転送する。
【００２７】
図６は、ルールテーブル２４を検索する方法の一例を示すフローチャートである。このフローチャートの処理は、図４に示すネットワーク機器２０において受信パケットがバッファメモリ２２に格納されたときに実行される。
【００２８】
Ｓ１において、ＣＰＵ２５は、受信パケットのヘッダ情報を取得する。ＣＰＵ２５により取得されるヘッダ情報は、例えば、送信元アドレスＳＡ、宛先アドレスＤＡ、ポート番号などを含む。Ｓ２において、ＣＰＵ２５は、変数ｎを「１」に初期化する。変数ｎは、ルールメモリ２４に登録されているＮ個のルールを識別する整数である。
【００２９】
Ｓ３において、ＣＰＵ２５は、Ｓ１で取得したヘッダ情報がルールｎにマッチする否かを判定する。具体的には、Ｓ１で取得したヘッダ情報がルールｎの「条件」にマッチする否かが判定される。ヘッダ情報がルールｎにマッチしないときは、Ｓ４において、ＣＰＵ２５は、変数ｎを１だけインクリメントする。Ｓ５において、ＣＰＵ２５は、変数ｎがＮよりも大きいか否かを判定する。Ｎは、ルールテーブル２４に登録されているルールの個数を表す。そして、変数ｎがＮ以下であれば、ＣＰＵ２５の処理はＳ３に戻る。
【００３０】
ＣＰＵ２５は、Ｓ３〜Ｓ５において、ルールテーブル２４に登録されているＮ個のルールの中から、受信パケットのヘッダ情報にマッチするルールを検索する。そして、受信パケットにマッチするルールｎが特定されたときは、ＣＰＵ２５は、Ｓ６において、特定されたルールｎに従ってその受信パケットを処理する。さらに、Ｓ７において、ＣＰＵ２５は、ルールテーブル２４において、受信パケットにマッチしたルールｎに対応するカウンタをインクリメントする。すなわち、図５に示すルールテーブル２４のカウンタは、各ルール１〜Ｎにマッチしたパケットの個数を表す。なお、図５に示すカウンタは、ルールテーブル２４の一部であってもよいし、ルールテーブル２４とは独立し設けられるようにしてもよい。
【００３１】
受信パケットがいずれのルールにもマッチしないきは、ＣＰＵ２５は、Ｓ８において、デフォルト処理を実行する。デフォルト処理において、ＣＰＵ２５は、受信パケットを廃棄してもよい。
【００３２】
このように、ＣＰＵ２５は、ルールテーブル２４に登録されているＮ個のルールのいずれかに受信パケットがマッチするまで、ルール１からルールＮに向かって１つずつ順番に検索を実行する。したがって、ルールテーブル２４の検索時間は、受信パケットにマッチするルールのルール番号に依存する。たとえば、ルール１にマッチするヘッダ情報を有するパケットがネットワーク機器２０に到着したときは、ＣＰＵ２５は、図６に示すＳ３の検索処理を１回実行するだけで受信パケットにマッチするルールを特定できる。また、ルール２にマッチするヘッダ情報を有するパケットがネットワーク機器２０に到着したときは、ＣＰＵ２５は、Ｓ３の検索処理を２回実行することにより受信パケットにマッチするルールを特定できる。すなわち、ルールｎにマッチするヘッダ情報を有するパケットがネットワーク機器２０に到着したときは、ＣＰＵ２５は、Ｓ３の検索処理をｎ回実行することにより受信パケットにマッチするルールを特定できる。
【００３３】
なお、この明細書では、パケット（または、フレーム）の流れを「フロー」と呼ぶことがある。フローは、例えば、各パケットのヘッダ情報に基づいて識別される。すなわち、フローは、例えば、ヘッダに格納されているアドレス（ＭＡＣアドレス、ＩＰアドレスなど）、ＴＣＰ／ＵＤＰのポート番号、又はそれらの組合せにより識別される。
【００３４】
ネットワーク機器２０において、ＣＰＵ２５は、受信パケットのヘッダ情報に基づいてフローを識別することができる。以下の記載では、受信パケットのヘッダ情報に基づいて識別されるフローを「受信フロー」と呼ぶことがある。そして、ＣＰＵ２５は、受信フローにマッチするルールを特定し、特定したルールに従ってその受信フローを処理する。
【００３５】
図７は、ワークロード推定装置３０の一例を示す。ワークロード推定装置３０は、図７に示す例では、最大スループット処理部３１、最大スループット情報格納部３２、トラフィック測定部３３、推定部３４を備える。最大スループット処理部３１、トラフィック測定部３３、推定部３４は、たとえば、与えられたワークロード推定プログラムをプロセッサを用いて実行することにより実現される。この場合、ワークロード推定プログラムは、最大スループット処理部３１、トラフィック測定部３３、推定部３４の機能を実現するためのコードを含む。ワークロード推定装置３０が近似式生成部３５を含むときは、ワークロード推定プログラムは、近似式生成部３５の機能を実現するためのコードも含む。ワークロード推定プログラムは、プロセッサが読み出し可能な記録媒体に記録される。記録媒体は、例えば、半導体メモリ、磁気記録媒体、光学記録媒体などにより実現される。
【００３６】
最大スループット処理部３１、トラフィック測定部３３、推定部３４、近似式生成部３５の機能の一部は、ハードウェア回路で実現してもよい。また、最大スループット情報格納部３２は、例えば、半導体メモリにより実現される。
【００３７】
最大スループット処理部３１は、ネットワーク機能の最大スループットを表す最大スループット情報を取得する。ここで、最大スループット情報は、ルールテーブル２４に登録されている各ルール１〜Ｎについてのネットワーク機能の最大スループットを表す。各ルール１〜Ｎについてのネットワーク機能の最大スループットは、図８に示す測定系により測定される。
【００３８】
スループット測定装置４０は、図８に示すように、トラフィック生成器４１、パケット送信器（Ｔｘ）４２、およびパケット受信器（Ｒｘ）４３を備える。トラフィック生成器４１は、指定されたフローを生成することができる。すなわち、トラフィック生成器４１は、指定されたヘッダ情報を有するテストパケットを生成することができる。パケット送信器４２は、トラフィック生成器４１により生成されるテストパケットをネットワーク機器２０へ送信する。そうすると、ネットワーク機器２０は、スループット測定装置４０から受信するテストパケットをルールテーブル２４に従って処理する。パケット受信器４３は、ネットワーク機器２０から出力されるテストパケットを受信する。
【００３９】
上述の測定系において、例えば、ルール１についての最大スループットを測定するときは、スループット測定装置４０は、ルール１にマッチするフローを生成する。すなわち、スループット測定装置４０は、ルール１の条件にマッチするヘッダ情報を有するテストパケットを生成してネットワーク機器２０へ送信する。そうすると、ネットワーク機器２０は、ルールテーブル２４に従って受信フローを処理する。ここで、ネットワーク機器２０は、受信テストパケットがルールテーブル２４に登録されているルール１〜Ｎのいずれかにマッチしたときは、そのテストパケットをスループット測定装置４０へ出力するものとする。このケースでは、受信フローはルール１にマッチするので、ネットワーク機器２０は、受信したテストパケットをスループット測定装置４０へ出力する。
【００４０】
ここで、スループット測定装置４０は、ネットワーク機器２０の最大スループットを超える送信レートで、ルール１にマッチするフローを出力する。そうすると、ネットワーク機器２０は、すべてのテストパケットを処理することはできす、一部のテストパケットが廃棄される。したがって、スループット測定装置４０は、ネットワーク機器２０から受信するテストパケットのトラフィック量をモニタすることにより、ネットワーク機器２０におけるルール１についての最大スループットを測定できる。
【００４１】
同様に、スループット測定装置４０は、ルールｎにマッチするフローをネットワーク機器２０へ送信し、ネットワーク機器２０から受信するフローのトラフィック量をモニタすることにより、ルールｎ（ｎ＝１〜Ｎ）についての最大スループットを測定できる。そして、各ルールについての最大スループットの測定値は、スループット測定装置４０からワークロード推定装置３０へ通知される。なお、スループット測定装置４０は、すべてのルール１〜Ｎそれぞれについて最大スループットを測定してもよいし、ルール１〜Ｎの中の一部のルールについて最大スループットを測定してもよい。
【００４２】
図７の説明に戻る。図７において、最大スループット処理部３１は、スループット測定装置４０から通知される最大スループット測定値を最大スループット情報格納部３２に格納する。なお、スループット測定装置４０においてルール１〜Ｎの中の一部のルールのみについて最大スループットが測定されるときは、他のルールについての最大スループットは、後述する近似式を用いて算出される。
【００４３】
トラフィック測定部３３は、ルールテーブル２４に登録されている各ルール１〜Ｎにマッチするフローのトラフィック量をそれぞれ測定する。トラフィック量は、例えば、ルールテーブル２４のカウンタを利用して測定される。ここで、ルールテーブル２４のカウンタは、上述したように、各ルールｎ（ｎ＝１〜Ｎ）にマッチしたパケットの累積個数を表す。したがって、トラフィック測定部３３は、例えば、１秒間隔でカウンタ値を取得し、そのカウンタ値の差分を計算することでトラフィック量を得ることができる。例えば、ある時刻において取得したルールｎに対応するカウンタ値が「２００」であり、その１秒後に取得したカウンタ値が「３００」であったものとする。この場合、ルールｎのトラフィック量は１００フレーム／秒（100fps）である。
【００４４】
推定部３４は、下記のワークフロー算出式を利用して、ネットワーク機器２０が提供するネットワーク機能のワークロードＷＬを計算する。
【００４５】
【数１】
0006583048.tif 000002
【００４６】
Ｔnは、ルールテーブル２４に登録されているルールｎ（ｎ＝１〜Ｎ）に対するネットワーク機能の最大スループットを表す。最大スループットは、ネットワーク機器２０がネットワーク機能を提供する前に、図８に示す測定系を利用して測定される。測定された最大スループットを表す最大スループット情報は、最大スループット情報格納部３２に格納されている。ｔnは、ルールテーブル２４に登録されているルールｎ（ｎ＝１〜Ｎ）にマッチするフローのトラフィック量を表す。トラフィック量は、トラフィック測定部３３により測定される。
【００４７】
図９は、ネットワーク機能のワークロードを推定する方法の一例を示すフローチャートである。この実施例では、図８に示す測定系を利用して、ルールテーブル２４に登録されている全てのルール１〜Ｎについてそれぞれ最大スループットが測定されるものとする。
【００４８】
Ｓ１１において、図８に示す測定系は、ルールテーブル２４に登録されている全てのルール１〜Ｎについてそれぞれネットワーク機能の最大スループットを測定する。この測定結果は、ワークロード推定装置３０に通知される。すなわち、ワークロード推定装置３０は、各ルール１〜Ｎについての最大スループットＴ1〜Ｔnを表す情報を取得する。
【００４９】
Ｓ１２において、トラフィック測定部３３は、ルールテーブル２４に登録されている各ルール１〜Ｎにマッチするフローのトラフィック量をそれぞれ測定する。すなわち、各ルール１〜Ｎについてトラフィック量ｔ1〜ｔnが得られる。
【００５０】
Ｓ１３において、推定部３４は、Ｓ１１で得られる各ルールの最大スループットおよびＳ１２で得られる各ルールのトラフィック量に基づいて、ネットワーク機能のワークロードを計算する。具体的には、推定部３４は、ルール毎に、最大スループットに対するトラフィック量の割合を計算する。そして、推定部３４は、ルール１〜Ｎについて得られるＮ個の割合値の総和を計算することによりネットワーク機能にかかるワークロードを計算する。即ち、推定部３４は、最大スループットＴ1〜Ｔnおよびトラフィック量ｔ1〜ｔnをワークフロー算出式に与えることによりワークロードＷＬを計算する。
【００５１】
ここで、ワークフロー算出式について説明する。なお、以下の記載では、スループットは、１秒間に処理可能なパケット（又は、フレーム）の個数を表し、トラフィック量は、１秒間に受信するパケット（又は、フレーム）の個数を表すものとする。
【００５２】
ｎ番目のルール（すなわち、ルールｎ）についての最大スループットがＴn[fps]で表されるとき、ルールｎにマッチする１個のパケットを処理するために要する時間Ｐn[s]は、下式で表される。
【００５３】
【数２】
0006583048.tif 000003
【００５４】
また、ルールｎにマッチするフローのトラフィック量がｔn[fps]で表されるとき、ルールｎにマッチするフローを処理するために要する時間は、ｔnＰnで表される。
【００５５】
そうすると、１秒間に受信する全フロー（ここでは、ルール１〜Ｎのいずれかにマッチするフローの総和）を処理するために要する時間ＴＰＴ（Total Processing Time）は、下式で表される。
【００５６】
【数３】
0006583048.tif 000004
【００５７】
ここで、時間ＴＰＴが「１（秒）」以下であれば、ネットワーク機能は、全受信フローを処理できる。換言すれば、時間ＴＰＴが「１（秒）」を越えるときは、ネットワーク機能は、受信フローの一部を処理できない。したがって、パケットロスが発生する条件は、下式で表される。
【００５８】
【数４】
0006583048.tif 000005
【００５９】
さらに、「１（秒）」に対する時間ＴＰＴの比率は、ネットワーク機能にかかる負荷の大きさを表す。したがって、ネットワーク機能のワークロードＷＬは、下式により導出される。
【００６０】
【数５】
0006583048.tif 000006
【００６１】
＜実施例＞
以下の実施例では、図８に示す測定系を利用して、ネットワーク機器２０が提供するネットワーク機能のワークロードが推定される。測定条件は、以下の通りである。
【００６２】
ルールテーブル２４には、ルール１〜１０００が登録されている。スループット測定装置４０は、ルール１００、２００、３００、４００、５００、６００、７００、８００、９００、１０００にマッチする１０本のフローを同時に生成する。各ルール１００〜１０００についての予め個々に測定された最大スループットは、図１０に示す通りである。ルール１〜１０００にマッチする各フローのトラフィック量は、図１１に示す通りである。すなわち、ルール２００、３００、４００、５００、６００、７００、８００、９００、１０００にマッチする各フローのトラフィック量は10000fpsである。
【００６３】
上述の条件の下で、スループット測定装置４０は、ルール１００にマッチするフローのトラフィック量ｔ100をゼロから増加させる。そして、ワークロード推定装置３０は、ワークロード算出式を用いて、ネットワーク機能のワークロードＷＬを計算する。例えば、トラフィック量ｔ100がゼロであるときは、ネットワーク機能のワークロードＷＬは下式により算出される。
【００６４】
【数６】
0006583048.tif 000007
この計算結果は、ネットワーク機能のワークロードが約２５パーセントであることを表している。
【００６５】
図１２は、ワークロードＷＬの算出結果の一例を示す。この算出結果は、図１０〜図１１に示す条件の下で、ルール１００にマッチするフローのトラフィック量ｔ100をゼロから増加させることにより得られたものである。また、図１２においては、図４に示すＣＰＵ２５の使用率およびパケットロス率もあわせてプロットされている。
【００６６】
トラフィック量ｔ100（ここでは、ルール１００にマッチするフローの送信レート）の増加に対して、ＣＰＵ使用率は、ほぼ２０パーセントで推移している。しかしながら、実際には、トラフィック量が増加すると、ネットワーク機能にかかる負荷も大きくなるはずである。すなわち、ＣＰＵ使用率は、ネットワーク機能にかかる負荷を正しく表していないと考えられる。
【００６７】
これに対して、ワークロードＷＬは、トラフィック量にほぼ比例する。そして、ワークロードＷＬが１００パーセントに近づいたときに、パケットロスが発生し始める。したがって、ワークロードＷＬは、ネットワーク機能にかかる負荷を正しく表していると考えられる。
【００６８】
図１３は、ワークロードＷＬの算出結果の他の例を示す。図１３に示す実施例では、ルール１０００にマッチするフローのみがネットワーク機器２０に入力される。そして、ルール１０００にマッチするフローの送信レート（即ち、トラフィック量ｔ1000）が変化する。このケースでも、ワークロードＷＬは、トラフィック量にほぼ比例している。
【００６９】
このように、実施形態に係わるワークロード推定方法により得られるワークロード値ＷＬは、ネットワーク機能にかかる負荷を正しく表す。したがって、このワークロード値ＷＬを使用すれば、ネットワークのトラフィックに応じて、ネットワーク機能の性能または容量を適切に設計することが可能である。例えば、パケットロスを抑制しながら、ネットワークリソースの利用効率が高くなるように、ネットワーク機能を設計できる。
【００７０】
＜他の実施形態＞
ワークロード算出式を用いてネットワーク機能のワークロードを算出する際には、ルールテーブル２４に登録されている全てのルールについてネットワーク機能の最大スループットが既知であることが求められる。ところが、ルールテーブル２４に登録されるルールの個数が多い場合、全てのルールについて最大スループットを測定するためには相当の作業時間を要する。
【００７１】
そこで、他の実施形態においては、スループット測定装置４０は、ルールテーブル２４に登録されているルール１〜Ｎの中から抽出される所定数のルールについて最大スループットをそれぞれ測定する。また、図７に示す近似式生成部３５は、抽出された各ルールについて測定された最大スループットに基づいて、ネットワーク機能の最大スループットを表す近似式を生成する。更に、最大スループット処理部３１は、この近似式を用いて、ルールテーブル２４に登録されている各ルールについての最大スループットＴ1〜ＴNを算出する。そして、推定部３３は、このようにして算出される最大スループットＴ1〜ＴNを使用して、ネットワーク機能のワークロードを推定する。以下の記載において、近似式を生成する方法について説明する。
【００７２】
近似式を生成するための性能モデルにおいては、ネットワーク機能が１個の受信パケットを処理するために要する処理時間が「ａ＋ｂｎ」で表される。「ｂ」は、ルールテーブル２４を１回検索するために要する時間を表す。「ｎ」は、ルールテーブル２４において受信パケットにマッチするルールが発見されるまでに実行される検索回数を表す。したがって、「ｂｎ（ｎとｂとの積）」は、１個の受信パケットについてのテーブル検索時間を表す。なお、この実施例では、受信パケットにマッチするルールが検出されるまで、ルール１からルールＮに向かって１つずつ順番に検索処理が実行される。したがって、性能モデルで使用される「ｎ」は、ルール番号に相当する。「ａ」は、テーブル検索以外の処理に要する時間を表す。例えば、「ａ」は、受信パケットをバッファメモリ２２へ書き込むために要する時間、バッファメモリ２２からパケットを読み出すために要する時間などを含む。
【００７３】
上述の性能モデルを使用する場合、各ルールの最大スループットＴnを表す近似モデルは、下記の通りである。
【００７４】
【数７】
0006583048.tif 000008
Ｋは、定数である。ここで、例えば、処理時間ａおよび検索時間ｂが「秒」で表される場合、定数Ｋは、１である。また、処理時間ａおよび検索時間ｂが「μ秒」で表される場合は、定数Ｋは、１００００００（１秒＝１００００００マイクロ秒）である。
【００７５】
近似式を生成するためには、処理時間ａおよび検索時間ｂを決定する必要がある。そして、処理時間ａおよび検索時間ｂは、ルールテーブル２４に登録されているルール１〜Ｎの中から抽出される所定数のルールについての最大スループットに基づいて決定される。具体的には、近似式生成部３５は、抽出された各ルールについて測定された最大スループットおよびルール番号を近似モデルに与えることにより、複数の方程式を生成する。そして、近似式生成部３５は、生成した複数の方程式に対して非線形最小二乗法を適用して実数ａおよび実数ｂを求める。
【００７６】
なお、ルールテーブル２４に登録されているルール１〜Ｎの中から抽出すべきルールの個数は、特に限定されるものではない。ただし、ルールを抽出する間隔が狭いほど、或いは、抽出するルールの個数が多いほど、近似式の精度は高い。ここで、ルール番号が小さい領域では、ルール番号に変化に対して最大スループットの変化が大きい。よって、抽出すべきルールの個数を抑制しながら近似式の精度を高くするためには、ルール番号が小さい領域で抽出間隔を狭くすることが好ましい。
【００７７】
例えば、ルール番号１〜２０においては、ルール１、１０、１５、１６、１７、１８、１９、２０が抽出される。ルール番号２０〜１００においては、１０ルール間隔でルールが抽出される。ルール番号１００〜２０００においては、１００ルール間隔でルールが抽出される。ルール番号２０００〜５０００においては、５００ルール間隔でルールが抽出される。
【００７８】
図８に示す測定系において、これらのルールに対してそれぞれ最大スループットが測定され、近似モデルに与えられる。例えば、ルール１００について測定された最大スループットが1123817fpsであった場合、近似モデルに対して「Ｔ100＝1123817」及び「ｎ＝１００」を与えることにより１つの方程式が得られる。ｎは、ルールを識別するルール番号を表すと共に、テーブル検索の実行回数に相当する。そして、このようにして得られる複数の方程式に対して非線形最小二乗法を適用することにより以下の結果が得られる。
ａ＝0.601453
ｂ＝0.008235
このようにして生成される近似式を利用して算出される最大スループットＴ1〜ＴNを図１４に示す。
【００７９】
図１４（ａ）は、近似式を利用して算出された各ルールについての最大スループットを示す。図１４（ｂ）は、各ルールについて実際に測定された最大スループットを示す。図１４（ｃ）は、近似式から算出される最大スループットおよび測定された最大スループットを示す。このように、上述の近似式により得られる近似値は、実際の測定値とほぼ一致する。
【００８０】
図１５は、近似式を用いて最大スループットを算出する方法の一例を示すフローチャートである。
【００８１】
Ｓ２１において、図８に示す測定系は、ルールテーブル２４に登録されているルール１〜Ｎの中から抽出される所定数のルールについてそれぞれ最大スループットを測定する。この測定結果は、ワークロード推定装置３０に通知される。すなわち、ワークロード推定装置３０は、抽出された所定数のルールについての最大スループットを表す情報を取得する。Ｓ２２において、近似式生成部３５は、抽出されたルールについての最大スループットの測定値を近似モデルに与えることにより、複数の方程式を生成する。Ｓ２３において、近似式生成部３５は、Ｓ２２で生成した複数の方程式に対して非線形最小二乗法を適用して近似モデルの定数を決定する。これにより、最大スループットを算出するための近似式が生成される。そして、Ｓ２４において、最大スループット処理部３１は、近似式を用いて各ルールについての最大スループットを算出する。
【００８２】
なお、Ｓ２１〜Ｓ２４の処理は、図９に示すＳ１１に対応する。したがって、ワークロード推定装置２０は、Ｓ２１〜Ｓ２４に従って各ルールについての最大スループットを算出した後、Ｓ１２〜Ｓ１３を実行してネットワーク機能のワークロードＷＬを推定してもよい。
【００８３】
このように、他の実施形態によれば、すべてのルールについて予め最大スループットを測定しておく必要はない。したがって、特にルールテーブル２４に登録されるルール数が多いケースでは、ネットワーク機能のワークロードを推定する際の事前の作業が軽減される。
【００８４】
上述した実施形態に関し、更に以下の付記を開示する。
（付記１）
メモリに登録されている複数のルールの中から検索されるルールに基づいて受信フローを処理するネットワーク機能のワークロードを推定するワークロード推定方法であって、
前記メモリに登録されている各ルールについて前記ネットワーク機能の最大スループットを表す情報を取得し、
前記メモリに登録されている各ルールにマッチするフローのトラフィック量を測定し、
前記メモリに登録されている各ルールについて最大スループットに対するトラフィック量の割合を算出し、
前記メモリに登録されている各ルールについて算出された割合の総和に基づいて前記ネットワーク機能のワークロードを推定する
ことを特徴とするワークロード推定方法。
（付記２）
メモリに登録されているＮ個のルールのいずれかに受信フローがマッチするまで１番目のルールからＮ番目のルールに向かって１つずつ順番に検索を行って、前記受信フローにマッチしたルールに従って前記受信フローを処理するネットワーク機能のワークロードを推定するワークロード推定方法であって、
前記メモリに登録されている各ルールについて前記ネットワーク機能の最大スループットを表す情報を取得し、
前記メモリに登録されている各ルールにマッチするフローのトラフィック量を測定し、
下記のワークロード算出式に従って前記ネットワーク機能のワークロードを推定する
【数８】
0006583048.tif 000009
Ｔn：前記Ｎ個のルールの中のｎ番目のルールについての前記ネットワーク機能の最大スループット
ｔn：前記Ｎ個のルールの中のｎ番目のルールにマッチするフローについて測定されたトラフィック量
ｎ：前記Ｎ個のルールを識別する１からＮの整数
ことを特徴とするワークロード推定方法。
（付記３）
前記Ｎ個のルールの中から抽出される複数の抽出ルールそれぞれについて前記ネットワーク機能の最大スループットを測定し、
前記抽出ルールそれぞれについて測定された最大スループットに基づいて、前記ネットワーク機能の最大スループットを表す近似式を生成し、
前記近似式を用いて前記Ｎ個のルールそれぞれについて前記ネットワーク機能の最大スループットを算出し、
前記Ｎ個のルールそれぞれについて算出された最大スループットを前記ワークロード算出式に与えることにより、前記ネットワーク機能のワークロードを推定する
ことを特徴とする付記２に記載のワークロード推定方法。
（付記４）
前記近似式を表す近似モデルは
【数９】
0006583048.tif 000010
で表され、
前記抽出ルールそれぞれについて測定された最大スループットおよび前記抽出ルールを識別する整数ｎを前記近似モデルに与えることにより複数の方程式を生成し、
前記複数の方程式に対して非線形最小二乗法を適用して前記近似モデル中の実数ａおよび実数ｂを求めて前記近似式を生成する
ことを特徴とする付記３に記載のワークロード推定方法。
（付記５）
メモリに登録されている複数のルールの中から検索されるルールに基づいて受信フローを処理するネットワーク機能のワークロードを推定するワークロード推定装置であって、
前記メモリに登録されている各ルールについて前記ネットワーク機能の最大スループットを表す情報を取得する最大スループット処理部と、
前記メモリに登録されている各ルールにマッチするフローのトラフィック量を測定するトラフィック測定部と、
前記メモリに登録されている各ルールについて最大スループットに対するトラフィック量の割合を算出し、算出した割合の総和に基づいて前記ネットワーク機能のワークロードを推定する推定部と、
を有するワークロード推定装置。
（付記６）
メモリに登録されている複数のルールの中から検索されるルールに基づいて受信フローを処理するネットワーク機能のワークロードを推定するワークロード推定プログラムであって、
前記メモリに登録されている各ルールについて前記ネットワーク機能の最大スループットを表す情報を取得し、
前記メモリに登録されている各ルールにマッチするフローのトラフィック量を測定し、
前記メモリに登録されている各ルールについて最大スループットに対するトラフィック量の割合を算出し、
前記メモリに登録されている各ルールについて算出された割合の総和に基づいて前記ネットワーク機能のワークロードを推定する
処理をコンピュータに実行させるワークロード推定プログラム。
（付記７）
テーブルに登録されている複数のルールの中から検索されるルールに基づいて受信フローを処理するネットワーク機能のワークロードを推定するワークロード推定装置であって、
前記テーブルに登録されている各ルールについて前記ネットワーク機能の最大スループットを表す情報を格納するメモリと、
前記テーブルに登録されている各ルールについて前記ネットワーク機能の最大スループットを表す情報を前記メモリから取得し、
前記テーブルに登録されている各ルールにマッチするフローのトラフィック量を測定し、
前記テーブルに登録されている各ルールについて最大スループットに対するトラフィック量の割合を算出し、
前記テーブルに登録されている各ルールについて算出された割合の総和に基づいて前記ネットワーク機能のワークロードを推定する
プロセッサと、
を有するワークロード推定装置。
【符号の説明】
【００８５】
２０  ネットワーク機器
２３  メモリ
２４  ルールテーブル
２５  ＣＰＵ
３０  ワークロード推定装置
３１  最大スループット処理部
３２  最大スループット情報格納部
３３  トラフィック測定部
３４  推定部
３５  近似式生成部
【図１】
0006583048.tif 000013
【図２】
0006583048.tif 000014
【図３】
0006583048.tif 000015
【図４】
0006583048.tif 000016
【図５】
0006583048.tif 000017
【図６】
0006583048.tif 000018
【図７】
0006583048.tif 000019
【図８】
0006583048.tif 000020
【図９】
0006583048.tif 000021
【図１０】
0006583048.tif 000022
【図１１】
0006583048.tif 000023
【図１２】
0006583048.tif 000024
【図１３】
0006583048.tif 000025
【図１４】
0006583048.tif 000026
【図１５】
0006583048.tif 000027