(57)【要約】  実施例が、仮想マシンモニタを通して１つ以上のネットワークインターフェースから１つ以上の他のネットワークインターフェースへ１つ以上のパケットの通信をさせ、仮想マシンモニタを通して通信される１つ以上のパケットの各々に少なくとも部分的に基づいて仮想マシンモニタのレイテンシ及びジッタのうち少なくとも１つを決定し、レイテンシ及びジッタのうち少なくとも１つが仮想マシンモニタ上の仮想マシンの要件を満たさないときに補正処置を実行する技術に一般に向けられ得る。
2019536299.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
メモリと、
前記メモリに結合された処理回路と、
前記処理回路により少なくとも部分的に実現される論理と、を含み、
前記論理は、
仮想マシンモニタを通して１つ以上のネットワークインターフェースから１つ以上のパケットの通信をさせ、
前記仮想マシンモニタを通して通信される前記１つ以上のパケットに少なくとも部分的に基づいて前記仮想マシンモニタのレイテンシ又はジッタを決定し、
前記レイテンシ又は前記ジッタが前記仮想マシンモニタ上の仮想マシンの定義されたパラメータを満たさないとき、補正処置を実行する、装置。
【請求項２】
前記論理は、前記補正処置のために前記仮想マシンモニタ上の前記仮想マシンを異なる仮想マシンモニタに移動する、請求項１に記載の装置。
【請求項３】
前記論理は、前記補正処置のために異なる仮想マシンモニタ上で前記仮想マシンを開始する、請求項１又は２に記載の装置。
【請求項４】
前記定義されたパラメータは、前記仮想マシンのサービスレベル合意において指定されたレイテンシ要件及びジッタ要件のうち１つ以上を含む、請求項１乃至３のうちいずれか１項に記載の装置。
【請求項５】
前記論理は、複数の仮想マシンモニタの各々についてレイテンシ及びジッタを決定し、前記決定されたレイテンシ及びジッタに少なくとも部分的に基づいてレイテンシ及びジッタモデルを生成する、請求項１乃至４のうちいずれか１項に記載の装置。
【請求項６】
前記論理は、前記仮想マシンの前記レイテンシ及びジッタモデル並びにサービスレベル合意に基づいて前記複数の仮想マシンモニタのうち１つで前記仮想マシンを開始する、請求項５に記載の装置。
【請求項７】
前記論理は、各ネットワークインターフェースに、前記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させて、前記ネットワークインターフェース間の瞬間的レイテンシを決定する、請求項１乃至５のうちいずれか１項に記載の装置。
【請求項８】
前記論理は、
各ネットワークインターフェースに、周期的に前記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させ、
各通信の後、瞬間的レイテンシを決定し、
少なくとも前記瞬間的レイテンシを使用して、各周期の後、レイテンシ及びジッタモデルを更新する、請求項１乃至５又は７のうちいずれか１項に記載の装置。
【請求項９】
前記ネットワークインターフェースのうち少なくとも１つが、前記仮想マシンモニタによりサポートされる仮想マシンの仮想ネットワークインターフェースを含む、請求項１乃至５、７、又は８のうちいずれか１項に記載の装置。
【請求項１０】
仮想マシンモニタを通して１つ以上のネットワークインターフェースから１つ以上の他のネットワークインターフェースへ１つ以上のパケットの通信をさせるステップと、
前記仮想マシンモニタを通して通信される前記１つ以上のパケットの各々に少なくとも部分的に基づいて前記仮想マシンモニタのレイテンシ又はジッタを決定するステップと、
前記レイテンシ又は前記ジッタが前記仮想マシンモニタ上の仮想マシンの定義されたパラメータを満たさないとき、補正処置を実行するステップと、
を処理回路に実行させるコンピュータプログラム。
【請求項１１】
前記補正処置のために前記仮想マシンモニタ上の前記仮想マシンを異なる仮想マシンモニタに移動するステップ、を処理回路にさらに実行させる請求項１０に記載のコンピュータプログラム。
【請求項１２】
前記補正処置のために異なる仮想マシンモニタ上で前記仮想マシンを開始するステップ、を処理回路にさらに実行させる請求項１０又は１１に記載のコンピュータプログラム。
【請求項１３】
前記定義されたパラメータは、前記仮想マシンのサービスレベル合意において指定されたレイテンシ要件及びジッタ要件のうち少なくとも１つを含む、請求項１０乃至１２のうちいずれか１項に記載のコンピュータプログラム。
【請求項１４】
複数の仮想マシンモニタの各々についてレイテンシ及びジッタを決定するステップと、前記決定されたレイテンシ及びジッタに少なくとも部分的に基づいてレイテンシ及びジッタモデルを生成するステップと、を処理回路にさらに実行させる請求項１０乃至１３のうちいずれか１項に記載のコンピュータプログラム。
【請求項１５】
前記仮想マシンの前記レイテンシ及びジッタモデル並びにサービスレベル合意に基づいて前記複数の仮想マシンモニタのうち１つで前記仮想マシンを開始するステップ、を処理回路にさらに実行させる請求項１４に記載のコンピュータプログラム。
【請求項１６】
各ネットワークインターフェースに、前記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させて、前記ネットワークインターフェース間の瞬間的レイテンシを決定するステップ、を処理回路にさらに実行させる請求項１０乃至１５のうちいずれか１項に記載のコンピュータプログラム。
【請求項１７】
各ネットワークインターフェースに、周期的に前記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させるステップと、
各通信の後、瞬間的レイテンシを決定するステップと、
少なくとも前記瞬間的レイテンシを使用して、各周期の後、レイテンシ及びジッタモデルを更新するステップと、
を処理回路にさらに実行させる請求項１０乃至１６のうちいずれか１項に記載のコンピュータプログラム。
【請求項１８】
前記ネットワークインターフェースのうち少なくとも１つが、前記仮想マシンモニタによりサポートされる仮想マシンの仮想ネットワークインターフェースを含む、請求項１０乃至１７のうちいずれか１項に記載のコンピュータプログラム。
【請求項１９】
コンピュータにより実現される方法であって、
仮想マシンモニタを通して１つ以上のネットワークインターフェースから１つ以上の他のネットワークインターフェースへ１つ以上のパケットの通信をさせるステップと、
前記仮想マシンモニタを通して通信される前記１つ以上のパケットの各々に少なくとも部分的に基づいて前記仮想マシンモニタのレイテンシ又はジッタを決定するステップと、
前記レイテンシ又は前記ジッタが前記仮想マシンモニタ上の仮想マシンの定義されたパラメータを満たさないとき、補正処置を実行するステップと、
を含む、コンピュータにより実現される方法。
【請求項２０】
前記補正処置は、前記仮想マシンモニタ上の前記仮想マシンを異なる仮想マシンモニタに移動すること及び前記補正処置のために異なる仮想マシンモニタ上で前記仮想マシンを開始することのうち１つ以上を含む、請求項１９に記載のコンピュータにより実現される方法。
【請求項２１】
前記定義されたパラメータは、前記仮想マシンのサービスレベル合意において指定されたレイテンシ要件及びジッタ要件のうち少なくとも１つを含む、請求項１９又は２０に記載のコンピュータにより実現される方法。
【請求項２２】
複数の仮想マシンモニタの各々についてレイテンシ及びジッタを決定するステップと、
前記決定されたレイテンシ及びジッタに少なくとも部分的に基づいてレイテンシ及びジッタモデルを生成するステップと、
を含む請求項１９乃至２１のうちいずれか１項に記載のコンピュータにより実現される方法。
【請求項２３】
前記仮想マシンの前記レイテンシ及びジッタモデル並びにサービスレベル合意に基づいて前記複数の仮想マシンモニタのうち１つで前記仮想マシンを開始するステップ、を含む請求項２２に記載のコンピュータにより実現される方法。
【請求項２４】
各ネットワークインターフェースに、前記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させて、前記ネットワークインターフェース間の瞬間的レイテンシを決定するステップ、を含む請求項１９乃至２３のうちいずれか１項に記載のコンピュータにより実現される方法。
【請求項２５】
各ネットワークインターフェースに、周期的に前記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させるステップと、
各通信の後、瞬間的レイテンシを決定するステップと、
少なくとも前記瞬間的レイテンシを使用して、各周期の後、レイテンシ及びジッタモデルを更新するステップと、
を含む請求項１９乃至２４のうちいずれか１項に記載のコンピュータにより実現される方法。
【請求項２６】
請求項１０乃至１８のうちいずれか１項に記載のコンピュータプログラムを記憶したコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2016年9月28日に出願された、前に出願された米国特許出願第15/279,380号に対する利益及び優先権を主張し、該出願の対象事項はその全体を本明細書において参照により援用される。
【０００２】
技術分野
本明細書で説明される実施例は、仮想マシンモニタを通してパケットを通信してレイテンシ及びジッタを決定することに一般に関する。
【背景技術】
【０００３】
サービス及び能力を提供するための仮想環境の利用は、今日のコンピューティング環境においてますます普及してきている。仮想環境は、高い可用性及びトラフィックレイテンシ要件を有するサービスを提供するために使用されている。例えば、電気通信会社は、これらの環境を使用してテレコムサービスをユーザに提供している。これらのサービスを提供するシステムは、サービスが提供されており、顧客により規定された厳しい要件を満たすことを確保するために、絶えず監視される。実施例は、これらの他の問題を解決することに向けられる。
【図面の簡単な説明】
【０００４】
発明の実施例が、添付図面の図において限定としてでなく例として示され、図面において、同様の参照番号は同様の要素を示す。
【図１Ａ】システムの例を示す。
【図１Ｂ】システムの例を示す。
【図１Ｃ】システムの例を示す。
【図２Ａ】論理フローの例を示す。
【図２Ｂ】論理フローの例を示す。
【図２Ｃ】論理フローの例を示す。
【図３】処理フローの例を示す。
【図４】論理フローの例を示す。
【図５】コンピューティングシステムの例を示す。
【図６】コンピュータアーキテクチャの例を示す。
【発明を実施するための形態】
【０００５】
本明細書で論じられる様々な実施例は、ハイパーバイザ（hypervisor（登録商標））などの仮想マシンモニタによりもたらされるレイテンシ及びジッタ（jitter）を決定するための方法、装置、デバイス、及びシステムを含み得る。例えば、実施例は、１つ以上の「トレーサ（tracer）」パケットを仮想マシンモニタを通してネットワークインターフェース間で通信させることを含み得る。ネットワークインターフェースは、仮想ネットワークインターフェースを含み、仮想マシンモニタを介して動作する仮想マシンに関連づけられてもよい。いくつかの実施例において、仮想マシンは、ネットワーキングサービスを提供できる仮想ネットワーキング機能（virtual  networking  functions；ＶＮＦ）などの１つ以上のサービスをサポートし、動作させてもよい。
【０００６】
実施例は、通信されたパケットを使用して仮想マシンモニタのレイテンシ及びジッタを決定することをさらに含み得る。例えば、レイテンシは、パケットがネットワークインターフェースにより送信されたときと、それが別のネットワークインターフェースにより受信されたときとの間の差に基づいてもよい。測定は、仮想マシンモニタによりもたらされたレイテンシを示させる。ジッタ又はパケット遅延変動がさらに計算され、仮想マシンモニタのレイテンシ及び過去レイテンシ測定に基づいてもよい。ジッタは、異なるレイテンシ計算間のレイテンシの変動を示してもよい。
【０００７】
いくつかの例において、実施例は、レイテンシ又はジッタが仮想マシンの指定された要件又は定義されたパラメータを満たさないことに基づいて補正処置を実行することをさらに含み得る。例えば、サービスレベル合意（service  level  agreement）が、仮想マシンのレイテンシ及びジッタ要件を含む１つ以上の定義されたパラメータを規定してもよい。実施例は、仮想マシンモニタによりこれらの要件が満たされていることを確保し、これらが満たされていないときに緩和又は補正処置を行うことを含み得る。例えば、仮想マシン及びアプリケーションが、異なる仮想マシンモニタにマイグレートされ（migrated）てもよい。別の例において、実施例は、異なる仮想マシンモニタ上で仮想マシン及びアプリケーションを開始することを含み得る。これら及び他の詳細が以下の説明で論じられる。
【０００８】
次に、図面に対して参照が行われ、同様の参照番号は、全体を通して同様の要素を示すために使用される。以下の説明において、説明の目的で、複数の特定の詳細がその完全な理解を提供するために明記される。しかしながら、新規の実施例はこれらの特定の詳細なく実施できることが明らかであり得る。他の例において、周知の構造及びデバイスが、その説明を容易にするためにブロック図形式で示される。その意図は、請求される対象事項と一貫するすべての修正、均等物、及び代替をカバーすることである。
【０００９】
図１Ａは、仮想環境の一部であり得るシステム１００の一般的概観を示す。実施例において、図のいくつかに表されるシステム１００は様々な構成で提供されてもよい。いくつかの実施例において、システムは、システムの１つ以上のコンポーネントがクラウドコンピューティングシステムにおいて１つ以上のネットワークにわたり分散される分散システムとして構成されてもよい。さらに、システムは様々な環境を利用してもよい。ゆえに、システムの１つ以上のコンポーネントが、例えば、必ずしも特定のマシン又はデバイスに結び付けられなくてもよく、しかし、特定の性能要件を満たすために利用可能なリソースを有するマシン又はデバイスのプール又はグループにおいて動作してもよい。システム１００は、１つ以上の仮想環境が１つ以上のサービスレベル定義パラメータを満たすことを可能にし得る。これら及び他の詳細が以下の説明でより明らかになる。
【００１０】
システム１００は、処理回路１０２、メモリ１０４、１つ以上のネットワークインターフェース１０６、及び記憶装置１０８を含み得る。いくつかの実施例において、処理回路１０２は、論理を含んでもよく、これらに限られないがマイクロプロセッサ、プロセッサ、中央処理ユニット、デジタル信号処理ユニット、デュアルコアプロセッサ、モバイルデバイスプロセッサ、デスクトッププロセッサ、シングルコアプロセッサ、システムオンチップ（ＳｏＣ）デバイス、複合命令セットコンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小命令セット（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）回路、又は単一チップ若しくは集積回路上の任意の他タイプのプロセッサ若しくは処理回路などの、任意タイプの計算要素のうち１つ以上でもよい。処理回路１０２は、１つ以上のバス、制御ライン、及びデータラインなどのインターコネクト（図示されていない）を介して、ピアシステム１０５の他の要素に接続され、該他の要素と通信してもよい。いくつかの実施例において、処理回路１０２は、実行中にアクセスされ及びアクセスできる命令を含む情報を記憶するために処理ユニットに利用可能なプロセッサレジスタ又は少量の記憶装置を含んでもよい。さらに、プロセッサレジスタは、メモリ階層の上位に通常あり、データにアクセスするための最速の方法を提供する。
【００１１】
上述されたように、システム１００は、情報を記憶するためのメモリ１０４を含み得る。さらに、メモリ１０４は、揮発及び不揮発メモリの双方を含む、データを記憶できるマシン読取可能又はコンピュータ読取可能媒体を使用して実現されてもよい。いくつかの実施例において、マシン読取可能又はコンピュータ読取可能媒体は非一時的媒体を含んでもよい。実施例はこの文脈で限定されない。
【００１２】
メモリ１０４は、瞬間的、一時的、又は永続的にデータを記憶することができる。メモリ１０４は、システム１００のための命令及びデータを記憶する。メモリ１０４は、処理回路１０２が命令を実行している間、一時変数又は他の中間情報をさらに記憶してもよい。いくつかの実施例において、情報及びデータが、命令の処理中、メモリ１０４からコンピューティングレジスタにロードされてもよい。次いで、操作されたデータは、しばしば、同じ命令によってか又は後の命令によってかのいずれかで、メモリ１０４に戻され記憶される。メモリ１０４は、上記で論じられたデータを記憶することに限定されず、メモリ１０４は、任意タイプのデータを記憶し得る。
【００１３】
１つ以上のネットワークインターフェース１０６は、無線及び有線接続を通じての情報又は通信を処理する任意のデバイス及び回路を含む。例えば、１つ以上のネットワークインターフェース１０６は、受信機、送信機、１つ以上のアンテナ、及び１つ以上のイーサネット（登録商標）接続を含んでもよい。１つ以上のネットワークインターフェース１０６の具体的な設計及び実装は、システム１００が動作するよう意図した通信ネットワークに依存してもよい。
【００１４】
システム１００は、これらに限られないが磁気ディスクドライブ、光学ディスクドライブ、テープドライブ、内部記憶装置、取り付け記憶装置、フラッシュメモリ、バッテリバックアップ付きＳＤＲＡＭ（同期ＤＲＡＭ）、及び／又はネットワークアクセス可能記憶装置などの、不揮発記憶装置として実現され得る記憶装置１０８を含み得る。実施例において、記憶装置１０８は、例えば、複数のハードドライブが含まれるときに高価なデジタル媒体の記憶性能強化保護を増大させる技術を含んでもよい。記憶装置１０８のさらなる例には、ハードディスク、フロッピーディスク、コンパクトディスク読取専用メモリ（ＣＤ‐ＲＯＭ）、コンパクトディスクレコーダブル（ＣＤ‐Ｒ）、コンパクトディスクリライタブル（ＣＤ‐ＲＷ）、光ディスク、磁気媒体、磁気光媒体、取外し可能メモリカード若しくはディスク、様々なタイプのＤＶＤデバイス、テープデバイス、カセットデバイスなどを含んでもよい。実施例はこの文脈で限定されない。
【００１５】
さらに、記憶装置１０８は、情報を一時的にメモリ１０４に記憶させ、かつ処理回路１０２により処理させ得る命令を含んでもよい。より具体的に、記憶装置１０８は、１つ以上のオペレーティングシステム（ＯＳ）、１つ以上の仮想環境、及び１つ以上のアプリケーションを含んでもよい。
【００１６】
いくつかの実施例において、１つ以上のオペレーティングシステムは、Ａｎｄｒｏｉｄ（登録商標）ベースのオペレーティングシステム、Ａｐｐｌｅ（登録商標）  ｉＯＳ（登録商標）ベースのオペレーティングシステム、Ｓｙｍｂｉａｎ（登録商標）ベースのオペレーティングシステム、Ｂｌａｃｋｂｅｒｒｙ（登録商標）  ＯＳベースのオペレーティングシステム、Ｗｉｎｄｏｗｓ（登録商標）  ＯＳベースのオペレーティングシステム、Ｐａｌｍ  ＯＳ（登録商標）ベースのオペレーティングシステム、Ｌｉｎｕｘ（登録商標）ベースのオペレーティングシステム、ＦｒｅｅＢＳＤ（登録商標）ベースのオペレーティングシステムなどの、任意タイプのオペレーティングシステムでもよい。オペレーティングシステムは、他の仮想環境及びアプリケーションが動作することを可能にし得る。
【００１７】
いくつかの実施例において、システム１００は、ハイパーバイザなどの仮想マシンモニタ１１０を介して動作する１つ以上の仮想マシンを含み得る１つ以上の仮想環境を含み得る。仮想マシンは、ハードウェア、メモリ、及びインターフェース、並びにオペレーティングシステムを含むソフトウェアなどの、コンピュータシステムの特定の部分をエミュレートし得る。例えば、以下でより詳細に論じられるように、システム１００は、仮想処理回路１２２、仮想化メモリ１２４、１つ以上の仮想ネットワークインターフェース１２６、及び仮想記憶装置１２８を含んでもよい。
【００１８】
いくつかの実施例において、仮想処理回路１２２は、仮想マシンに割り当てられる、処理回路１０２などの物理中央処理ユニット（ＣＰＵ）でもよい。いくつかの例において、各仮想マシンは、仮想処理回路１２２を割り振られてもよい。しかしながら、いくつかの例において、システム１００がその配設で複数のＣＰＵコアを有する場合、コンピュータ処理ユニット（ＣＰＵ）スケジューラが実行コンテキストを割り当てることができ、仮想処理回路１２２は論理プロセッサ上の一連の時間スロットを介して処理を可能にする。実施例はこの方式に限定されない。
【００１９】
同様の方式で、システム１００は、仮想マシンのために割り振られたメモリ１０４の一部を含み得る仮想化メモリ１２４を含み得る。仮想化メモリ１２４は、メモリ１０４が使用されるのと同じ方式で仮想マシンにより使用されてもよい。例えば、仮想化メモリ１２４は、処理のために仮想マシンに関連づけられた命令を記憶してもよい。いくつかの実施例において、仮想化メモリ１２４は、仮想メモリマネージャ（図示されていない）により制御されてもよく、これは、仮想マシンモニタ１１０の一部でもよい。
【００２０】
システム１００は、１つ以上の仮想ネットワークインターフェース１２６をさらに含み得る。仮想ネットワークインターフェース１２６は、ネットワークインターフェース１０６などのコンピュータネットワークインターフェースの抽象的仮想化表現である。仮想ネットワークインターフェース１２６は、仮想マシンにとって、その独自の媒体アクセス制御（ＭＡＣ）アドレスを有する本格的なイーサネットコントローラとして見えてもよい。仮想ネットワークインターフェース１２６は、ネットワークインターフェース１０６にブリッジされ（bridged）てもよい。仮想マシンにより通信されるパケットは、例えば、宛先に対する通信のために、仮想ネットワークインターフェース１２６及びブリッジされた物理ネットワークインターフェース１０６を通して送信されてもよい。いくつかの実施例において、パケットは、仮想マシンモニタ１１０を通して通信されてもよい。
【００２１】
システム１００は、仮想記憶装置１２８をさらに含み得る。仮想記憶装置１２８は、例えば、仮想マシンに割り振られた物理記憶装置１０８の一部でもよい。仮想記憶装置１２８は、仮想マシンのための情報を記憶してもよい。いくつかの例において、仮想記憶装置１２８は、仮想マシンの作成の時に仮想マシンに割り振られてもよい。
【００２２】
いくつかの例において、システム１００は、例えば、ハードウェアネットワーキングインフラストラクチャ  ‐  ルータ、スイッチ等の上位で、１つ以上の仮想マシン上で実行する特定のネットワーク機能を扱う責任を負う仮想ネットワーク機能（ＶＮＦ）１３２‐ｎを含み、かつ／あるいは利用することができる。個々のＶＮＦは、システム１００のためのフルスケールのネットワーキング通信サービスを提供するための構築ブロックとして一緒に接続又は組み合わせできる。例えば、いくつかの実施例において、システム１００は、ロングタームエボリューション（Long-Term  Evolution；ＬＴＥ（登録商標））及び後続５Ｇ標準システムにおけるセルラー及びパケットベースの通信を処理するためのテルコ（Telco）システムの一部でもよい。様々なＶＮＦ１３２‐ｎが、システム１００の様々な通信能力を提供し得る。ゆえに、ＶＮＦ１３２‐ｎは、トラフィッククラスに基づく、及びサービスレベル合意により定義される、厳しい性能要件を有するよう予期されることがある。より詳細に論じられるように、実施例は、仮想マシンモニタ１１０を通してパケット通信を監視して、仮想環境及び仮想マシンモニタ１１０により少なくとも部分的にもたらされるリアルタイムの、アベレージの、及び平均のレイテンシ及びジッタを決定することにより、これらの厳しい性能要件を維持することに向けられる。
【００２３】
仮想マシンモニタ１１０又はハイパーバイザは、仮想マシンを作成して実行する１つのコンピュータソフトウェア、ファームウェアハードウェアでもよい。いくつかの例において、仮想マシンモニタ１１０は、仮想回路１２２、仮想化メモリ１２４、仮想ネットワークインターフェース１２６、及び仮想記憶装置１２８を使用のために仮想マシンに提示する。ゆえに、仮想マシンモニタ１１０は、仮想マシンがシステム１００のハードウェア及びコンポーネントを利用することを可能にし得る。例えば、仮想マシンモニタ１１０は、仮想マシン環境内で実行するアプリケーションが仮想処理回路１２２を介して処理回路１０２を、仮想化メモリ１２４を介してメモリ１０４を、及び仮想記憶装置１２８を介して記憶装置１０８を利用することを可能にする。同様に、仮想マシンモニタ１１０は、パケットが仮想ネットワークインターフェース１２６及びネットワークインターフェース１０６を介して仮想マシンのアプリケーションと外部計算環境との間で通信されることを可能にし得る。これらのパケットは、有線又は無線接続を介して１つ以上の他のデバイスに通信されてもよい。いくつかの実施例において、仮想マシンモニタ１１０は、仮想オペレーティングプラットフォームを有するゲストオペレーティングシステムを仮想マシンに提示してもよく、ゲストオペレーティングシステムの実行を管理する。
【００２４】
前述されたように、実施例は、仮想マシンモニタ１１０を通してパケットのレイテンシ及びジッタを監視することを含み得る。例えば、トレーサパケットなどの１つ以上のパケットが、ネットワークインターフェースの各々と仮想ネットワークインターフェース１２６の各々との間で通信されてもよい。パケットは、ネットワークインターフェース１０６及び仮想マシンモニタ１１０によりホストされる仮想ネットワークインターフェース１２６により生成され、周期的、又は半周期的（semi-periodic）に通信される。より具体的に、パケットは、レイテンシ及びジッタ検出の容易さを可能にするために、固定のフレーム間遅延（inter  frame  delay）（周期）でネットワークインターフェース１０６及び仮想ネットワークインターフェース１２６により投入されてもよい。さらに、様々な投入パス粒度が、仮想マシンレベル、仮想ポート／仮想ブリッジレベル、仮想接続レベル、及びサービスクラス（class  of  service）レベルにおいてを含みサポートされてもよい。サービスクラスレベルは、リアルタイムトラフィック及びベストエフォートトラフィックなどのトラフィッククラスでもよい。仮想マシンモニタ１１０は、パケットの通信に基づいて、ネットワークインターフェース１０６及び仮想ネットワークインターフェース１２６の間の瞬間的レイテンシ及びジッタを決定してもよい。さらに、仮想マシンモニタ１１０は、この情報、例えば瞬間的レイテンシ及びジッタ情報を、さらなる処理のために仮想マシンコントローラ１４０に通信してもよい。
【００２５】
実施例において、システム１００は、ＶＭｗａｒｅ（登録商標）Ｏｒｃｈｅｓｔｒａｔｏｒ（登録商標）又はＯｐｅｎＳｔａｃｋ（登録商標）などの仮想マシンコントローラ１４０をさらに含み得る。仮想マシンコントローラ１４０は、ユーザが１つ以上の仮想マシンのための管理タスクを実行することを可能にし得る。さらに、仮想マシンコントローラ１４０は、１つ以上の仮想マシンモニタ１１０からレイテンシ及びジッタ情報を受信して、クラウド計算環境にわたるレイテンシ及びジッタ分布モデルを生成し、更新してもよい。ゆえに、仮想マシンコントローラ１４０は、クラウドレベルでレイテンシ及びジッタを監視し、様々なユーザ及びユーザアプリケーションについて特定のサービスレベル合意が満たされているかどうかに関してリアルタイムの判断を行うことができる。例えば、仮想マシンコントローラ１４０は、仮想マシンモニタ１１０及び関連づけられた仮想マシンがサービスレベル合意に基づくレイテンシ及びジッタ要件を含む定義されたパラメータを満たすことができるかどうかを決定することができる。そうでない場合、仮想マシンコントローラ１４０は、１つ以上の緩和又は補正処置を実行させてもよい。例えば、アプリケーションが、指定されたレイテンシ及びジッタ要件をサポートしていないシステム上で既に動作している場合、仮想マシンコントローラ１４０は、仮想マシンとＶＮＦ１３２‐ｎなどのアプリケーションとに、要件を満たすことができる異なる仮想マシンモニタ１１０にマイグレートさせてもよい。異なる例において、仮想マシンコントローラ１４０は、現在実行していない仮想マシン及びアプリケーションに、指定された要件を満たすことができる仮想マシンモニタ１１０上で開始させてもよい。別の例において、仮想マシンコントローラ１４０は、仮想マシンモニタ１１０内の１つ以上の構成変更をさせて、性能特性を向上させてもよい。実施例はこれらの例に限定されない。
【００２６】
図１Ｂは、クラウドベースの計算環境のレイテンシ及びジッタを監視及び緩和するシステム１５０の例を示す。前述されたように、実施例は、互いの間でパケットを通信する各ネットワークインターフェース１０６‐ｐ及び仮想ネットワークインターフェース１２６‐ｍを含んでよく、ｐ及びｍは任意の正整数でよい。ゆえに、パケットは、間欠的な間隔で、インターフェース（１０６及び１２６）のすべてに、及び該すべてから送信されることがある。これらのネットワークインターフェース１０６及び仮想ネットワークインターフェース１２６は、仮想マシンモニタ１１０によりサポートされる仮想マシンのためのネットワークサービスを提供してもよい。仮想マシンモニタ１１０は、ネットワークインターフェース１０６及び仮想ネットワークインターフェース１２６の間で通信されるパケットに基づいて瞬間的レイテンシ及びジッタを決定してもよい。
【００２７】
パケットは、「アクティブセッション」の間、例えば、システム１５０がネットワーク機能仮想化（network  function  virtualization；ＮＦＶ）を有効にするためにＶＮＦ１３２などのアプリケーションのための情報を処理しているとき、システム１５０に挿入されてもよい。ゆえに、パケットは、セッションパケットにより横断されるパスを正確に反映するために、処理回路１０２を通るリアルパスに挿入されてもよい。ゆえに、ＶＮＦ１３２を含むＮＦＶ環境において、仮想マシンモニタ１１０は、パケット、例えばトレーサパケットを、リアルトラフィックとして扱ってもよい。しかしながら、パケットは、アプリケーションへの引渡し又はアプリケーションへの通過の前、仮想ネットワークインターフェース１２６の最終段階の前に除去されてもよい。いくつかの例において、パケットは、処理回路１０２を出る前に除去されてもよい。ゆえに、周期的パケット挿入がネットワークインターフェース１０６及び仮想ネットワークインターフェース１２６にわたりスケジュールでき、それにより、これらがスループットに影響しないことをパケットスケジューリングが確保するとき、トレーシングは、性能の観点で立ち入らない（non-intrusive）。例えば、パケットスケジューラは、それがセッションパケットが通信していないことを知っている周期又は間隔の間、トレーシングパケットの通信をさせる。実施例はこの方式に限定されない。
【００２８】
仮想マシンモニタ１１０は、レイテンシ及びジッタ情報を決定し、それを仮想マシンコントローラ１４０に送信してもよい。仮想マシンモニタ１１０は、パケットドロップをさらに監視し、記録し、これは、仮想マシンコントローラ１４０にさらに送信され、補正処置を実行するために使用されてもよい。いくつかの実施例において、仮想マシンモニタ１１０は、トリガイベントに基づいて情報を仮想マシンコントローラ１４０に通信してもよい。例えば、情報は、瞬間的レイテンシがレイテンシ閾値を上回るとき、通信されてもよい。レイテンシ閾値は、例えば、サービスレベル合意において確立されたレイテンシ要件に基づいてもよい。別の例において、仮想マシンモニタ１１０は、サービスレベル合意におけるレイテンシ要件に同様に基づき得るレイテンシ閾値などの閾値をアベレージレイテンシが上回ると決定されたとき、情報を通信してもよい。実施例はこの方式で限定されず、いくつかの例において、仮想マシンコントローラ１４０が、周期的、半周期的、又は非周期的に情報をポーリングしてもよい。いくつかの例において、仮想マシンコントローラ１４０は、クラウドベースの計算環境において任意数の仮想マシンについて監視し、決定を行ってもよい。
【００２９】
図１Ｃは、クラウドベースの計算環境においてレイテンシ及びジッタを監視及び緩和する例示的なシステム１７５を示す。システム１７５は、仮想マシンコントローラ１４０により監視できる複数の仮想マシンモニタ１１０‐ｑを含み、ｑは任意の正整数でよい。仮想マシンコントローラ１４０は、以下でより詳細に論じられるように、仮想マシンモニタ１１０‐ｑを監視することに限定されず、他の処置を実行してもよい。
【００３０】
仮想マシンモニタ１１０‐ｑの各々は、仮想環境、又は仮想環境を提供するための仮想マシンに関連づけられてもよい。例えば、仮想マシンモニタ１１０は、ネットワーク機能仮想化を有効にし、かつＶＮＦ１３２アプリケーションを含む仮想マシンをサポートしてもよい。これらのＶＮＦ１３２アプリケーションは、厳しいレイテンシ及びジッタ要件を典型的に含む。仮想マシンモニタ１１０‐ｑの各々は、レイテンシ及びジッタ情報を仮想マシンコントローラ１４０に報告することができ、これは、ＶＮＦ１３２などのアプリケーションのレイテンシ及びジッタ要件が満たされていることを確保する。仮想マシンコントローラ１４０は、例えば、要件が満たされていない場合、アプリケーション及び仮想マシンを異なる仮想マシンモニタ１１０に移動してもよい。仮想マシンモニタ１１０‐ｑ及び仮想マシンコントローラ１４０の各々は、単一の計算デバイス若しくはサーバ、又は複数の計算デバイス若しくはサーバにわたり動作してもよいことに留意する。ゆえに、アプリケーション及び仮想マシンを移動することは、これらをあるデバイスから別のデバイスに移動することを含んでもよい。しかしながら、実施例はこの方式で限定されない。いくつかの例において、アプリケーション及び仮想マシンは、同じデバイス上の仮想マシンモニタ１１０間で移動されてもよい。
【００３１】
いくつかの実施例において、仮想マシンコントローラ１４０は、仮想マシンモニタ１１０‐ｑの各々からレイテンシ及びジッタ情報を受信し、仮想マシンモニタ１１０‐ｑの各々について統計モデルを生成することができる。統計モデルは、ある期間にわたり仮想マシンモニタ１１０‐ｑの各々についてレイテンシ及びジッタ統計を記録してもよい。モデルは、仮想環境モニタの各々についてレイテンシ及びジッタに関して平均及び標準偏差を決定するために使用できるガウシアン分布を含んでもよい。これらのモデルは、特定の仮想マシンモニタ１１０‐ｑが仮想マシン及びアプリケーションの要件を満たすことができるかどうかを決定するために、仮想マシンコントローラ１４０により使用されてもよい。特定の仮想マシンモニタ１１０‐ｑが、モデルに基づいて仮想マシン及びアプリケーションをサポートすることができる場合、仮想マシンコントローラ１４０は、補正処置を行わなくてもよい。しかしながら、特定の仮想マシンモニタ１１０‐ｑが仮想マシン及びアプリケーションをサポートすることができない場合、仮想マシンコントローラ１４０は、異なる仮想マシンモニタ１１０‐ｑ上に仮想マシン及びアプリケーションを移動し、あるいはインスタンス化してもよい。
【００３２】
図２Ａは、仮想環境における処理のための第１の論理フロー２００の例を示す。論理フロー２００は、本明細書で説明される１つ以上の実施例により実行される動作の一部又は全部の代表であり得る。例えば、論理フロー２００は、図１Ａ〜１Ｃに示される仮想マシンモニタ１１０により実行される動作を示し得る。様々な実施例はこの方式で限定されず、１つ以上の動作が、仮想マシンコントローラ１４０を含む他のコンポーネントにより実行されてもよい。
【００３３】
ブロック２０２において、仮想マシンモニタが、１つ以上のネットワークインターフェース及び仮想ネットワークインターフェースに、互いの間でパケットを通信させてもよい。いくつかの実施例において、パケットは、システムの処理回路を通るリアルパスを表すアクティブセッションに挿入されるトレーサパケットでもよい。アクティブセッションは、１つ以上のアプリケーションにより処理されるべき又は処理されている情報が仮想マシンとクライアントデバイスとの間でさらに通信されるセッションでもよい。例えば、アクティブセッションの間、テレコム通信に関連する１つ以上のアクティブセッションパケットが、ネットワークインターフェース及び仮想ネットワークインターフェースの間でさらに通信されてもよい。これらのアクティブセッションパケットは、ＶＮＦなどのアプリケーションにより処理される情報を含んでもよい。
【００３４】
実施例において、トレーサパケットは、アプリケーションにより処理される情報を有するアクティブセッションパケットと干渉しない。例えば、トレーサパケットは、アクティブセッションパケット通信の間で通信されてもよい。しかしながら、トレーサパケットは、処理回路を通るアクティブセッションパケットと同じパスをたどってもよく、しかし、処理回路を出る前に除去されてもよい。トレーサパケットは、さらに、通信パイプラインの異なるポイントで除去されてもよい。例えば、これらはさらに、アプリケーションへの引渡しの前、仮想ネットワークインターフェースの最終段階により取り除かれてもよい。
【００３５】
トレーサパケットはさらに、これらがアクティブセッションパケットと干渉しないように周期的又は半周期的に通信されてもよい。例えば、トレーサパケットは、固定のフレーム間遅延（周期）で通信されてもよい。ゆえに、トレーサパケットは、アクティブセッションパケットのスループットに影響しない。
【００３６】
実施例において、各ネットワークインターフェース及び各仮想ネットワークインターフェースは、トレーサパケットを、あらゆる他のネットワークインターフェース及び仮想ネットワークインターフェースに通信してもよい。さらに、ブロック２０４において、仮想マシンモニタは、トレーサパケットの通信に基づいて瞬間的レイテンシ及びジッタを決定してもよい。仮想マシンモニタは、ネットワークインターフェース及び仮想ネットワークインターフェースがトレーサパケットを毎回通信した後、瞬間的レイテンシ及びジッタを決定してもよい。レイテンシは、トレーサパケットがインターフェースにより通信されたときと、それがインターフェースにより受信されたときとの間の差に基づいて決定されてもよい。いくつかの実施例において、仮想マシンモニタは、インターフェースからこの情報を受信してもよい。さらに、仮想マシンモニタは、フレーム間周期中に通信される単一のトレーサパケット、複数のトレーサパケット、及びすべてのトレーサパケットの通信に基づいて、瞬間的レイテンシを決定してもよい。ジッタがさらに決定され、フレーム間周期中に通信されるこれらのトレーサパケットに基づいてもよい。
【００３７】
ブロック２０６において、仮想マシンモニタは、瞬間的レイテンシ及びジッタを仮想マシンコントローラに通信してもよい。いくつかの実施例において、仮想マシンモニタは、レイテンシ及びジッタ要件が仮想マシンモニタにより満たされていないとき、レイテンシ及びジッタ情報を通信してもよい。前述されたように、これらの要件は、仮想マシンモニタによりサポートされる１つ以上のアプリケーションの性能要件を定義するサービスレベル合意に基づいてもよい。実施例はこの方式で限定されない。例えば、仮想マシンモニタは、各決定及び／又はフレーム間周期の後、レイテンシ及びジッタ情報を通信してもよい。
【００３８】
図２Ｂは、仮想環境における処理のための第２の論理フロー２２０の例を示す。論理フロー２２０は、本明細書で説明される１つ以上の実施例により実行される動作の一部又は全部の代表であり得る。例えば、論理フロー２２０は、図１Ａ〜１Ｃに示される仮想マシンコントローラにより実行される動作を示し得る。様々な実施例はこの方式で限定されない。様々な実施例は限定されず、１つ以上の動作が、仮想マシンモニタを含む他のコンポーネントにより実行されてもよい。
【００３９】
ブロック２２２において、仮想マシンコントローラは、トレーサパケットなどの１つ以上のパケットを、１つ以上の仮想マシンモニタのためのネットワークインターフェース及び仮想ネットワークインターフェースにより通信させてもよい。例えば、仮想マシンコントローラは、トレーサパケットがアクティブセッションパケットと干渉しないように、１つ以上の仮想マシンモニタの各々がいつトレーサパケットを通信すべきかを決定するためのスケジューラ（図示されていない）を含んでもよい。
【００４０】
ブロック２２４において、仮想マシンコントローラは、仮想マシンモニタからレイテンシ及びジッタ情報を受信してもよい。仮想マシンコントローラは、仮想マシンコントローラが制御している仮想環境内の仮想マシンモニタの各々からレイテンシ及びジッタ情報を受信することに留意する。しかしながら、情報は、仮想マシンモニタの各々についてのトレーサパケットの通信のスケジューリングに基づいて、異なる時間又は間隔で受信できる。レイテンシ及びジッタ情報は、単一又は複数のフレーム間周期中にトレーサパケットの通信に基づいて仮想マシンモニタにより決定される瞬間的レイテンシ及びジッタでもよい。
【００４１】
ブロック２２６において、仮想マシンコントローラは、仮想マシンモニタの各々についてのある期間にわたるレイテンシ及びジッタ統計を含み得るレイテンシ及びジッタモデルを更新してもよい。例えば、レイテンシ及びジッタモデルは、仮想マシンモニタのある期間にわたるアベレージレイテンシ、仮想マシンモニタのピークレイテンシ、ピークレイテンシに関連づけられた時間などを示してもよい。この情報並びに瞬間的レイテンシ及びジッタは、ブロック２２８において、仮想マシン及び仮想マシンモニタによりホストされるアプリケーションの各々についてレイテンシ及びジッタ要件が満たされているかどうかを決定するために使用されてもよい。要件が満たされている場合、仮想マシンコントローラは、仮想マシンモニタのモデルを監視及び更新することを継続してもよい。
【００４２】
ブロック２３０において、仮想マシンコントローラは、レイテンシ及びジッタ要件が１つ以上のアプリケーションについて満たされていることを確保するために補正処置を行ってもよい。例えば、仮想マシンコントローラは、仮想マシン及びアプリケーションを、要件を満たすのに失敗している仮想マシンモニタから、要件を満たす仮想マシンモニタにマイグレートしてもよい。いくつかの例において、仮想マシンコントローラは、レイテンシ及びジッタモデル、及び／又は瞬間的レイテンシ及びジッタ情報に基づいて、どの仮想マシンモニタが仮想マシン及びアプリケーションを移動すべきかを選択してもよい。いくつかの実施例において、仮想マシンコントローラにより実行される処置は、以下で図２Ｃにより詳細に論じられるように、どこで仮想マシンをインスタンス化すべきかを決定することを含んでもよい。
【００４３】
図２Ｃは、仮想環境における処理のための第３の論理フロー２４０の例を示す。論理フロー２４０は、本明細書で説明される１つ以上の実施例により実行される動作の一部又は全部の代表であり得る。例えば、論理フロー２４０は、図１Ａ〜１Ｃに示される仮想マシンコントローラ１４０により実行される動作を示し得る。様々な実施例はこの方式で限定されない。様々な実施例は限定されず、１つ以上の動作が、仮想マシンモニタ１１０を含む他のコンポーネントにより実行されてもよい。
【００４４】
ブロック２４２において、仮想マシンコントローラは、情報を処理するための１つ以上のアプリケーションを含む仮想マシンをインスタンス化するための要求を受信してもよい。いくつかの実施例において、要求はユーザにより生成され、ユーザ入力を有するユーザ対話に基づいてもよい。しかしながら、実施例はこの方式で限定されず、いくつかの例において、要求はコンピュータにより生成されてもよい。
【００４５】
ブロック２４４において、仮想マシンコントローラは、仮想マシン及びアプリケーションの要件を、仮想マシンモニタのレイテンシ及びジッタモデルと比較してもよい。比較は、ブロック２４６において、どの仮想マシンモニタが仮想マシン及びアプリケーションをインスタンス化すべきかを決定するために使用されてもよい。例えば、仮想マシンコントローラは、仮想マシン及びアプリケーションのレイテンシ及びジッタ要件を満たすことができる利用可能な仮想マシンモニタを選択してもよい。いくつかの例において、モデルに基づき最も低いレイテンシを有する「最良」又は仮想のマシンモニタが選択されてもよい。ただし、実施例はこの方式で限定されない。さらに、ブロック２４８において、仮想マシンコントローラは、仮想マシン及びアプリケーションに、選択された仮想マシンモニタ上でインスタンス化させてもよい。
【００４６】
図３は、レイテンシ及びジッタを監視することを含む仮想環境における処理のための第１の処理フロー３００の例を示す。処理フロー３００は、本明細書で説明される１つ以上の実施例により実行される動作の一部又は全部の代表であり得る。例えば、処理フロー３００は、図１Ａ〜１Ｃに示される仮想マシンコントローラ及び仮想マシンモニタにより実行される動作を示し得る。特定の動作が特定の順序で生じるものとして示されるが、実施例はこの方式で限定されない。１つ以上の動作が、他の動作の前、間、又は後に生じてもよい。
【００４７】
ブロック３０２において、実施例は、仮想マシンコントローラ１４０が仮想マシンモニタ１１０に関連づけられたインターフェースにより通信されるトレーサパケットなどの１つ以上のパケットの通信をさせることを含む。例えば、仮想マシンコントローラ１４０は、インターフェースを介して通信されるトレーサパケットの通信をスケジュールしてもよい。ブロック３０４において、仮想マシンモニタ１１０は、１つ以上のトレーサパケットを通信し、あるいは該１つ以上のトレーサパケットの通信をさせてもよい。より具体的に、仮想マシンモニタ１１０は、ネットワークインターフェース及び仮想ネットワークインターフェースの各々に、互いに対してトレーサパケットを通信させてもよい。
【００４８】
実施例において、仮想マシンモニタ１１０は、ブロック３０６においてトレーサパケットに基づいて瞬間的レイテンシ及びジッタを決定してもよい。さらに、ブロック３０８において、仮想マシンモニタは、レイテンシ及びジッタ情報の結果を仮想マシン協調（coordinate）１４０に通信してもよい。結果は、例えば、１つ以上の有線又は無線通信リンクを介して１つ以上のパケットとして通信されてもよい。
【００４９】
ブロック３１０において、仮想マシンコントローラ１４０は、結果並びにレイテンシ及びジッタ情報に基づいてレイテンシ及びジッタモデルを更新してもよい。さらに、ブロック３１２において、仮想マシンコントローラ１４０は、仮想マシン及び１つ以上のアプリケーションを動作させる仮想マシンモニタ１１０が仮想マシン及びアプリケーションのレイテンシ及びジッタ要件を満たしている／超えているかどうかを決定する。仮想マシンモニタ１１０が要件を満たしている場合、仮想マシンコントローラ１４０は処置を行わなくてもよい。しかしながら、ブロック３１４において、仮想マシンモニタ１１０が仮想マシン及びアプリケーションの要件を提供又はサポートしていない場合、仮想マシンコントローラ１４０は処置を行ってもよい。例えば、仮想マシンコントローラ１４０は、仮想マシン及びアプリケーションに、要件をサポートすることができる異なる仮想マシンモニタ１１０にマイグレートさせてもよい。別の例において、仮想マシンコントローラ１４０は、結果に基づいて異なる仮想マシンモニタ１１０上で仮想マシン及びアプリケーションを開始してもよい。実施例はこの方式で限定されず、他の処置が実行されてもよい。例えば、ユーザ通知がユーザに通信されてもよく、これは警告メッセージの形式でもよい。
【００５０】
図４は、第４の論理フロー図４００の実施例を示す。論理フロー４００は、本明細書で説明される１つ以上の実施例により実行される動作の一部又は全部の代表であり得る。例えば、論理フロー４００は、図１Ａ〜１Ｃにおける１つ以上のシステム又はデバイスにより実行される動作を示し得る。様々な実施例はこの方式で限定されない。
【００５１】
様々な実施例において、論理フロー４００は、ブロック４０５において、仮想マシンモニタを通して１つ以上のネットワークインターフェースから１つ以上の他のネットワークインターフェースへ１つ以上のパケットの通信をさせることを含み得る。例えば、スケジューラが、仮想マシンモニタを介して動作する仮想マシンに関連づけられた各々のネットワークインターフェースと仮想ネットワークインターフェースとの間で１つ以上のトレーサパケットを通信させてもよい。いくつかの実施例において、仮想マシンは、ＶＮＦなどの１つ以上のアプリケーションをサポートし、動作させてもよい。
【００５２】
ブロック４１０において、論理フロー４００は、仮想マシンモニタを通して通信される１つ以上のパケットの各々に少なくとも部分的に基づいて、仮想マシンモニタのレイテンシ及びジッタのうち少なくとも１つを決定することを含み得る。例えば、仮想マシンコントローラが、仮想マシンモニタのレイテンシを決定するために、パケットの通信に基づいてレイテンシ及びジッタ情報を受信してもよい。
【００５３】
ブロック４１５において、論理フローは、レイテンシ及びジッタのうち少なくとも１つが仮想マシンモニタ上の仮想マシンの定義されたパラメータを満たさないとき、補正処置を実行することを含む。例えば、サービスレベル合意が、仮想マシンのレイテンシ及びジッタ要件を含む１つ以上の定義されたパラメータを規定してもよい。実施例は、これらの要件が仮想マシンモニタより満たされていることを確保し、これらが満たされていないときに緩和又は補正処置を行うことを含んでもよい。例えば、仮想マシン及びアプリケーションが、異なる仮想マシンモニタにマイグレートされてもよい。別の例において、実施例は、異なる仮想マシンモニタ上で仮想マシン及びアプリケーションを開始することを含んでもよい。実施例はこれらの例に限定されない。
【００５４】
図５は、システム５００の一実施例を示す。様々な実施例において、システム５００は、図１Ａ〜１Ｃに示されるシステム及びデバイスなどの、本明細書で説明される１つ以上の実施例での使用に適したシステム又はアーキテクチャの代表であり得る。実施例はこの点で限定されない。
【００５５】
図５に示されるように、システム５００は複数の要素を含み得る。１つ以上の要素が、設計又は性能制約の所与のセットのため所望に応じて、１つ以上の回路、コンポーネント、レジスタ、プロセッサ、ソフトウェア、サブルーチン、モジュール、又はこれらの任意の組み合わせを使用して実現されてもよい。図５は、例として特定のトポロジにおいて限られた数の要素を示すが、任意の適切なトポロジにおけるより多くの又はより少ない要素が、所与の実現のため所望に応じてシステム５００で使用されてもよいことが十分理解できる。実施例はこの文脈で限定されない。
【００５６】
様々な実施例において、システム５００は、パーソナルコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、ネットブックコンピュータ、ノートブックコンピュータ、ラップトップコンピュータ、サーバ、サーバファーム、ブレードサーバ、又は任意の他タイプのサーバなどを含む、任意タイプのコンピュータ又は処理デバイスであり得るコンピューティングデバイス５０５を含み得る。
【００５７】
様々な実施例において、コンピューティングデバイス５０５はプロセッサ回路５０２を含み得る。プロセッサ回路５０２は、任意のプロセッサ又は論理デバイスを使用して実現されてもよい。処理回路５０２は、これらに限られないがマイクロプロセッサ、プロセッサ、中央処理ユニット、デジタル信号処理ユニット、デュアルコアプロセッサ、モバイルデバイスプロセッサ、デスクトッププロセッサ、シングルコアプロセッサ、システムオンチップ（ＳｏＣ）デバイス、複合命令セットコンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小命令セット（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、又は単一チップ若しくは集積回路上の任意の他タイプのプロセッサ若しくは処理回路などの、任意タイプの計算要素のうち１つ以上でもよい。処理回路５０２は、１つ以上のバス、制御ライン、及びデータラインなどのインターコネクト５４３を介して、コンピューティングシステムの他の要素に接続され、該他の要素と通信してもよい。
【００５８】
一実施例において、コンピューティングデバイス５０５は、プロセッサ回路５０２に結合するメモリユニット５０４を含み得る。メモリユニット５０４は、所与の実現のため所望に応じて、通信バス５４３を介して、又はプロセッサ回路５０２及びメモリユニット５０４の間の専用通信バスにより、プロセッサ回路５０２に結合されてもよい。メモリユニット５０４は、揮発及び不揮発メモリの双方を含む、データを記憶できる任意のマシン読取可能又はコンピュータ読取可能媒体を使用して実現されてもよい。いくつかの実施例において、マシン読取可能又はコンピュータ読取可能媒体は非一時的媒体を含んでもよい。実施例はこの文脈で限定されない。
【００５９】
コンピューティングデバイス５０５は、様々な実施例において、グラフィックス処理ユニット（ＧＰＵ）５０６を含み得る。ＧＰＵ５０６は、グラフィックス関連動作並びにビデオデコーダエンジン及びフレーム相関エンジンを実行するように最適化された任意の処理ユニット、論理、又は回路を含んでもよい。ＧＰＵ５０６は、ビデオゲーム、グラフィックス、コンピュータ支援設計（ＣＡＤ）、シミュレーション及び視覚化ツール、イメージング等などの様々なアプリケーションの２次元（２Ｄ）及び／又は３次元（３Ｄ）イメージをレンダリングするために使用されてもよい。様々な実施例はこの方式で限定されない。ＧＰＵ５０６は、ピクチャ、ビデオ、プログラム、アニメーション、３Ｄ、２Ｄ、オブジェクトイメージなどの任意タイプのグラフィックスを処理してもよい。
【００６０】
いくつかの実施例において、コンピューティングデバイス５０５はディスプレイコントローラ５０８を含み得る。ディスプレイコントローラ５０８は、グラフィックス情報を処理しグラフィックス情報を表示するための任意タイプのプロセッサ、コントローラ、回路、論理などでもよい。ディスプレイコントローラ５０８は、１つ以上のバッファからグラフィックス情報を受信し、あるいは取り出してもよい。情報を処理した後、ディスプレイコントローラ５０８は、グラフィックス情報をディスプレイに送信してもよい。
【００６１】
様々な実施例において、システム５００は送受信機５４４を含み得る。送受信機５４４は、様々な適切な無線通信技術を使用して信号を送信及び受信することができる１つ以上の無線機を含んでもよい。こうした技術には、１つ以上の無線ネットワークにわたる通信を含んでもよい。例示的な無線ネットワークは、（これらに限られないが）無線ローカルエリアネットワーク（ＷＬＡＮ）、無線パーソナルエリアネットワーク（ＷＰＡＮ）、無線メトロポリタンエリアネットワーク（ＷＭＡＮ）、セルラーネットワーク、及び衛星ネットワークを含む。それは、（これらに限られないが）イーサネット、パケット光ネットワーク、（データセンター）ネットワークファブリック等を含み得る有線ネットワーキングのための送受信機をさらに含んでもよい。こうしたネットワークにわたり通信する際、送受信機５４４は、任意のバージョンの１つ以上の適用可能な標準に従って動作してもよい。実施例はこの文脈で限定されない。
【００６２】
様々な実施例において、コンピューティングデバイス５０５はディスプレイ５４５を含み得る。ディスプレイ５４５は、プロセッサ回路５０２、グラフィックス処理ユニット５０６、及びディスプレイコントローラ５０８から受信された情報を表示することができる任意のディスプレイデバイスを構成してよい。
【００６３】
様々な実施例において、コンピューティングデバイス５０５は記憶装置５４６を含み得る。記憶装置５４６は、これらに限られないが磁気ディスクドライブ、光学ディスクドライブ、テープドライブ、内部記憶装置、取り付け記憶装置、フラッシュメモリ、バッテリバックアップ付きＳＤＲＡＭ（同期ＤＲＡＭ）、及び／又はネットワークアクセス可能記憶装置などの、任意の不揮発記憶装置として実現されてよい。実施例において、記憶装置５４６は、例えば、複数のハードドライブが含まれるときに高価なデジタル媒体の記憶性能強化保護を増大させる技術を含んでもよい。記憶装置５４６のさらなる例には、ハードディスク、フロッピーディスク、コンパクトディスク読取専用メモリ（ＣＤ‐ＲＯＭ）、コンパクトディスクレコーダブル（ＣＤ‐Ｒ）、コンパクトディスクリライタブル（ＣＤ‐ＲＷ）、光ディスク、磁気媒体、磁気光媒体、取外し可能メモリカード若しくはディスク、様々なタイプのＤＶＤデバイス、テープデバイス、カセットデバイスなどを含んでもよい。実施例はこの文脈で限定されない。
【００６４】
様々な実施例において、コンピューティングデバイス５０５は１つ以上のＩ／Ｏアダプタ５４７を含み得る。Ｉ／Ｏアダプタ５４７の例は、ユニバーサルシリアルバス（ＵＳＢ）ポート／アダプタ、ＩＥＥＥ１３９４  Ｆｉｒｅｗｉｒｅポート／アダプタなどを含んでもよい。実施例はこの文脈で限定されない。
【００６５】
図６は、前に説明された様々な実施例を実現するのに適した例示的なコンピューティングアーキテクチャ６００の実施例を示す。一実施例において、コンピューティングアーキテクチャ６００は、前に論じられた１つ以上のシステム及びデバイスの一部を含み、あるいは該一部として実現されてもよい。
【００６６】
本出願で用いられるとき、用語「システム」及び「コンポーネント」は、コンピュータ関連エンティティ、ハードウェア、ハードウェア及びソフトウェアの組み合わせ、ソフトウェア、又は実行中のソフトウェアのいずれかを参照するよう意図され、これらの例が、例示的なコンピューティングアーキテクチャ６００により提供される。例えば、コンポーネントは、これらに限られないがプロセッサ上で実行するプロセス、プロセッサ、ハードディスクドライブ、（光及び／又は磁気記憶媒体の）複数の記憶装置ドライブ、オブジェクト、実行ファイル、実行スレッド、プログラム、及び／又はコンピュータであり得る。例として、サーバ上で実行するアプリケーションとサーバとの双方がコンポーネントであり得る。１つ以上のコンポーネントが、実行のプロセス及び／又はスレッド内に存在してもよく、コンポーネントは、１つのコンピュータ上に局所化でき、かつ／あるいは２つ以上のコンピュータ間で分散できる。さらに、コンポーネントは、動作を協調するために様々なタイプの通信媒体により互いに対して通信可能に結合されてもよい。協調は、情報の単方向又は双方向の交換を含んでもよい。例えば、コンポーネントは、通信媒体を通じて通信される信号の形式で情報を通信してもよい。情報は、様々な信号ラインに割り振られた信号として実現できる。こうした割り振りにおいて、各メッセージは信号である。しかしながら、さらなる実施例がデータメッセージを代替的に採用してもよい。こうしたデータメッセージは、様々な接続にわたり送信されてもよい。例示的な接続は、パラレルインターフェース、シリアルインターフェース、及びバスインターフェースを含む。
【００６７】
コンピューティングアーキテクチャ６００は、様々な一般的コンピューティング要素、例えば、１つ以上のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺装置、インターフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入力／出力（Ｉ／Ｏ）コンポーネント、電源などを含む。しかしながら、実施例は、コンピューティングアーキテクチャ６００による実装に限定されない。
【００６８】
図６に示されるように、コンピューティングアーキテクチャ６００は、処理ユニット６０４、システムメモリ６０６、及びシステムバス６０８を含む。処理ユニット６０４は、市販のプロセッサ、例えば、図１Ａに示される処理回路を参照して説明されたものなどでもよい。
【００６９】
システムバス６０８は、これらに限られないが処理ユニット６０４対メモリ６０６を含むシステムコンポーネントのためのインターフェースを提供する。システムバス６０８は、様々な市販のバスアーキテクチャ構造のうち任意のものを使用してメモリバス（メモリコントローラを有し又は有さない）、周辺装置バス、及びローカルバスにさらに相互接続し得るいくつかのタイプのバス構造のうち任意のものでもよい。インターフェースアダプタが、スロットアーキテクチャを介してシステムバス６０８に接続してもよい。例示的なスロットアーキテクチャは、アクセラレーテッドグラフィックスポート（Accelerated  Graphics  Port；ＡＧＰ）、カードバス、（拡張）インダストリスタンダードアーキテクチャ（（Extended）Industry  Standard  Architecture；（Ｅ）ＩＳＡ）、マイクロチャネルアーキテクチャ（Micro  Channel  Architecture；ＭＣＡ）、ニューバス（NuBus）、ペリフェラルコンポーネントインターコネクト（拡張）（Peripheral  Component  Interconnect  （Extended）；ＰＣＩ（Ｘ））、ＰＣＩエクスプレス、パーソナルコンピュータメモリカードインターナショナルアソシエーション（Personal  Computer  Memory  Card  International  Association；ＰＣＭＣＩＡ）などを限定なく含んでもよい。
【００７０】
コンピューティングアーキテクチャ６００は、様々な製造品を含み、あるいは実装してもよい。製造品は、論理を記憶するためのコンピュータ読取可能記憶媒体を含んでもよい。コンピュータ読取可能記憶媒体の例は、揮発メモリ又は不揮発メモリ、取外し可能又は取外し不能メモリ、消去可能又は消去不能メモリ、書き込み可能又は再書き込み可能メモリなどを含む、電子データを記憶できる任意の有形媒体を含んでもよい。論理の例は、任意の適切なタイプのコード、例えば、ソースコード、コンパイルコード、解釈コード、実行可能コード、静的コード、動的コード、オブジェクト指向コード、ビジュアルコードなどを使用して実現される実行可能コンピュータプログラム命令を含んでもよい。実施例は、さらに、本明細書で説明される動作の実行を可能にするために１つ以上のプロセッサにより読み出し及び実行され得る、非一時的コンピュータ読取可能媒体内又は該媒体上に含まれる命令として少なくとも部分的に実現されてもよい。
【００７１】
システムメモリ６０６は、読取専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、動的ランダムアクセスメモリ（ＤＲＡＭ）、ダブルデータレートＤＲＡＭ（ＤＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、静的ＲＡＭ（ＳＲＡＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、ポリマーメモリ、例えば強誘電体ポリマーメモリ、オボニックメモリ、相変化又は強誘電体メモリなど、ＳＯＮＯＳ（silicon-oxide-nitride-oxide-silicon）メモリ、磁気又は光カード、ＲＡＩＤ（Redundant  Array  of  Independent  Disks）ドライブなどのデバイスのアレイ、ソリッドステートメモリデバイス（例えば、ＵＳＢメモリ、ソリッドステートドライブ（ＳＳＤ）、及び情報を記憶するのに適した任意の他タイプの記憶媒体などの、１つ以上のより高速のメモリユニットの形式の様々なタイプのコンピュータ読取可能記憶媒体を含んでもよい。図６に示される例示の実施例において、システムメモリ６０６は不揮発メモリ６１０及び／又は揮発メモリ６１２を含むことができる。基本入力／出力システム（ＢＩＯＳ）が不揮発メモリ６１０に記憶されてもよい。
【００７２】
コンピュータ６０２は、内部（又は外部）ハードディスクドライブ（ＨＤＤ）６１４、取外し可能磁気ディスク６１８から読み出し又は取外し可能磁気ディスク６１８に書き込むための磁気フロッピーディスクドライブ（ＦＤＤ）６１６、取外し可能光ディスク６２２（例えば、ＣＤ‐ＲＯＭ又はＤＶＤ）から読み出し又は取外し可能光ディスク６２２に書き込むための光学ディスクドライブ６２０を含む、１つ以上のより低速のメモリユニットの形式の様々なタイプのコンピュータ読取可能記憶媒体を含んでもよい。ＨＤＤ６１４、ＦＤＤ６１６、及び光学ディスクドライブ６２０は、それぞれ、ＨＤＤインターフェース６２４、ＦＤＤインターフェース６２６、及び光学ドライブインターフェース６２８によりシステムバス６０８に接続できる。外部ドライブ実装のためのＨＤＤインターフェース６２４は、ユニバーサルシリアルバス（ＵＳＢ）及びＩＥＥＥ１３９４インターフェース技術のうち少なくとも１つ又は双方を含むことができる。
【００７３】
ドライブ及び関連づけられたコンピュータ読取可能媒体は、データ、データ構造、コンピュータ実行可能命令などの揮発及び／又は不揮発記憶を提供する。例えば、オペレーティングシステム６３０、１つ以上のアプリケーションプログラム６３２、他のプログラムモジュール６３４、及びプログラムデータ６３６を含む複数のプログラムモジュールが、ドライブ及びメモリユニット６１０、６１２に記憶されてもよい。一実施例において、１つ以上のアプリケーションプログラム６３２、他のプログラム６３４、及びプログラムデータ６３６は、例えば、システム１０５の様々なアプリケーション及び／又はコンポーネントを含むことができる。
【００７４】
ユーザは、１つ以上の有線／無線入力デバイス、例えば、キーボード６３８、及びマウス６４０などのポインティングデバイスを通して、コマンド及び情報をコンピュータ６０２に入力することができる。他の入力デバイスには、マイクロフォン、赤外線（ＩＲ）リモートコントロール、無線周波数（ＲＦ）リモートコントロール、ゲームパッド、スタイラスペン、カードリーダ、ドングル、指紋リーダ、グローブ、グラフィックスタブレット、ジョイスティック、キーボード、網膜リーダ、タッチスクリーン（例えば、容量性、抵抗性等）、トラックボール、トラックパッド、センサ、スタイラスなどを含んでもよい。これら及び他の入力デバイスは、システムバス６０８に結合された入力デバイスインターフェース６４２を通して処理ユニット６０４にしばしば接続されるが、パラレルポート、ＩＥＥＥ１３９４シリアルポート、ゲームポート、ＵＳＢポート、ＩＲインターフェースなどの他のインターフェースにより接続されてもよい。
【００７５】
モニタ６４４又は他のタイプのディスプレイデバイスが、ビデオアダプタ６４６などのインターフェースを介してシステムバス６０８にさらに接続される。モニタ６４４は、コンピュータ６０２に対して内部又は外部であり得る。モニタ６４４に追加で、コンピュータは、スピーカ、プリンタなどの他の周辺装置出力デバイスを典型的に含む。
【００７６】
コンピュータ６０２は、リモートコンピュータ６４８などの１つ以上のリモートコンピュータに対する有線及び／又は無線通信を介しての論理接続を使用してネットワーク化環境で動作してもよい。リモートコンピュータ６４８は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースの娯楽電化製品、ピアデバイス、又は他の一般的ネットワークノードでもよく、コンピュータ６０２に対して説明された要素の多く又はすべてを典型的に含むが、簡潔さのため、メモリ／記憶デバイス６５０のみが例示される。図示の論理接続は、ローカルエリアネットワーク（ＬＡＮ）６５２及び／又はより大きいネットワーク、例えば、ワイドエリアネットワーク（ＷＡＮ）６５４に対する有線／無線接続性を含む。こうしたＬＡＮ及びＷＡＮネットワーキング環境は、オフィス及び会社において普通であり、イントラネットなどの企業範囲のコンピュータネットワークを容易にし、これらのすべてが、グローバル通信ネットワーク、例えば、インターネットに接続してもよい。
【００７７】
ＬＡＮネットワーキング環境で使用されるとき、コンピュータ６０２は、有線及び／又は無線通信ネットワークインターフェース又はアダプタ６５６を通してＬＡＮ６５２に接続される。アダプタ６５６は、ＬＡＮ６５２に対する有線及び／又は無線通信を容易にすることができ、ＬＡＮ６５２は、アダプタ６５６の無線機能性と通信するためにそれに配設された無線アクセスポイントをさらに含んでもよい。
【００７８】
ＷＡＮネットワーキング環境で使用されるとき、コンピュータ６０２は、モデム６５８を含むことができ、あるいはＷＡＮ６５４上の通信サーバに接続され、あるいはインターネットを用いてなどのＷＡＮ６５４を通じての通信を確立する他の手段を有する。内部又は外部であり、有線及び／又は無線デバイスであり得るモデム６５８は、入力デバイスインターフェース６４２を介してシステムバス６０８に接続する。ネットワーク化環境において、コンピュータ６０２に対して図示されたプログラムモジュール又はその一部は、リモートメモリ／記憶デバイス６５０に記憶されてもよい。図示のネットワーク接続は例示的であり、コンピュータ間の通信リンクを確立する他の手段が使用されてもよいことが十分理解される。
【００７９】
コンピュータ６０２は、無線通信（例えば、ＩＥＥＥ８０２．１１無線変調技術）において動作可能に配設された無線デバイスなどの、ＩＥＥＥ８０２ファミリの標準を使用する有線及び無線デバイス又はエンティティと通信するよう動作可能である。これは、とりわけ、少なくともＷｉＦｉ（又は、ワイヤレスフィデリティ（Wireless  Fidelity））、ＷｉＭａｘ（登録商標）、及びＢｌｕｅｔｏｏｔｈ（登録商標）無線技術、３Ｇ、４Ｇ、ＬＴＥ無線技術を含む。ゆえに、通信は、従来のネットワークのように予め定義された構造でもよく、あるいは単に、少なくとも２つのデバイス間のアドホック通信でもよい。ＷｉＦｉネットワークは、ＩＥＥＥ８０２．１１ｘ（ａ、ｂ、ｇ、ｎ等）と呼ばれる無線技術を使用して、セキュアな、信頼性のある、高速の無線接続性を提供する。ＷｉＦｉネットワークは、コンピュータを互いに、インターネットに、及び（ＩＥＥＥ８０２．３関連の媒体及び機能を使用する）有線ネットワークに接続するために使用できる。
【００８０】
図１〜５を参照して前に説明された様々な要素及びコンポーネントは、様々なハードウェア要素、ソフトウェア要素、又は双方の組み合わせを含んでもよい。ハードウェア要素の例は、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ、回路素子（例えば、トランジスタ、抵抗器、キャパシタ、インダクタなど）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理デバイス（ＰＬＤ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、メモリユニット、論理ゲート、レジスタ、セミコンダクタデバイス、チップ、マイクロチップ、チップセットなどを含んでもよい。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、ファンクション、メソッド、プロシージャ、ソフトウェアインターフェース、アプリケーションプログラムインターフェース（ＡＰＩ）、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、又はこれらの任意の組み合わせを含んでもよい。しかしながら、実施例がハードウェア要素を使用して実現されるか及び／又はソフトウェア要素を使用して実現されるかを決定することは、所与の実装のために所望されるとおり、所望の計算レート、電力レベル、熱耐性、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバス速度、及び他の設計又は性能制約などの任意数のファクタに従って変動してもよい。
【００８１】
次に、詳細な開示は、さらなる実施例に属する例を提供することに移る。以下に提供される例１乃至３２（１〜３２）は、例示であり非限定的であることが意図される。
【００８２】
第１の例において、システム、デバイス、装置が、１つ以上のネットワーキングインターフェースメモリと、上記メモリに結合された処理回路と、上記処理回路により少なくとも部分的に実現される論理とを含み得る。上記論理は、仮想マシンモニタを通して１つ以上のネットワークインターフェースから１つ以上のパケットの通信をさせ、上記仮想マシンモニタを通して通信される上記１つ以上のパケットに少なくとも部分的に基づいて上記仮想マシンモニタのレイテンシ又はジッタを決定し、上記レイテンシ又は上記ジッタが上記仮想マシンモニタ上の仮想マシンの定義されたパラメータを満たさないとき、補正処置を実行する。
【００８３】
第２の例において、及び第１の例の増進において、システム、デバイス、装置は、上記論理が上記補正処置のために上記仮想マシンモニタ上の上記仮想マシンを異なる仮想マシンモニタに移動することを含み得る。
【００８４】
第３の例において、及び任意の前の例の増進において、システム、デバイス、装置は、上記論理が上記補正処置のために異なる仮想マシンモニタ上で上記仮想マシンを開始することを含み得る。
【００８５】
第４の例において、及び任意の前の例の増進において、システム、デバイス、装置は、上記定義されたパラメータが上記仮想マシンのサービスレベル合意において指定されたレイテンシ要件及びジッタ要件のうち１つ以上を含むことを含み得る。
【００８６】
第５の例において、及び任意の前の例の増進において、システム、デバイス、装置は、上記論理が複数の仮想マシンモニタの各々についてレイテンシ及びジッタを決定し、上記決定されたレイテンシ及びジッタに少なくとも部分的に基づいてレイテンシ及びジッタモデルを生成することを含み得る。
【００８７】
第６の例において、及び任意の前の例の増進において、システム、デバイス、装置は、上記論理が上記仮想マシンの上記レイテンシ及びジッタモデル並びにサービスレベル合意に基づいて上記複数の仮想マシンモニタのうち１つで上記仮想マシンを開始することを含み得る。
【００８８】
第７の例において、及び任意の前の例の増進において、システム、デバイス、装置は、上記論理が各ネットワークインターフェースに、上記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させて、上記ネットワークインターフェース間の瞬間的レイテンシを決定することを含み得る。
【００８９】
第８の例において、及び任意の前の例の増進において、システム、デバイス、装置は、上記論理が各ネットワークインターフェースに、周期的に上記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させ、各通信の後、瞬間的レイテンシを決定し、少なくとも上記瞬間的レイテンシを使用して、各周期の後、レイテンシ及びジッタモデルを更新することを含み得る。
【００９０】
第９の例において、及び任意の前の例の増進において、システム、デバイス、装置は、上記ネットワークインターフェースのうち少なくとも１つが、上記仮想マシンモニタによりサポートされる仮想マシンの仮想ネットワークインターフェースを含むことを含み得る。
【００９１】
第１０の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体が複数の命令を含み、上記複数の命令は、処理回路により実行されたときに処理回路が仮想マシンモニタを通して１つ以上のネットワークインターフェースから１つ以上の他のネットワークインターフェースへ１つ以上のパケットの通信をさせ、上記仮想マシンモニタを通して通信される上記１つ以上のパケットの各々に少なくとも部分的に基づいて上記仮想マシンモニタのレイテンシ又はジッタを決定し、上記レイテンシ又は上記ジッタが上記仮想マシンモニタ上の仮想マシンの定義されたパラメータを満たさないとき、補正処置を実行することを可能にする。
【００９２】
第１１の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体は、処理回路により実行されたときに処理回路が上記補正処置のために上記仮想マシンモニタ上の上記仮想マシンを異なる仮想マシンモニタに移動することを可能にする複数の命令を含む。
【００９３】
第１２の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体は、処理回路により実行されたときに処理回路が上記補正処置のために異なる仮想マシンモニタ上で上記仮想マシンを開始することを可能にする複数の命令を含む。
【００９４】
第１３の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体は、上記定義されたパラメータが上記仮想マシンのサービスレベル合意において指定されたレイテンシ要件及びジッタ要件のうち少なくとも１つを含むことを有する複数の命令を含む。
【００９５】
第１４の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体は、処理回路により実行されたときに処理回路が複数の仮想マシンモニタの各々についてレイテンシ及びジッタを決定し、上記決定されたレイテンシに少なくとも部分的に基づいてレイテンシ及びジッタモデルを生成することを可能にする複数の命令を含む。
【００９６】
第１５の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体は、処理回路により実行されたときに処理回路が上記仮想マシンの上記レイテンシ及びジッタモデル並びにサービスレベル合意に基づいて上記複数の仮想マシンモニタのうち１つで上記仮想マシンを開始することを可能にする複数の命令を含む。
【００９７】
第１６の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体は、処理回路により実行されたときに処理回路が各ネットワークインターフェースに、上記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させて、上記ネットワークインターフェース間の瞬間的レイテンシを決定することを可能にする複数の命令を含む。
【００９８】
第１７の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体は、処理回路により実行されたときに処理回路が各ネットワークインターフェースに、周期的に上記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させ、各通信の後、瞬間的レイテンシを決定し、少なくとも上記瞬間的レイテンシを使用して、各周期の後、レイテンシ及びジッタモデルを更新することを可能にする複数の命令を含む。
【００９９】
第１８の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体は、処理回路により実行されたときに処理回路が、上記ネットワークインターフェースのうち少なくとも１つが上記仮想マシンモニタによりサポートされる仮想マシンの仮想ネットワークインターフェースを含むことを可能にする複数の命令を含む。
【０１００】
第１９の例において、及び任意の前の例の増進において、コンピュータにより実現される方法が、仮想マシンモニタを通して１つ以上のネットワークインターフェースから１つ以上の他のネットワークインターフェースへ１つ以上のパケットの通信をさせるステップと、上記仮想マシンモニタを通して通信される上記１つ以上のパケットの各々に少なくとも部分的に基づいて上記仮想マシンモニタのレイテンシ又はジッタを決定するステップと、上記レイテンシ又は上記ジッタが上記仮想マシンモニタ上の仮想マシンの定義されたパラメータを満たさないとき、補正処置を実行するステップと、を含み得る。
【０１０１】
第２０の例において、及び任意の前の例の増進において、コンピュータにより実現される方法は、上記補正処置が上記仮想マシンモニタ上の上記仮想マシンを異なる仮想マシンモニタに移動すること及び上記補正処置のために異なる仮想マシンモニタ上で上記仮想マシンを開始することのうち１つ以上を含むことを含み得る。
【０１０２】
第２１の例において、及び任意の前の例の増進において、コンピュータにより実現される方法は、上記定義されたパラメータが上記仮想マシンのサービスレベル合意において指定されたレイテンシ要件及びジッタ要件のうち少なくとも１つを含むことを含み得る。
【０１０３】
第２２の例において、及び任意の前の例の増進において、コンピュータにより実現される方法は、複数の仮想マシンモニタの各々についてレイテンシ及びジッタを決定するステップと、上記決定されたレイテンシ及びジッタに少なくとも部分的に基づいてレイテンシ及びジッタモデルを生成するステップと、を含み得る。
【０１０４】
第２３の例において、及び任意の前の例の増進において、コンピュータにより実現される方法は、上記仮想マシンの上記レイテンシ及びジッタモデル並びにサービスレベル合意に基づいて上記複数の仮想マシンモニタのうち１つで上記仮想マシンを開始するステップを含み得る。
【０１０５】
第２４の例において、及び任意の前の例の増進において、コンピュータにより実現される方法は、各ネットワークインターフェースに、上記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させて、上記ネットワークインターフェース間の瞬間的レイテンシを決定するステップを含み得る。
【０１０６】
第２５の例において、及び任意の前の例の増進において、コンピュータにより実現される方法は、各ネットワークインターフェースに、周期的に上記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させるステップと、各通信の後、瞬間的レイテンシを決定するステップと、少なくとも上記瞬間的レイテンシを使用して、各周期の後、レイテンシ及びジッタモデルを更新するステップと、を含み得る。
【０１０７】
第２６の例において、及び任意の前の例の増進において、システム及び装置が、仮想マシンモニタを通して１つ以上のネットワークインターフェースから１つ以上の他のネットワークインターフェースへ１つ以上のパケットの通信をさせる手段と、上記仮想マシンモニタを通して通信される上記１つ以上のパケットの各々に少なくとも部分的に基づいて上記仮想マシンモニタのレイテンシ又はジッタを決定する手段と、上記レイテンシ又は上記ジッタが上記仮想マシンモニタ上の仮想マシンの定義されたパラメータを満たさないとき、補正処置を実行する手段と、を含み得る。
【０１０８】
第２７の例において、及び任意の前の例の増進において、システム及び装置は、上記仮想マシンモニタ上の上記仮想マシンを異なる仮想マシンモニタに移動する手段と、上記補正処置のために異なる仮想マシンモニタ上で上記仮想マシンを開始する手段と、を含む。
【０１０９】
第２９の例において、及び任意の前の例の増進において、装置又はシステムは、複数の仮想マシンモニタの各々についてレイテンシ及びジッタを決定する手段と、上記決定されたレイテンシ及びジッタに少なくとも部分的に基づいてレイテンシ及びジッタモデルを生成する手段と、を含み得る。
【０１１０】
第３０の例において、及び任意の前の例の増進において、システム又は装置は、上記仮想マシンの上記レイテンシ及びジッタモデル並びにサービスレベル合意に基づいて上記複数の仮想マシンモニタのうち１つで上記仮想マシンを開始する手段を含み得る。
【０１１１】
第３１の例において、及び任意の前の例の増進において、システム又は装置は、各ネットワークインターフェースに、上記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させて、上記ネットワークインターフェース間の瞬間的レイテンシを決定する手段を含み得る。
【０１１２】
第３２の例において、及び任意の前の例の増進において、システム又は装置は、各ネットワークインターフェースに、周期的に上記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させる手段と、各通信の後、瞬間的レイテンシを決定する手段と、少なくとも上記瞬間的レイテンシを使用して、各周期の後、レイテンシ及びジッタモデルを更新する手段と、を含む。
【０１１３】
いくつかの実施例が、表現「一実施例」又は「実施例」をその派生語と共に使用して説明され得る。これらの用語は、実施例と関連して説明された特定の特徴、構造、又は特性少なくとも１つの実施例に含まれることを意味する。本明細書の様々な箇所におけるフレーズ「一実施例において」の出現は、必ずしもすべて同じ実施例を参照していない。さらに、いくつかの実施例が、表現「結合される」及び「接続される」をその派生語と共に使用して説明され得る。これらの用語は、必ずしも互いの同意語として意図されない。例えば、いくつかの実施例は、２つ以上の要素が互いに直接物理的又は電気的に接触することを示すために、用語「結合される」及び／又は「接続される」を使用して説明され得る。しかしながら、用語「結合される」は、２つ以上の要素が互いに直接接触しないがなお依然として互いに協働又は相互作用することをさらに意味し得る。
【０１１４】
本開示の要約書は、読み手が技術開示の性質を迅速に確かめられるように提供されていることが強調される。それは、請求項の範囲又は意味を解釈又は限定することに使用されないという理解と共に提出されている。さらに、前述の詳細な説明において、様々な特徴が、開示を合理化する目的で単一の実施例に一緒にグループ化されていることがわかる。この開示方法は、請求される実施例が各請求項に明示的に列挙されているよりもより多くの特徴を要するという意図を反映するものと解釈されるべきでない。むしろ、以下の請求項が反映するように、発明対象事項は、単一の開示の実施例のすべての特徴より少ない特徴に存在する。ゆえに、以下の請求項は、各請求項が別個の実施例として自立し、詳細な説明にここで組み込まれる。別記の請求項において、用語「including」及び「in  which」は、それぞれ、分かりやすい英語の均等物のそれぞれの用語「comprising」及び「wherein」として使用される。さらに、用語「第１」、「第２」、「第３」などは、単にラベルとして使用され、その対象に数的要件を課すことは意図されない。
【０１１５】
上記で説明されたことは、開示のアーキテクチャの例を含む。当然ながら、コンポーネント及び／又は方法論のあらゆる考えられる組み合わせを説明することは不可能であり、しかし当業者は、多くのさらなる組み合わせ及び配列が可能であることを認識し得る。したがって、新規のアーキテクチャは、別記の請求項の主旨及び範囲内に入るすべてのこうした変更、修正、及び変形を包含することが意図される。
【図１Ａ】
2019536299.tif 000003
【図１Ｂ】
2019536299.tif 000004
【図１Ｃ】
2019536299.tif 000005
【図２Ａ】
2019536299.tif 000006
【図２Ｂ】
2019536299.tif 000007
【図２Ｃ】
2019536299.tif 000008
【図３】
2019536299.tif 000009
【図４】
2019536299.tif 000010
【図５】
2019536299.tif 000011
【図６】
2019536299.tif 000012
【国際調査報告】
2019536299.tif 000013
2019536299.tif 000014