(57)【要約】【課題】ネットワークの遅延時間の監視と遅延の要因を推定する。【解決手段】入力ポートで受信した信号を解析して宛先を判定し、宛先に対応する出力ポートに当該信号を転送する入力処理部と、出力ポートにそれぞれ接続されて、転送された信号を一時的に格納するバッファと、バッファに格納された信号を前記出力ポートから出力する出力処理部と、入力ポートで受信した信号を解析して通信の種別を示す識別子を付与し、当該識別子毎に信号のデータ量を所定時間毎に測定して前記所定時間毎のフロー情報を生成するフロー情報生成部と、所定時間毎にバッファに蓄積されたデータ量を測定し、所定時間毎のバッファ情報を作成するバッファ情報生成部と、バッファ毎に入力された信号が当該バッファから出力されるまでに要する遅延時間を算出する遅延時間算出部と、遅延時間に対する識別子毎の影響度を算出する影響度算出部と、を備える。【選択図】図１
2015231137.tif 000002
【特許請求の範囲】
【請求項１】
入力ポートと出力ポートを複数備え、前記入力ポートで受信した信号を前記出力ポートへ転送する転送制御装置であって、
前記入力ポートで受信した信号を解析して宛先を判定し、前記宛先に対応する出力ポートに当該信号を転送する入力処理部と、
前記出力ポートにそれぞれ接続されて、前記転送された信号を一時的に格納するバッファと、
前記バッファに格納された信号を前記出力ポートから出力する出力処理部と、
前記入力ポートで受信した信号を解析して通信の種別を示す識別子を付与し、当該識別子毎に信号のデータ量を所定時間毎に測定して前記所定時間毎のフロー情報を生成するフロー情報生成部と、
前記所定時間毎に前記バッファに蓄積されたデータ量を測定し、前記所定時間毎のバッファ情報を作成するバッファ情報生成部と、
前記バッファ情報に基づいて、前記バッファ毎に入力された前記信号が当該バッファから出力されるまでに要する時間を遅延時間として算出する遅延時間算出部と、
前記遅延時間に対する前記識別子毎の影響度を算出する影響度算出部と、
を備えたことを特徴とする転送制御装置。
【請求項２】
請求項１に記載の転送制御装置であって、
前記出力ポートに接続されたバッファの遅延時間と、前記出力ポートを経由する前記フロー情報の前記識別子毎の影響度と、を遅延情報として算出する遅延情報生成部をさらに有することを特徴とする転送制御装置。
【請求項３】
請求項２に記載の転送制御装置であって、
前記遅延情報生成部は、
前記所定時間に対応する時刻情報と前記フロー情報と前記バッファ情報を加えて前記遅延情報を生成し、時系列的に蓄積することを特徴とする転送制御装置。
【請求項４】
請求項１に記載の転送制御装置であって、
前記バッファは、
優先度の異なる複数のバッファと、
前記バッファ毎に蓄積されたデータ量を測定する測定部と、
前記優先度の高いバッファに蓄積された信号を出力した後に、優先度の低いバッファに蓄積された信号を出力するスケジューラと、
を含むことを特徴とする転送制御装置。
【請求項５】
請求項１に記載の転送制御装置であって、
前記転送制御装置は、
物理計算機上で稼動する仮想化部の仮想スイッチであることを特徴とする転送制御装置。
【請求項６】
入力ポートと出力ポートを複数備え、前記入力ポートで受信した信号を前記出力ポートへ転送する転送制御装置と、
複数の前記転送制御装置を管理する管理装置と、を有する計算機システムであって、
前記転送制御装置は、
前記入力ポートで受信した信号を解析して宛先を判定し、前記宛先に対応する出力ポートに当該信号を転送する入力処理部と、
前記出力ポートにそれぞれ接続されて、前記転送された信号を一時的に格納するバッファと、
前記バッファに格納された信号を前記出力ポートから出力する出力処理部と、
前記入力ポートで受信した信号を解析して通信の種別を示す識別子を付与し、当該識別子毎に信号のデータ量を所定時間毎に測定して前記所定時間毎のフロー情報を生成するフロー情報生成部と、
前記所定時間毎に前記バッファに蓄積されたデータ量を測定し、前記所定時間毎のバッファ情報を作成するバッファ情報生成部と、
前記バッファ情報に基づいて、前記バッファ毎に入力された前記信号が当該バッファから出力されるまでに要する時間を遅延時間として算出する遅延時間算出部と、
前記遅延時間に対する前記識別子毎の影響度を算出する影響度算出部と、
前記出力ポートに接続されたバッファの前記遅延時間と、前記出力ポートを経由する前記フロー情報の前記識別子毎の影響度と、前記所定時間に対応する時刻情報と、を遅延情報として算出する遅延情報生成部と、を有し、
前記管理装置は、
所定の周期で前記複数の転送制御装置からそれぞれ前記遅延情報を取得し、前記転送制御装置毎に予め設定された識別子と、前記遅延情報及び前記時刻情報とを対応付けて集約遅延情報を生成する更新部と、
を有することを特徴とする計算機システム。
【請求項７】
請求項６に記載の計算機システムであって、
前記転送制御装置は、相互に接続され、
前記管理装置は、
前記複数の転送制御装置が構成する通信経路のうち検索対象の通信経路またはフロー情報を受け付けて、前記集約遅延情報を検索する検索部をさらに有し、
前記検索部は、
前記検索対象の通信経路またはフロー情報に関連する前記転送制御装置毎の前記遅延時間及び前記識別子毎の影響度を算出することを特徴とする計算機システム。
【請求項８】
請求項７に記載の計算機システムであって、
前記管理装置は、
前記検索部が算出した前記遅延時間及び前記識別子毎の影響度を出力装置に表示することを特徴とする計算機システム。
【請求項９】
請求項６に記載の計算機システムであって、
前記管理装置は、
前記生成した集約遅延情報の遅延情報に含まれる遅延時間が所定の閾値を超えたときに警報を出力することを特徴とする計算機システム。
【請求項１０】
入力ポートと出力ポートを複数備え、前記入力ポートで受信した信号を前記出力ポートへ転送する転送制御装置を管理する管理装置であって、
前記転送制御装置は、
前記入力ポートで受信した信号を解析して宛先を判定し、前記宛先に対応する出力ポートに当該信号を転送する入力処理部と、
前記出力ポートにそれぞれ接続されて、前記転送された信号を一時的に格納するバッファと、
前記バッファに格納された信号を前記出力ポートから出力する出力処理部と、
前記入力ポートで受信した信号を解析して通信の種別を示す識別子を付与し、当該識別子毎に信号のデータ量を所定時間毎に測定して前記所定時間毎のフロー情報を生成するフロー情報生成部と、
前記所定時間毎に前記バッファに蓄積されたデータ量を測定し、前記所定時間毎のバッファ情報を作成するバッファ情報生成部と、
前記バッファ情報に基づいて、前記バッファ毎に入力された前記信号が当該バッファから出力されるまでに要する時間を遅延時間として算出する遅延時間算出部と、
前記遅延時間に対する前記識別子毎の影響度を算出する影響度算出部と、
前記出力ポートに接続されたバッファの前記遅延時間と、前記出力ポートを経由する前記フロー情報の前記識別子毎の影響度と、前記所定時間に対応する時刻情報と、を遅延情報として算出する遅延情報生成部と、を有し、
前記管理装置は、
所定の周期で複数の前記転送制御装置からそれぞれ前記遅延情報を取得し、前記転送制御装置毎に予め設定された識別子と、前記遅延情報及び前記時刻情報とを対応付けて集約遅延情報を生成する更新部を有することを特徴とする管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークの遅延時間のモニタリングと遅延の要因を推定する技術に関する。
【背景技術】
【０００２】
近年、データセンタ上で処理を行うサービスの登場や、複数の物理サーバでの分散処理技術の高度化により、物理サーバ間のトラフィックが急増している。この為、ネットワークを介してデータの連係を行うアプリケーションの処理性能は、Ｅｎｄ−ｔｏ−Ｅｎｄのネットワーク品質に大きな影響を受ける。
【０００３】
具体的には、パケットロスや遅延が大きいネットワークにおいては、スループットが低下する。これにより、特に大容量のデータを連携させるアプリケーションでは処理の完了までの時間が長くなる。
【０００４】
そこで、特許文献１では、スループットを監視する手段として、ネットワーク上の各スイッチでＴＣＰウインドウサイズを監視することで、スループット低下の原因となる中継スイッチを特定する手法が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１５２９７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記従来例では、スループット低下の原因となる中継スイッチを特定しているが、スループットが低下する要因を推定することはできていない。また、アプリケーションの応答速度に影響を与えるネットワーク起因の遅延の監視および遅延の要因を推定することはできない、という問題があった。
【０００７】
そこで本発明は、上記問題点に鑑みてなされたもので、ネットワークの遅延時間の監視と遅延の要因を推定することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、入力ポートと出力ポートを複数備え、前記入力ポートで受信した信号を前記出力ポートへ転送する転送制御装置であって、前記入力ポートで受信した信号を解析して宛先を判定し、前記宛先に対応する出力ポートに当該信号を転送する入力処理部と、前記出力ポートにそれぞれ接続されて、前記転送された信号を一時的に格納するバッファと、前記バッファに格納された信号を前記出力ポートから出力する出力処理部と、前記入力ポートで受信した信号を解析して通信の種別を示す識別子を付与し、当該識別子毎に信号のデータ量を所定時間毎に測定して前記所定時間毎のフロー情報を生成するフロー情報生成部と、前記所定時間毎に前記バッファに蓄積されたデータ量を測定し、前記所定時間毎のバッファ情報を作成するバッファ情報生成部と、前記バッファ情報に基づいて、前記バッファ毎に入力された前記信号が当該バッファから出力されるまでに要する時間を遅延時間として算出する遅延時間算出部と、前記遅延時間に対する前記識別子毎の影響度を算出する影響度算出部と、を備える。
【発明の効果】
【０００９】
本発明によれば、スループットが低下する転送制御装置の特定と低下要因を推定することが可能となる。また、転送制御装置のポート毎の遅延の監視と、遅延要因の内訳を推定することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例を示し、ネットワークスイッチの構成の一例を示すブロック図である。
【図２】本発明の実施例を示し、ネットワークシステムと物理サーバで構成されたデータセンタの一例を示すブロック図である。
【図３】本発明の実施例を示し、管理装置の一例を示すブロック図である。
【図４】本発明の実施例を示し、ネットワークシステムのトポロジ情報の一例を示す図である。
【図５】本発明の実施例を示し、キュー長テーブルの一例を示す図である。
【図６】本発明の実施例を示し、フローテーブルの一例を示す図である。
【図７】本発明の実施例を示し、遅延テーブルの一例を示す図である。
【図８】本発明の実施例を示し、遅延テーブルの生成処理の一例を示すフローチャートである。
【図９】本発明の実施例を示し、集約遅延テーブルの一例を示す図である。
【図１０】本発明の実施例を示し、集約遅延テーブルを生成する処理の一例を示すフローチャートである。
【図１１】本発明の実施例を示し、アプリケーション間の遅延時間を示す３次元グラフである。
【図１２】本発明の実施例を示し、遅延時間の内訳と影響度の内訳を示すグラフである。
【図１３】本発明の実施例を示し、アプリケーション間の遅延時時系列で表示するグラフである。
【図１４】本発明の変形例を示し、キュー処理部に複数のキューを設けた例を示すブロック図である。
【図１５】本発明の第２の実施例を示し、物理サーバの構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を添付図面に基づいて説明する。
【実施例１】
【００１２】
図１は、本発明の第１の実施例を示し、ネットワークスイッチ１の構成の一例を示すブロック図である。
【００１３】
本実施例１では、通信ネットワークにおいてスループットが低下するネットワークスイッチ１の特定と、低下要因を推定するネットワークスイッチ１および管理装置２の例を説明する。なお、以降の説明では、同等機能または同種の装置が複数個存在する場合には、符号に（１）〜（ｎ）（ただし“ｎ”は自然数）を付加して個々を特定し、全体を示すときには（ｎ）を省略する。
【００１４】
図１は、本実施例１のネットワークスイッチ１の構成の一例を示すブロック図である。ネットワークスイッチ１は、２個以上からなる通信ポート１１（ｎ）と、２個以上からなるキュー（またはバッファ）処理部１２（ｎ）と、２個以上からなる出力処理部１３（ｎ）と、受信した信号を転送する入力処理部１４と、管理ネットワークに接続される管理用通信ポート１５と、演算を行うＣＰＵ１６と、データやプログラムを保持する記憶部１７と、時刻をカウントするクロック処理部１８と、フローテーブル５１を格納するフロー記憶部１９とを含む。
【００１５】
通信ポート１１は、他のネットワークスイッチ１（または物理計算機や管理装置）とケーブル１１３で接続される。通信ポート１１は、例えばＩＥＥＥ８０２．３で規格化されているＥｔｈｅｒｎｅｔ（登録商標）の規格に基づき、イーサネット（登録商標）フレーム（またはパケット）を送受信することで通信が可能である。
【００１６】
通信ポート１１は、入力ポート１１１と出力ポート１１２で構成される。入力ポート１１１は、ケーブル１１３から入力されたイーサネットフレームを受信し、入力処理部１４へ送信する。出力ポート１１２は、出力処理部１３から送られてくるイーサネットフレームを受信し、ケーブル１１３で接続された他のネットワークスイッチ１へ送信する。
【００１７】
入力処理部１４は、２個以上の入力ポート１１１（ｎ）からそれぞれイーサネットフレームを受信し、イーサネットフレーム中の宛先アドレスもしくは後述のフロー記憶部１９を参照して、宛先に該当するキュー処理部１２へ前記受信したイーサネットフレームを送信する。
【００１８】
キュー処理部１２は、キュー１２１とキュー長カウンタ１２２とキュースケジューラ１２３で構成される。キュー１２１は、受信したイーサネットフレームを一時的に蓄えるバッファである。例えば、２箇所以上の入力ポート１１１から受信したイーサネットフレームが、入力処理部１４によって１ヶ所のキュー処理部１２へ送信された場合、入力速度が出力速度を上回ると、キュー１２１にイーサネットフレームが蓄積される。なお、この例では入力ポート１１１の入力速度と出力ポート１１２の出力速度は等しく、例えば、１０Ｇｂｐｓ等である。
【００１９】
キュー長カウンタ１２２は、キュー１２１に前記蓄えられたイーサネットフレームのバッファ量を示すカウンタである。キュー長カウンタ１２２は、ＣＰＵ１６が値を参照することが可能である。前記読み出されるキュー長カウンタ１２２の値は、ＣＰＵ１６が参照した時刻においてキュー１２１に蓄えられているバッファ量であってもよく、ＣＰＵ１６が前回参照した時刻から今回参照するまでの間の最大値を保持しており、区間の最大値が読み出されていてもよい。
【００２０】
キュースケジューラ１２３は、例えば、ＣＰＵ１６が設定した転送レートになるように、イーサネットフレームの送信量（または出力速度、送信速度）を制限することが可能である。出力処理部１３は、キュー処理部１２からイーサネットフレームを受け取り、接続された出力ポート１１２へ送信する。
【００２１】
記憶部１７には、各キュー１２１のキュー長カウンタ１２２の値を保持するキュー長テーブル４と、ポート１１毎の遅延時間と影響度を格納する遅延テーブル６１（遅延情報）が格納される。また、記憶部１７には、キュー処理部１２毎の遅延時間を算出する遅延時間算出部７１と、各フローの遅延時間に対する影響度を算出する影響度算出部７２とを含んでキュー長テーブル４や遅延テーブル６１及びフローテーブル５１等の各テーブルを生成するテーブル生成部７０が格納され、ＣＰＵ１６によって実行される。
【００２２】
遅延時間算出部７１及び影響度算出部７２を含むテーブル生成部７０等の各機能部はプログラムとして記憶部１７にロードされる。ＣＰＵ１６は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、ＣＰＵ１６は、テーブル生成プログラムに従って処理することでテーブル生成部７０として機能する。他のプログラムについても同様である。さらに、ＣＰＵ１６は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【００２３】
ネットワークスイッチ１の各機能を実現するプログラム、テーブル等の情報は、記憶部１７や不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００２４】
図２は、本実施例１におけるデータセンタの構成を示す計算機システムのブロック図である。前記データセンタは、ネットワークシステム２１と２台以上の物理サーバ２２（１）〜２２（６）で構成される計算機システムである。ネットワークシステム２１は、２台以上のネットワークスイッチ１（１）〜１（６）と１台以上の管理装置２で構成される。管理装置２は、図中破線で示す管理ネットワーク２１Ｍを介して各ネットワークスイッチ１（ＳＷ１〜ＳＷ６）の管理用通信ポート１５（図中、Ｍｇｒ）とそれぞれ接続されている。また、物理サーバ２２（１）〜２２（６）は、図中実線で示すサービスネットワーク２１Ｓを介してネットワークスイッチ１（１）〜１（３）に接続され、ネットワークスイッチ１（４）〜１（６）を介して外部に接続される。図示の例では、各物理サーバ２２は、ネットワークスイッチ１（６）のポートＰ３を介して外部のネットワークに接続される。
【００２５】
物理サーバ２２は、複数の仮想マシンや複数のアプリケーション（以下、アプリ）を実行させることが可能である。図２に示す例では、物理サーバ２２（ｎ）が１台に付き２つのアプリ（アプリｎ１とアプリｎ２）を実行している例を示している。また、物理サーバ２２はそれぞれ１つの通信ポート２３を持ち、ネットワークスイッチ１の通信ポート１１（例えば、Ｐ１、Ｐ２）と接続されている。
【００２６】
図３は、管理装置２の構成の一例を示すブロック図である。管理装置２は、演算処理を行うＣＰＵ２０１と、データやプログラムを保持するメモリ２０２と、管理ネットワーク２１Ｍに接続されるネットワークインターフェース（図中ＮＩＣ）２０３と、プログラムやデータを格納するストレージ装置２０４と、マウスやキーボードあるいはタッチパネルで構成された入力装置２０５と、ディスプレイ等で構成された出力装置２０６とを含む計算機である。
【００２７】
メモリ２０２には、ネットワークスイッチ１同士の接続及び物理サーバ２２とネットワークスイッチ１の接続関係を示すトポロジ情報３と、各ネットワークスイッチ１から取得した遅延テーブル６１を集約した集約遅延テーブル８１が保持される。
【００２８】
また、メモリ２０２には、トポロジ情報３や集約遅延テーブル８１を集約または更新する集約部２１０と、検索条件を受け付けてアプリケーションとネットワークスイッチ１の遅延時間の関係を出力する検索部２２０がロードされて、ＣＰＵ２０１によって実行される。
【００２９】
図４は、図２におけるネットワークスイッチ１同士の接続やネットワークスイッチ１と物理サーバ２２の接続を示すトポロジ情報３を示したものである。トポロジ情報３は、管理装置２が保持するテーブルで、所定の周期（例えば、１時間毎）または所定のタイミング（入力装置２０５からの指令）によって生成または更新される。
【００３０】
トポロジ情報３は、ネットワークシステム２１内でユニークな識別子を付与された接続番号３０１と、ネットワークスイッチ１の識別子を格納するスイッチＡ＿ＩＤ３０２と、接続元のポート１１の識別子を格納するスイッチＡポートＩＤ３０３と、接続先の装置の識別子を格納するスイッチＢ＿ＩＤ３０４と、接続先のポートの識別子を格納するスイッチＢポートＩＤ３０５と、をひとつのエントリに含む。
【００３１】
以下、トポロジ情報３の接続番号＃１を例にして図４の詳細を説明する。ここで図４に記載のＩＤの値について説明する。“ＳＷ１”は、図２のネットワークスイッチ１（１）を示すスイッチＩＤ（スイッチＡ＿ＩＤ３０２もしくはスイッチＢ＿ＩＤ３０４）であり、以下同様に“ＳＷｎ”は、ネットワークスイッチ１（ｎ）を示す前記スイッチＩＤである。また、同様に“物理サーバｎ”は、物理サーバ２２（ｎ）を示す前記スイッチＩＤである。
【００３２】
“Ｐ１”は、ネットワークスイッチ１の通信ポート１１（１）を表すスイッチポートＩＤ（スイッチＡポートＩＤ３０３もしくはスイッチＢポートＩＤ３０５）であり、以下同様に“Ｐｎ”は、ネットワークスイッチ１の通信ポート１１（ｎ）を示す前記スイッチポートＩＤである。なお、本実施例では物理サーバ２２は通信ポートが１つの場合を例にしているが、これに限定するものでなく、物理サーバ２２が複数の通信ポートをもつ場合は、識別可能なポートＩＤを付与してやればよい。
【００３３】
接続番号＃１を参照すると、スイッチＡ＿ＩＤ３０２が“ＳＷ１”、スイッチＡポートＩＤ３０３が“Ｐ１”、スイッチＢ＿ＩＤ３０４が“物理サーバ１”でスイッチＢ＿ポートＩＤ３０５が“Ｐ１”であることから、ネットワークスイッチ１（１）の通信ポート１１（１）と物理サーバ１のポートが接続されていることを示している。以降同様にして、図４のトポロジ情報３は、図２記載のすべての接続について記載されている。つまり、トポロジ情報３を元に、図２に示したネットワークスイッチ１（ｎ）と物理サーバ２２（ｎ）の接続が再現可能である。なお、図中接続番号３０１＝＃１５は、外部のネットワークに接続されていることを示す。
【００３４】
図５は、キュー長テーブルの一例を示す図である。キュー長テーブル４は、ネットワークスイッチ１で所定の時間毎に生成されるテーブルである。
【００３５】
ＣＰＵ１６がネットワークスイッチ１内のすべてのキュー長カウンタ１２２の値を収集するプログラム（テーブル生成部７０）を実行することでキュー長テーブル４を生成し、生成したキュー長テーブル４を記憶部１７に保存する。キュー長テーブル４の生成は、一定時間毎（例えば１００ｍｓ毎）に行われる。
【００３６】
キュー長テーブル４は、ネットワークスイッチ１の識別子を格納するスイッチＩＤ４１と、ポートＩＤ４２と、キュー長４３で構成される。スイッチＩＤ４１は、収集するネットワークスイッチ１毎に予め固有に設定されたＩＤである。ポートＩＤ４２は、前記スイッチＩＤ４１の通信ポート１１（ｎ）に予め設定された固有のＩＤである。キュー長４３は、ＣＰＵ１６がポートＩＤ４２に該当するキュー長カウンタ１２２（ｎ）から読み取った値である。
【００３７】
前記一定時間毎に収集したキュー長テーブル４は、収集した時刻の時刻情報とともに記憶部１７へ保存する。前記記憶部１７へ保存する処理を一定時間毎に行うことで、ネットワークスイッチ１内のキュー長カウンタ１２２の変化を時間変化と共に記憶することが可能となる。なお、時刻情報は、クロック処理部１８から取得した時刻を、一定時間毎に生成したページに付与すればよい。
【００３８】
図５では、キュー長テーブル４の形式での記載をしているが、これに限定するものでなく、スイッチＩＤ４１とポートＩＤ４２とキュー長４３とＣＰＵ１６が収集した時刻の時刻情報とを１つに纏めてもよい。さらにキュー長４３が所定の閾値を上回った場合のみ記憶部１７へ保存する形式であってもよい。
【００３９】
図６は、フローテーブル５１の一例を示す図である。フローテーブル５１は、ネットワークスイッチ１が中継するフロー情報を、フロー記憶部１９に保存する内容を示したものである。ネットワークスイッチ１のＣＰＵ１６は、一定時間毎（例えば、１００ｍｓ毎）にテーブル生成部７０を実行して、フローテーブル５１を時刻毎に生成してフロー記憶部１９に格納する。
【００４０】
本実施例１におけるフローとは、論理的に区別可能なデータの流れをフローとして定義する。例えば、ＩＰネットワークにおける５−ｔｕｐｌｅと呼ばれるＩＰヘッダや、ＴＣＰ／ＵＤＰヘッダ内の情報（パケット内の通信種別の情報）でフローを区別することである。具体的には、送信元ＩＰアドレスと、送信先ＩＰアドレスと、プロトコル番号と、ＴＣＰ／ＵＤＰヘッダ内の送信元ポート番号と、ＴＣＰ／ＵＤＰヘッダ内の送信先ポート番号と、の組み合わせを１つ１つのフローとしてもよい。また、上述のパケット内の情報のうち、どれか１つだけで区別してフローとしてもよい。また、５−ｔｕｐｌｅだけでなく、中継する通信ポート１１でフローを区別するようにしてもよい。さらに、ＴＣＰ／ＵＤＰのＩＰヘッダだけでなく、Ｌ２ヘッダの送信先ＭＡＣアドレスや送信元ＭＡＣアドレスでフローを区別してもよい。
【００４１】
図６に示したフローテーブル５１の例では、受信ポートＩＤ５３と、送信ポートＩＤ５４と、ＴＣＰ宛先ポート番号５５で区別可能なデータをフローとして定義する。また、区別したフロー毎に、該当するネットワークスイッチ１のＩＤをスイッチＩＤ４１に保存する。さらに、ネットワークスイッチ１のＣＰＵ１６（入力処理部１４）は、フロー毎にユニークなＩＤを付与し、フローＩＤ５２として保存する。
【００４２】
また、１秒間あたりにネットワークスイッチ１が中継したフロー毎の流量（データ量で、例えば、ｂｐｓ）をＣＯＵＮＴＥＲ５６として保存する。ＣＯＵＮＴＥＲ５６は、前回生成されたフローテーブル５１から今回生成するフローテーブル５１までの変化分（差分）を保存するようにしてもよい。なお、本実施例１では、ＣＰＵ１６が１００ｍｓ毎にフローテーブル５１を生成するので、ＣＯＵＮＴＥＲ５６の値は、１００ｍｓ間に転送したデータ量をｂｐｓに換算した値を格納する。
【００４３】
ここで、受信ポートＩＤ５３、送信ポートＩＤ５４とは、ネットワークスイッチ１がデータを中継する際に、データを受信した通信ポート１１の入力ポート１１１のＩＤを受信ポートＩＤ５３とし、データを送信する通信ポート１１の出力ポート１１２のＩＤを送信ポートＩＤ５４とする。
【００４４】
フロー記憶部１９のフローテーブル５１に保存するフローは、対象とする通信ポート１１を全ポートとしてもよいし、後述するように、集約遅延テーブル８１で検索対象とするポートに限定してもよい。
【００４５】
フローテーブル５１をフロー記憶部１９へ保存する処理は、入力処理部１４で行ってもよい。なぜなら、入力処理部１４は全ての通信ポート１１からデータを受け取り、データを解析し、出力する通信ポート１１を決定している為、フローテーブル５１を生成する為に必要な情報が集まっているからである。
【００４６】
もしくは、図６に示すフローテーブル５１を入力処理部１４が生成するのではなく、管理用通信ポート１５経由でＣＰＵ１６に指示が出され、ＣＰＵ１６がフロー記憶部１９内にフローテーブル５１を生成し、入力処理部１４はフロー記憶部１９を参照して出力先となる通信ポート１１を決定する処理であってもよい。例えば、標準化団体“Ｏｐｅｎ Ｎｅｔｗｏｒｋｉｎｇ Ｆｏｕｎｄａｔｉｏｎ”によって標準化が進められている規格“ＯｐｅｎＦｌｏｗ”が前述したフロー記憶部１９を参照して出力先を決定する方式である。さらに、フローテーブル５１は、ネットワークスイッチ１のＬ３中継で中継先を決定するＦＤＢ（Ｆｏｒｗａｒｄｉｎｇ Ｄａｔａｂｅｓｅ）やＬ２中継で中継先を決定するＭＡＣアドレステーブルを前記説明したフローテーブル５１へ拡張した形式であってもよい。
【００４７】
図７は、遅延テーブル６１の一例を示す図である。遅延テーブル６１は、図５に記載のキュー長テーブル４と、図６に記載のフローテーブル５１からネットワークスイッチ１を通過するデータの通信ポート１１毎の遅延時間と、遅延時間のフロー毎の影響度とを一定時間毎（例えば、１００ｍｓ周期）にネットワークスイッチ１のＣＰＵ１６が生成したテーブルである。
【００４８】
遅延テーブル６１は、ネットワークスイッチ１の識別子を格納するスイッチＩＤ４１と、出力ポート１１２の識別子を格納する送信ポートＩＤ５４と、入力ポート１１１の識別子を格納する受信ポートＩＤ５３と、ＴＣＰ宛先ポート番号５５と、ネットワークスイッチ１を通過するのに要した時間を格納する遅延時間６２と、フロー毎に演算した遅延時間へ影響を与える度合（比率）を格納する影響度６３からひとつのエントリが構成される。
【００４９】
遅延時間６２は、後述するようにキュー１２１へ入力されてから出力処理部１３から出力されるまでの時間を示す。
【００５０】
影響度６３は、各フローが遅延時間６２へ影響を与える度合または比率を示し、後述するように各ネットワークスイッチ１で算出される。
【００５１】
例えば、図示の例では、送信ポートＩＤ５４＝Ｐ３（以下送信ポートＰ３）では、当該送信ポート全体の遅延時間は６８５３μｓｅｃとなっている。そして、送信ポートＰ３から出力されるパケットは、受信ポートＩＤ５３＝Ｐ１とＰ３のフローが混在しており、ＴＣＰ宛先ポート番号５５は、それぞれ１１０、８０、２０、２５となっている。影響度６３は、受信ポートＩＤ５３とＴＣＰ宛先ポート番号５５の組（フロー）毎に遅延時間６２へ影響を与える度合（または比率）として算出される。例えば、受信ポートＩＤ５３＝Ｐ１、ＴＣＰ宛先ポート番号５５＝１１０の影響度６３＝０．０００１６７（０．００１６７％）になり、受信ポートＩＤ５３＝Ｐ１、ＴＣＰ宛先ポート番号５５＝８０の影響度６３＝０．６６７（６６．７％）になる例を示す。
【００５２】
以下、遅延テーブル６１の生成処理の一例を示すフローチャートを、図８を用いて説明する。この処理は、遅延時間算出部７１と影響度算出部７２を含むテーブル生成部７０がキュー長テーブル４とフローテーブル５１及び遅延テーブル６１を生成する処理である。以下では、ＣＰＵ１６が遅延時間算出部７１と影響度算出部７２を含むテーブル生成部７０を実行する主体として説明する。
【００５３】
ネットワークスイッチ１では、一定時間毎（例えば１００ｍｓ周期）でＣＰＵ１６に割り込みが発生し、遅延テーブル６１の生成処理が開始される（Ｓ７０１）。ＣＰＵ１６は、クロック処理部１８から現在の時刻情報を取得する（Ｓ７０２）。
【００５４】
その後、ＣＰＵ１６は、図５に示したキュー長テーブル４と、図６に示したフローテーブル５１に、ステップＳ７０２で取得した時刻情報に対応するページを生成する（Ｓ７０３）。ＣＰＵ１６は、キュー長テーブル４と、フローテーブル５１に空のエントリを加えて時刻情報を対応付けたページを生成すれば良い。なお、キュー長テーブル４とフローテーブル５１の時刻情報は、各ページに関連付けても良いし、各エントリに時刻情報を付与するようにしてもよい。また、ページは時刻情報に関連付けられたエントリの集合を示すものとする。
【００５５】
ＣＰＵ１６は、ステップＳ７０２で取得した時刻情報に対応するフローテーブル５１とキュー長テーブル４を生成する。
【００５６】
フローテーブル５１の生成は、ＣＰＵ１６が各キュー１２１のイーサネットフレームを解析し、入力処理部１４が付与したフローＩＤ５２と、受信ポートＩＤ５３と、送信ポートＩＤ５４と、ＴＣＰ宛先ポート番号５５を設定し、入力処理部１４が測定した当該フローのデータ量をＣＯＵＮＴＥＲ５６の値として設定したエントリを追加して現在時刻に対応するページを生成する。
【００５７】
なお、ＣＰＵ１６は、ＣＯＵＮＴＥＲ５６の値として、前回の時刻（１００msec前）から現在の時刻までに転送した同一フローＩＤのデータ量（例えば、バイト数）を測定し、フローＩＤ毎にｂｐｓに換算した値を設定する。例えば、ＣＰＵ１６は、フローＩＤ５２毎にイーサネットフレーム（またはＩＰフレーム）のペイロードサイズを取得し、前回時刻から現在時刻までに転送したデータ量を測定する。なお、この処理はテーブル生成部７０のうちフロー情報生成部（図示省略）が行う。また、フロー情報の生成については、入力処理部１４で行うようにしてもよい。
【００５８】
フローテーブル５１は、図６の「ｔ」で示すように、時刻ｔ毎にページが生成される。なお、後述するように、ＣＰＵ１６は管理装置２が遅延テーブル６１を取得した時刻情報に対応するページを削除することができる。
【００５９】
キュー長テーブル４の生成は、ＣＰＵ１６が各キュー１２１のキュー長カウンタ１２２の値をそれぞれ取得してキュー長４３に設定し、キュー１２１に対応するポート１１（１）＝１１（ｎ）の識別子ｎ毎にポートＩＤ４２のエントリを追加してページを生成する。そして、ＣＰＵ１６は、当該ページにステップＳ７０２で取得した時刻を付与（または関連付けた）する。なお、スイッチＩＤ４１は、当該ネットワークスイッチ１に予め設定された識別子を格納する。なお、この処理はテーブル生成部７０のうちバッファ情報生成部（図示省略）が行う。
【００６０】
キュー長テーブル４は、図５の「ｔ」で示すように、時刻ｔ毎にページが生成され、時系列的に蓄積される。なお、後述するように、ＣＰＵ１６は管理装置２が遅延テーブル６１を取得した時刻情報に対応するページを削除することができる。
【００６１】
次に、ＣＰＵ１６は、通信ポート１１のキュー長をキュー長テーブル４から取得する（Ｓ７０４）。この処理は、例えば、キュー１２１（ｎ）の識別子ｎの小さい順に、キュー１２１（ｎ）のキュー長カウンタ１２２（ｎ）の値を取得し、ステップＳ７０４からＳ７０９のループで遅延テーブル６１を生成する。なお、この処理はテーブル生成部７０のうち遅延情報生成部（図示省略）が行う。
【００６２】
次に、ステップＳ７０５では、ＣＰＵ１６が取得したキュー長カウンタ１２２（ｎ）の値が予め設定した閾値よりも大きいか否かを判定する。閾値は、例えば、１［ＫＢ］等に設定される。例えば、図５のポートＩＤ：Ｐ３の場合、キュー長は８００［ＫＢ］である。取得したキュー長が予め設定した閾値より小さい場合（Ｓ７０５：ＮＯ）は、遅延時間に影響が少ないと判定し、次のキュー長を取得するため（Ｓ７０９）へ進む。
【００６３】
一方、取得したキュー長が予め設定した閾値を超える場合（Ｓ７０５：ＹＥＳ）、ＣＰＵ１６は、ステップＳ７０３で生成した時刻情報のフローテーブル５１を参照し、現在着目しているキュー１２１（ｎ）に対応するポート１１（ｎ）が、送信ポート５４となるフローＩＤ５３を検索する（Ｓ７０６）。
【００６４】
例えば、図６のフローテーブル５１において、送信ポートＩＤ５４がポートＰ３である遅延テーブル６１を生成する場合、フローＩＤ５２＝１と、２と、６と、７が前記検索で該当するフローＩＤとなる。
【００６５】
次に、前記フローテーブル５１から取得した情報に基づいて、ＣＰＵ１６は、遅延時間６２と影響度６３を算出する（Ｓ７０７）。なお、これらの処理は、テーブル生成部７０の遅延時間算出部７１と、影響度算出部７２でそれぞれ実行される。
【００６６】
遅延時間６２は、具体的には固有遅延時間とキュー長依存遅延時間に分けることができる。固有遅延時間は、キュー１２１が空の状態であっても、データがネットワークスイッチ１を通過するときに必ず発生する遅延時間である。
【００６７】
一方、キュー長依存遅延時間は、データがキュー１２１へ一時的に蓄えられた後にキュー１２１から出力されるまでに要する遅延時間である。これらを以下に数式で表す。
【００６８】
遅延時間６２[s]
＝  固有遅延時間 [s]  ＋  キュー長依存遅延時間 [s]  ・・・（１）
キュー長依存遅延時間 [s]
＝  α × (キュー長 [bit] ／ 転送速度[bps])   ・・・（２）
と表すことができる。
【００６９】
転送速度は、通信ポート１１の仕様で決まり、例えば、１Ｇｂｐｓや１０Ｇｂｐｓなどである。また、通信ポート１１の出力に帯域制限の設定がされている場合には、転送速度は設定された値に従う。上記（２）式の“α”は、ネットワークスイッチ１がハードウェアで実現されている場合、値は１でよい。ネットワークスイッチ１がソフトウェアで実現されている場合、ソフトウェアを実行しているハードウェアの処理性能に依存しており、キュー長と転送遅延の関係を調整する係数として“α”を設定する。
【００７０】
図５に示したキュー長テーブル４の例を用いれば、ポートＩＤ４２が“Ｐ３”のキュー長は、８００［ＫＢ］であり、通信ポート１１の出力速度を１Ｇｂｐｓ、ネットワークスイッチ１はハードウェアで実現されているとした場合、
キュー長依存遅延時間＝１×（８００×１０２４×８［ｂｉｔ］／１［Ｇｂｐｓ］）
＝６５５３．６［μｓ］
となる。
【００７１】
また、固有遅延時間が例えば３００［μｓ］であれば、図５および図６に記載の送信ポートＩＤ：Ｐ３から出力される遅延時間（６２）＝３００［μｓ］＋６５５３．６［μｓ］＝６８５３．６［μｓ］となる。
【００７２】
図７に示す遅延テーブル６１では、固有遅延時間を上記３００［μｓ］とした例を示し、ＣＰＵ１６は、キュー長テーブル４のキュー長４３に基づいて遅延時間６２を演算し、遅延テーブル６１に格納する。
【００７３】
次に、影響度６３は、遅延時間６２に対するフロー毎の影響度を示す値として、次のように定義して算出する。
【００７４】
キュー処理部１２に複数のフローが集中するとキュー１２１にデータが貯まり、到着したデータが送信されるまでに遅延が発生する。また、フロー毎の流量（送信データ）の内訳が、キュー１２１に貯まっているデータ（送信待ちのデータ）の内訳と近似する。よって、キュー１２１に蓄積された流量（データ）の内訳を、到着したデータが送信されるまでの遅延時間６２への影響度６３とする。
【００７５】
具体的には、ＣＰＵ１６が、フローテーブル５１を参照することで送信ポートＩＤ５４毎に送信されるすべてのフローＩＤと送信されるデータの流量（データ量）を示すＣＯＵＮＴＥＲ５６が参照可能である。つまり、ＣＰＵ１６は送信ポートＩＤ５４を通過するフロー毎に流量の内訳を算出可能である。
【００７６】
影響度３６は、次式で表すことができる。
影響度［％］
＝対象フローのＣＯＵＮＴＥＲ（５６）／Σ対象送信ポートＩＤのＣＯＵＮＴＥＲ５６
・・・（３）
で表すことができる。
【００７７】
図６に示したフローテーブル５１において、送信ポートＩＤ５４が“Ｐ３”から送信されるフローの影響度６３を例に、影響度６３の演算の一例を以下に示す。対象となる送信ポートＩＤ５４が“Ｐ３”であるフローＩＤ５２は、１，２，６，７である為、
Σ対象送信ポートＩＤのＣＯＵＮＴＥＲ５６
＝  １００ｋｂｐｓ＋４００Ｍｂｐｓ＋２００Ｍｂｐｓ＋２０ｋｂｐｓ
＝  ６００．１２Ｍｂｐｓ
となる。
【００７８】
次に、
フローＩＤ：１の影響度は、１００ｋｂｐｓ／６００．１２Ｍｂｐｓ＝  約０．０２％
フローＩＤ：２の影響度は、４００Ｍｂｐｓ／６００．１２Ｍｂｐｓ＝約６６．６５％
フローＩＤ：６の影響度は、２００Ｍｂｐｓ／６００．１２Ｍｂｐｓ＝約３３．３３％
フローＩＤ：７の影響度は、  ２０ｋｂｐｓ／６００．１２Ｍｂｐｓ＝  約０．００％
となる。これらの値から、フローＩＤ：２が最も遅延時間６２への影響が大きく各６６．６５％であり、フローＩＤ：７は遅延時間６２への影響がほとんどなく、約０．００％であることが分かる。
【００７９】
ＣＰＵ１６は、前記算出した遅延時間６２と影響度６３をスイッチＩＤ４１、送信ポートＩＤ５４、受信ポートＩＤ５３、ＴＣＰ宛先ポート番号５５等のフローテーブル５１の値に合わせて遅延テーブル６１へ保存し、ステップＳ７０２で取得した時刻情報に対応付けた遅延テーブル６１のページを記憶部１７へ保存する（Ｓ７０８）。
【００８０】
以降、全送信ポートＩＤ４２に対して処理済みであれば（Ｓ７０９：ＹＥＳ）、処理を終了し（Ｓ７１０）、処理済みでなければ（Ｓ７０９：ＮＯ）、次の未処理の送信ポートＩＤ４２に対して上記ステップＳ７０４以降の処理を行う。上記処理を繰り返すことで、全送信ポートＩＤ４２に対して処理を行い、ネットワークスイッチ１は、所定の時間毎に遅延テーブル６１と、フローテーブル５１と、キュー長テーブル４を生成する。
【００８１】
次に、図９、図１０を用いて図２のネットワークシステム２１の経路の一例として、物理サーバ２２（１）のアプリ１１から、物理サーバ２２（３）のアプリ３１への遅延時間と影響度を、管理装置２が算出する例を示す。なお、図９は、集約遅延テーブル８１の一例を示す図である。また、図１０は、集約遅延テーブル８１を検索する処理の一例を示すフローチャートである。
【００８２】
図２の物理サーバ２２（１）で実行されるアプリ１１は、ＴＣＰ宛先ポート番号８０へ通信しているものとする。管理装置２は、各ネットワークスイッチ１の管理用通信ポート１５と管理ネットワーク２１Ｍを介して接続されており、各ネットワークスイッチ１（ｎ）から遅延テーブル６１、フローテーブル５１、キュー長テーブル４を定期的（所定の周期）に集約している。
【００８３】
管理装置２が各ネットワークスイッチ１から各テーブルを収集する処理は、管理装置２が各ネットワークスイッチ１（ｎ）へ定期的に問い合わせてもよく、あるいは、各ネットワークスイッチ１（ｎ）が管理装置２へ定期的に送信してもよい。
【００８４】
図９の集約遅延テーブル８１は、管理装置２が前記各ネットワークスイッチ１（ｎ）から遅延テーブル６１を取得して集約したものである。また、管理装置２は図４に示したトポロジ情報３が予め設定されているか、もしくはＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）を用いて接続情報を自動的に集約してトポロジ情報３を生成してもよい。
【００８５】
集約遅延テーブル８１は、ある瞬間（時刻情報）の遅延テーブル６１の情報を１つのテーブルにまとめたものであるが、遅延テーブル６１が一定時間毎に生成されるように、集約遅延テーブル８１も一定時間毎に生成され続けるものである。なお、各ネットワークスイッチ１のクロック処理部１８は、定期的に時刻を同期させている。管理装置２の集約部２１０は、所定の周期（例えば１秒）で各ネットワークスイッチ１から遅延テーブル６１を収集し、時刻情報が一致する遅延テーブル６１を集約し、時刻情報毎に集約遅延テーブル８１を生成する。
【００８６】
集約遅延テーブル８１は、ネットワークスイッチ１の識別子を格納するスイッチＩＤ４１と、送信ポートの識別子を格納する送信ポートＩＤ５４と、受信ポートの識別子を格納する受信ポートＩＤ５３と、イーサネットフレームのＴＣＰポート番号を格納するＴＣＰ宛先ポート番号５５と、送信ポートＩＤ５４に対応するキュー１２１で発生する遅延時間６２と、受信ポートＩＤ５３とＴＣＰ宛先ポート番号５５の組から成るフロー毎の影響度６３とをひとつのエントリに含む。
【００８７】
次に、管理装置２で行われる検索処理について図１０を参照しながら説明する。この処理は、管理装置２の検索部２２０で行われる処理で、入力装置２０５から所定の指令を受け付けたときに実行される。
【００８８】
管理装置２は、ステップＳ９０１で、検索対象の物理サーバ２２及びアプリを受け付ける。以下の例では、検索対象として物理サーバ２２（１）のＴＣＰポート番号が“８０”のアプリ１１を受け付けた例を示す。
【００８９】
まず、管理装置２は、アプリ１１の通信経路の検索箇所を選択する（Ｓ９０２）。管理装置２は、トポロジ情報３を参照し、物理サーバ２２（１）のポートＩＤ：Ｐ１は、スイッチＩＤ４１＝“ＳＷ１”のポートＩＤ５３の“Ｐ１”に接続されていることを取得する。よって、ＳＷ１が最初の検索箇所になる。
【００９０】
次に管理装置２は、スイッチＩＤ４１が“ＳＷ１”、受信ポートＩＤ５３が“Ｐ１”で集約遅延テーブル８１を検索する（Ｓ９０３）。管理装置２は、集約遅延テーブル８１から検索対象とするフローを検索することで、中継される送信ポートＩＤ５４を検出する。
【００９１】
例えば、図９の例では、スイッチＩＤ４１＝“ＳＷ１”かつ受信ポートＩＤ５３＝“Ｐ１”かつＴＣＰ宛先ポート番号＝“８０”は、スイッチＩＤ４１＝“ＳＷ１”の送信ポートＩＤ５３＝“Ｐ３”への遅延時間６２が６８５３［μｓ］で、対象とするフローが遅延に与えている影響度６３が約６６．６５％（図中４００Ｍ／１００ｋ＋４００Ｍ＋２００Ｍ＋２０ｋ）であることを検出する。
【００９２】
また、管理装置２は、スイッチＩＤ４１＝“ＳＷ１”の送信ポートＩＤ５３＝“Ｐ４”へ遅延時間６２が１２３［μｓ］で、影響度が８０％（図中８０Ｍ／（８０Ｍ＋２０Ｍ）のフローも検出する。この例では、スイッチＩＤ４１＝“ＳＷ１”の送信ポートＩＤ５４＝“Ｐ３”への通信（フローＩＤ５２＝“２”）のみ説明する。スイッチＩＤ４１＝“ＳＷ１”の送信ポートＩＤ５４＝“Ｐ４”への通信は、前記送信ポートＩＤ５４＝“Ｐ３”への通信と同様に行えばよい為、以下では説明を省略する。
【００９３】
管理装置２は、検出した送信ポートＩＤ５４が終端であるか否かを判定する（Ｓ９０４）。検出した送信ポートＩＤ５４が終端でなければ（ＮＯ）、検索箇所の探索（Ｓ９０２）へ戻って、上記処理を繰り返す。一方、検出した送信ポートＩＤ５４が終端の場合は処理を終了する。
【００９４】
次に、検索箇所選択（Ｓ９０２）の２巡目では、管理装置２がスイッチＩＤ４１＝“ＳＷ１”の送信ポートＩＤ５４＝“Ｐ３”は、トポロジ情報３からスイッチＩＤ３０４＝“ＳＷ４”のポートＩＤ３０５＝“Ｐ１”と接続されていることを検出する。
【００９５】
管理装置２は、集約遅延テーブル８１から、スイッチＩＤ４１＝“ＳＷ４”の受信ポートＩＤ５３＝“Ｐ１”、ＴＣＰ宛先ポート番号５５＝“８０”は、スイッチＩＤ４１＝“ＳＷ４”の送信ポートＩＤ５４＝“Ｐ２”へ遅延時間が６２５［μｓ］で、対象とするフローが遅延に与えている影響度が７２．７％（図中４００Ｍ／１００ｋ＋４００Ｍ＋２０ｋ＋１５０Ｍ）であることを検出する（Ｓ９０３）。
【００９６】
以下同様に上記処理を繰り返し、管理装置２は、スイッチＩＤ４１＝“ＳＷ４”の送信ポートＩＤ５４＝“Ｐ２”はスイッチＩＤ４１＝“ＳＷ２”の受信ポートＩＤ５３＝“Ｐ３”へ接続され、遅延時間が３００［μｓ］で影響度が１００％であることを検出する。また、管理装置２はスイッチＩＤ４１＝“ＳＷ２”の送信ポートＩＤ５４＝“Ｐ１”は、トポロジ情報３から物理サーバ２２（４）に接続されており、終端であることを検出する。
【００９７】
以上の処理を、すべての経路で終端まで繰り返すことで、管理装置２は所望の経路（またはアプリ）に対する各ネットワークスイッチ１での遅延時間と、その影響度を算出することが可能となる。
【００９８】
図９、図１０で示した例では、ＴＣＰ宛先ポート番号と送信ポートＩＤ、受信ポートＩＤで経路を辿っていたが、これに限定されるものでなく、例えば経路を辿る情報として宛先ＩＰアドレスを加え、Ｌ３のＦＤＢを参照し、宛先ＩＰアドレスが送信されるポートＩＤを検索するようにしてもよい。これにより、さらに経路の絞り込みを行うことが可能となる。また、同様に宛先ＭＡＣアドレスを経路探索の情報に加えてもよい。
【００９９】
図１１、図１２、図１３は、図９と図１０によって管理装置２がネットワークシステム２１の全経路の遅延時間を出力装置２０６へ表示する例である。
【０１００】
図１１は、アプリ１１〜アプリ３２間のある瞬間（時刻情報）における遅延時間を３次元グラフで表示させるものであり、管理装置２が、集約遅延テーブル８１を生成（または集約）する度に図１１の３次元グラフも更新していく。Ｘ軸（図中Ｔｏ軸）信先アプリを示し、Ｙ軸（図中Ｆｒｏｍ軸）は送信元アプリを示し、Ｚ軸（遅延時間軸）は各アプリ間の遅延時間を示している。例えば、送信元アプリがアプリ１１、送信先アプリがアプリ３２の場合、遅延時間は図１１の遅延棒グラフ１００で図示されている。
【０１０１】
図１１によって、アプリ間での遅延時間の傾向を一目で確認することができるようになる。例えば、アプリ１１、１２、３１、３２間での遅延時間が大きいことが図１１から分かる為、アプリ１１、１２を実行する物理サーバ２２（１）と、アプリ３１、３２を実行する物理サーバ２２（３）間の通信に遅延が大きくなっている傾向を把握することが可能である。図１１はアプリ間での表示を行ったが、これに限定されるものではなく、物理サーバ２２間の遅延であってもよく、あるいはネットワークスイッチ１のポート間の遅延を表示するようにしてもよい。
【０１０２】
図１２は、遅延時間の内訳と遅延時間の影響度の内訳を出力装置２０６へ表示する例を示したものである。図１１の遅延時間の棒グラフ１００は、アプリ間の遅延時間を示しているが、集約遅延テーブル８１では、ネットワークスイッチ１（ｎ）を通過するイーサネットフレームの遅延時間を個々に保持しており、図中（ａ）はネットワークスイッチ１（ｎ）毎の遅延時間を表示したものである。例えば、図中（ａ）は、ＳＷ１：１２３４［μｓ］、ＳＷ２：３４５［μｓ］、ＳＷ３：７８［μｓ］であることを表示している。さらに、集約遅延テーブル８１は遅延時間の影響度も保持しており、図中（ｂ）は影響度の内訳を表示したものである。例えば、図中（ｂ）はスイッチＩＤ“ＳＷ１”の遅延時間の影響度の内訳として、フローＩＤ“３７”が８０％、フローＩＤ“４”が１５％、フローＩＤ“１２”が５％であることを出力装置２０６に表示させたものである。
【０１０３】
例えば、図１１においてアプリ間の遅延時間が大きな箇所があった場合に、前記遅延時間のグラフ１００を選択すると、管理装置２は図１２に示すような遅延時間の内訳や影響度の内訳を表示させる。これにより、ネットワーク品質を劣化させる遅延時間が大きな箇所を特定しやすくなり、かつ、遅延原因となる影響度が大きなフローの発見を容易にすることができる。
【０１０４】
図１３は、アプリ間の遅延時間の時間変化を時系列でグラフ化したものである。Ｘ軸を時刻、Ｙ軸を遅延時間とし、特定のアプリ間の遅延時間をグラフ表示させる。管理装置２でアラーム閾値１０１を設定し、遅延時間が前記閾値を超えた出力ポート１１２（送信ポート）または当該出力ポートを経由するフローＩＤについてネットワーク管理者等へ警告や警報を送信または出力するようにしてもよい。
【０１０５】
遅延時間の表示方法は上記に限定されるものでなく、例えば、アプリ間もしくは物理サーバ２２間の遅延時間が大きな順に上位１０件をランキング表示するようにしてもよい。
【０１０６】
＜変形例＞
図１４は、上記実施例１の変形例を示す。図１ではキュー１２１が１つの場合を例に示したが、これに限定されるものではない。例えば、図１４に示すようにキュー処理部１２に複数のキュー１２１を設定した場合、キュースケジューラ１２３は送信スケジュール管理を行う機能を有する。
【０１０７】
例えば３つのキュー１２１（１）〜１２１（３）が設定され、優先度：高＝キュー１２１（１）、優先度：中＝キュー１２１（２）、優先度：低＝キュー１２１（３）の場合、キュースケジューラ１２３は優先度に従って高い優先度のキュー１２１に蓄えられたイーサネットフレームから送信するように制御する。
【０１０８】
優先度：高＝キュー長カウンタ１２２（１）、優先度：中＝キュー長カウンタ１２２（２）、優先度：低＝キュー長カウンタ１２２（３）は、それぞれ対応する優先度のキュー１２１に蓄えられたイーサネットフレームのデータ量を示すカウンタである。
【０１０９】
優先度：高キュー１２１（１）のキュー長依存遅延時間は、キュー１２１が１つの場合と同様である。優先度：中＝キュー１２１（２）のキュー長依存遅延時間は、キュー１２１が１つの場合と同様な計算による値に、優先度：高キュー１２１（１）のキュー長依存遅延時間を加えた値としてもよい。また前記値以上を、優先度：中＝キュー１２１（２）のキュー長依存遅延時間であるとしてもよい。優先度：低＝キュー１２１（３）のキュー長依存遅延時間は、キュー１２１が１つの場合と同様な計算による値に、優先度：中キュー１２１（２）のキュー長依存遅延時間を加えた値としてもよい。また前記値以上を、優先度：低＝キュー１２１（３）のキュー長依存遅延時間であるとしてもよい。
【０１１０】
また、図５は図１に記載の１つのポートに１つのキュー１２１がある場合について説明したが、図１４のように１つのポートに複数のキュー１２１（ｎ）がある場合、ポートＩＤ４２の代わりにキュー１２１（ｎ）を示すＩＤを保存し、前記キュー１２１（ｎ）に対応するキュー長４３を保存してもよい。
【０１１１】
以上のように、本発明によれば、ネットワークスイッチ１内のキュー１２１毎にキュー長をモニタリングすることで、出力ポート１１２やキュー１２１毎にネットワークスイッチ１を通過するデータの遅延時間を把握することが可能となる。さらに、フロー毎の流量（データ量）と前記遅延時間によって、遅延時間の内訳を把握することが可能となる。複数台のネットワークスイッチ１によって構成されたネットワークシステム２１において、アプリケーションのＥｎｄ−ｔｏ−Ｅｎｄでの全体の遅延時間と、ネットワークスイッチ１毎の遅延時間と、前記遅延時間の内訳をフロー毎に把握することが可能となる。
【０１１２】
以上により、ネットワークシステム２１の遅延時間の記録を保存することが可能となり、例えば、遅延時間が大きくなるホットスポットの特定と、原因となるフローを発見することができる。ネットワークシステム２１においてＥｎｄ−ｔｏ−Ｅｎｄの通信が、複数の経路を選択可能な場合、悪影響を出しているフローを別の経路に変更することで、ネットワークシステム２１内の品質低下を防ぐトラフィックエンジニアリングが可能となる。
【実施例２】
【０１１３】
図１５は、本発明の第２の実施例を示し、前記ネットワークスイッチ１に代わってハイパーバイザ２３０内の仮想スイッチ２４０に本発明を適用した例を示す。図１５の例は、物理サーバ２２Ａでハイパーバイザ２３０を実行し、複数の仮想計算機（図中ＶＭ）２７０（１）〜２７０（ｎ）をハイパーバイザ２３０上で稼動させ、各仮想計算機２７０でアプリケーション（図示省略）を前記実施例１と同様に実行する。なお、物理サーバ２２Ａは、図２と同様に、管理ネットワーク２１Ｍを介して管理装置２に接続される。
【０１１４】
物理サーバ２２Ａは、演算を行うＣＰＵ１６と、データやプログラムを保持する記憶部１７と、時刻をカウントするクロック処理部１８と、フローテーブル５１を格納するフロー記憶部１９と、前記実施例１の図２に示したネットワークスイッチ１に接続される物理ＮＩＣ２８０を含む。なお、記憶部１７は、前記実施例１の図１と同様に、遅延時間算出部７１と影響度算出部７２を含むテーブル生成部７０と、キュー長テーブル４と、遅延テーブル６１を保持する。
【０１１５】
ハイパーバイザ２３０は、各仮想計算機２７０（１）〜２７０（ｎ）に仮想ＮＩＣ２６０（１）〜２６０（ｎ）と、複数の仮想ポート２５０（１）〜２５０（ｎ）、２５０（ｖ）を有する仮想スイッチ２４０を提供する。各仮想ＮＩＣ２６０（１）〜２６０（ｎ）は仮想ポート２５０（１）〜２５０（ｎ）にそれぞれ接続されて仮想計算機２７０間または物理ＮＩＣ２８０を介して外部と通信する。
【０１１６】
仮想スイッチ２４０は、物理ＮＩＣ２８０に接続される仮想ポート２５０Ｖを有し、物理ＮＩＣ２８０を介して図２に示したネットワークスイッチ１に接続される。そして、仮想スイッチ２４０は、各仮想ポート２５０（１）〜２５０（ｎ）に対応するキュー処理部１２（１）〜１２（ｎ）と、各キュー処理部１２（１）〜１２（ｎ）に接続された出力処理部１３（１）〜１３（ｎ）と、仮想ポート２５０Ｖから受信した信号（イーサネットフレーム）を各キュー処理部１２へ転送し、また、仮想ポート２５０（１）〜２５０（ｎ）から受信した信号を仮想ポート２５０Ｖまたはキュー処理部１２へ転送するする入力処理部１４と、を含む。
【０１１７】
各仮想ポート２５０（１）〜２５０（ｎ）は、それぞれ入力ポート１１１（１）〜１１１（ｎ）及び出力ポート１１２（１）〜１１２（ｎ）とを有する。そして、各キュー処理部１２（１）〜１２（ｎ）は、前記実施例１と同様に、キュー１２１（１）〜１２１（ｎ）とキュー長カウンタ１２２（１）〜１２２（ｎ）とキュースケジューラ１２３（１）〜１２３（ｎ）で構成される。
【０１１８】
ＣＰＵ１６は、前記実施例１と同様に、仮想スイッチ２４０内のキュー１２１毎にキュー長をモニタリングすることで、前記実施例１と同様に、仮想計算機２７０を提供する物理サーバ２２Ａにおいても、出力ポート１１２やキュー１２１毎に仮想スイッチ２４０を通過するデータの遅延時間を把握することが可能となる。さらに、物理サーバ２２Ａで処理するフロー毎の流量（データ量）と前記遅延時間によって、仮想計算機２７０間または仮想計算機２７０と外部の物理サーバ２２間の遅延時間の内訳を把握することが可能となる。
【０１１９】
以上により、前記実施例１と同様に仮想スイッチ２４０及びネットワークシステムの遅延時間記録を保存することが可能となり、例えば、遅延時間が大きくなるホットスポットの特定と、原因フローを発見することができる。ネットワークシステムにおいてＥｎｄ−ｔｏ−Ｅｎｄの通信が、複数の経路を選択可能な場合、悪影響を出しているフローを別経路に流すことで、ネットワークシステム内の品質低下を防ぐトラフィックエンジニアリングが可能となる。
【０１２０】
なお、本発明において説明した計算機等の構成、処理部及び処理手段等は、それらの一部又は全部を、専用のハードウェアによって実現してもよい。
【０１２１】
また、本実施例で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体（例えば、非一時的な記憶媒体）に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。
【０１２２】
また、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明をわかりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【符号の説明】
【０１２３】
１  ネットワークスイッチ
２  管理装置
３  トポロジ情報
４  キュー長テーブル
１１  通信ポート
１２  キュー処理部
１３  出力処理部
１４  入力処理部
１５  管理用通信ポート
１６  ＣＰＵ
１７  記憶部
１８  クロック処理部
１９  フロー記憶部
２１  ネットワークシステム
２２  物理サーバ
２３  通信ポート
４１  スイッチＩＤ
４２  ポートＩＤ
４３  キュー長
５１  フローテーブル
５２  フローＩＤ
５３  受信ポートＩＤ
５４  送信ポートＩＤ
５５  ＴＣＰ宛先ポート番号
５６  ＣＯＵＮＴＥＲ
６１  遅延テーブル
６２  遅延時間
６３  影響度
８１  集約遅延テーブル
１００  遅延棒グラフ
１０１  アラーム閾値
１１１  入力ポート
１１２  出力ポート
１１３  ケーブル
１２１  キュー
１２２  キュー長カウンタ
１２３  キュースケジューラ                                                        
【図１】
2015231137.tif 000003
【図２】
2015231137.tif 000004
【図３】
2015231137.tif 000005
【図４】
2015231137.tif 000006
【図５】
2015231137.tif 000007
【図６】
2015231137.tif 000008
【図７】
2015231137.tif 000009
【図８】
2015231137.tif 000010
【図９】
2015231137.tif 000011
【図１０】
2015231137.tif 000012
【図１３】
2015231137.tif 000013
【図１１】
2015231137.tif 000014
【図１２】
2015231137.tif 000015
【図１４】
2015231137.tif 000016
【図１５】
2015231137.tif 000017