(57)【要約】   利用量テストが、第１のコンピュータ上のリソース負荷の複数の次元を生成し、複数の次元は、プロセッサ利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及びネットワーク利用量次元の内の少なくとも２つを含む。利用量テストは、第１のコンピュータ上のリソース負荷の前記各次元の変更可能な目標利用量に等しい量で、第１のコンピュータ上のリソース負荷の前記各次元を生成する試みの反復を実行する。利用量テストは、（ｉ）第１のコンピュータ上のリソース負荷の複数の次元の内の特定の１つの実利用量と、（ｉｉ）第１のコンピュータ上のリソース負荷の複数の次元の内の前記特定の１つの変更可能な目標利用量との間の不一致の是正を試みるために、調整された利用量を調整する。【選択図】  図６
2018532194.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータリソース負荷の複数の次元を、前記コンピュータリソース負荷の前記複数の次元の容量をテストするために、調整可能に生成する方法であって、
前記方法は、第１のコンピュータ上で、前記第１のコンピュータのリソース負荷の前記複数の次元を生成する利用量テストを実行することを有し、
前記複数の次元は、プロセッサ利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の内の少なくとも２つを含み、
前記利用量テストは、前記複数の次元の２つ以上の各次元について、前記第１のコンピュータ上の前記リソース負荷の前記各次元を、前記第１のコンピュータ上の前記リソース負荷の前記各次元の変更可能な目標利用量に等しい量で生成する試みの反復を実行し、
前記利用量テストは、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の特定の１つの実利用量を測定し、
前記実利用量は、少なくとも、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの調整された利用量と、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つへの第１の利用量負担との組み合わせであり、
前記調整された利用量は、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つに対して前記利用量テストによって生成され、
前記第１の利用量負担は、前記第１のコンピュータ上で生成され、前記第１の利用量負担は、前記第１のコンピュータ上において前記利用量テストの外側で生成され、
前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つは、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つが前記変更可能な目標利用量を有するような、前記複数の次元の内の前記２つ以上の次元の１つであり、
前記利用量テストは、（ｉ）前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの前記実利用量と、（ｉｉ）前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの前記変更可能な目標利用量との間の不一致の是正を試みるために、前記調整された利用量を調整する
ことを特徴とする方法。
【請求項２】
前記反復の後の１回は、前記反復の前の１回の後にあり、前記反復の前記前の１回で、前記利用量テストが前記実利用量を測定し、それに応答して、前記反復の前記後の１回で前記利用量テストが前記調整された利用量を調整することを特徴とする請求項１に記載の方法。
【請求項３】
前記反復の後の１回は、前記反復の前の１回の後にあり、前記反復の前記前の１回で、前記利用量テストが前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの前記実利用量を測定し、それに応答して、前記反復の前記後の１回で、前記利用量テストが、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの前記調整された利用量を調整することを特徴とする請求項１〜２の何れか１項に記載の方法。
【請求項４】
前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの前記実利用量は、少なくとも、前記調整された利用量、前記第１の利用量負担、及び、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の別の１つの第２の利用量負担の組み合わせであり、
前記第２の利用量負担は、前記複数の次元の前記別の１つに対して前記利用量テストによって生成されることを特徴とする請求項１〜３の何れか１項に記載の方法。
【請求項５】
前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つは前記プロセッサ利用量次元であり、前記複数の次元の前記別の１つは前記主メモリ利用量次元、前記大容量記憶装置利用量次元、及び、前記ネットワーク利用量次元の何れかであることを特徴とする請求項４に記載の方法。
【請求項６】
前記複数の次元の内の前記２つ以上は、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つと前記複数の次元の内の別の１つを含み、
前記複数の次元の内の前記別の１つに対して前記利用量テストによって測定された前記実利用量は、少なくとも、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記別の１つの前記調整された利用量と、前記第１のコンピュータ上において前記利用量テストの外側で生成された前記第１のコンピュータ上の別の第１の利用量負担との組み合わせであり、
前記複数の次元の内の前記別の１つの前記調整された利用量は、前記複数の次元の内の前記別の１つに対して前記利用量テストによって生成されることを特徴とする請求項１〜５の何れか１項に記載の方法。
【請求項７】
前記利用量テストは、前記第１のコンピュータ上のリソース負荷の前記複数の次元の内の異なる次元に対し、前記変更可能な目標利用量、前記実利用量、前記調整された利用量、及び、前記第１の利用量負担の異なる値を格納する前記能力を有することを特徴とする請求項１〜６の何れか１項に記載の方法。
【請求項８】
前記複数の次元は、ＯＳの基本的な動作を測定することを特徴とする請求項１〜７の何れか１項に記載の方法。
【請求項９】
前記第１のコンピュータは物理的なコンピュータであることを特徴とする請求項１〜８の何れか１項に記載の方法。
【請求項１０】
前記第１のコンピュータは物理コンピュータ上の仮想マシンであることを特徴とする請求項１〜８の何れか１項に記載の方法。
【請求項１１】
前記反復の前記後の１回で、前記調整された利用量は、前記物理コンピュータのリソースへのアクセスにおける変更を受けている前記仮想マシンを修正しようと、更に調整されることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記利用量テストは、前記第１のコンピュータ上の単一カーネルオペレーティングシステムにおいて実行されることを特徴とする請求項１〜１１の何れか１項に記載の方法。
【請求項１３】
前記利用量テストは、汎用オペレーティングシステムにおいて実行されることを特徴とする請求項１〜１２の何れか１項に記載の方法。
【請求項１４】
前記変更可能な目標利用量は、前記第１のコンピュータの前記複数の次元の内の前記特定の１つの全利用量とゼロ利用量の間の中間値に変更可能であることを特徴とする請求項１〜１３の何れか１項に記載の方法。
【請求項１５】
前記異なる次元の前記変更可能な目標利用量は、時間が経てば変化し、前記利用量テストは、前記変更可能な目標利用量が変更されたことに応答して新たな一組の反復を実行することを特徴とする請求項１〜１４の何れか１項に記載の方法。
【請求項１６】
前記異なる次元の前記変更可能な目標利用量は、ユーザによって決定されることを特徴とする請求項１〜１５の何れか１項に記載の方法。
【請求項１７】
前記異なる次元の前記変更可能な目標利用量は、アルゴリズムによって自動的に決定されることを特徴とする請求項１〜１５の何れか１項に記載の方法。
【請求項１８】
更に、前記複数の次元に対する、前記実利用量と、前記実利用量と前記変更可能な目標利用量との間の差異を報告することを備えることを特徴とする請求項１〜１７の何れか１項に記載の方法。
【請求項１９】
前記利用量テストは、前記第１のコンピュータの前記リソース負荷の前記複数の次元に対する前記変更可能な目標利用量を実現する試みにおいて、前記第１のコンピュータの前記リソース負荷の前記複数の次元に対する前記実利用量を引き起こすＰＩＤコントローラ出力を有するＰＩＤコントローラループを含むことを特徴とする請求項１〜１８の何れか１項に記載の方法。
【請求項２０】
コンピュータリソース負荷の複数の次元を、コンピュータリソース負荷の複数の次元の可用性を調整可能にテストするために、調整可能に生成するように構成された装置であって、
プロセッサ、メモリ、及び、メモリ内の命令を含む第１のコンピュータを備え、
前記命令は、第１のコンピュータ上で、前記第１のコンピュータのリソース負荷の前記複数の次元を生成する利用量テストの実行を実施し、
前記複数の次元は、プロセッサ利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の内の少なくとも２つを含み、
前記利用量テストは、前記複数の次元の２つ以上の各次元について、前記第１のコンピュータ上の前記リソース負荷の前記各次元を、前記第１のコンピュータ上の前記リソース負荷の前記各次元の変更可能な目標利用量に等しい量で生成する試みの反復を実行し、
前記利用量テストは、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の特定の１つの実利用量を測定し、
前記実利用量は、少なくとも、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの調整された利用量と、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つへの第１の利用量負担との組み合わせであり、
前記調整された利用量は、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つに対して前記利用量テストによって生成され、
前記第１の利用量負担は、前記第１のコンピュータ上で生成され、前記第１の利用量負担は、前記第１のコンピュータ上において前記利用量テストの外側で生成され、
前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つは、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つが前記変更可能な目標利用量を有するような、前記複数の次元の内の前記２つ以上の次元の１つであり、
前記利用量テストは、（ｉ）前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの前記実利用量と、（ｉｉ）前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの前記変更可能な目標利用量との間の不一致の是正を試みるために、前記調整された利用量を調整する
ことを特徴とする装置。
【発明の詳細な説明】
【背景技術】
【０００１】
背景技術の項で論じる内容は、単に背景技術の項で言及したことによる先行技術であると決め付けるべきではない。同様に、背景技術の項で言及された、或いは、背景技術の項の内容に関連する問題は、先行技術において既に認識されていると決め付けるべきではない。背景技術の項の内容は、単に、それ自体で自発的に請求項に記載の発明の実施に対応し得る異なるアプローチを表すに過ぎない。 
【０００２】
負荷ジェネレータは、コンピュータの最大リソース負荷容量を測定するために最大負荷を作成できる。しかし、既存の負荷ジェネレータは、任意の負荷を作成することはできない。また、既存の負荷ジェネレータは、一連のテストを実行し、単一の測定基準をコンピュータリソースの可用性に割り当てることができる。しかしながら、既存の負荷ジェネレータは、様々なタイプのコンピュータリソースの、特に任意のロードにおけるきめの細かい測定ができない。 
【０００３】
従って、任意のレベルの様々なタイプのコンピュータリソースのリソース負荷容量の決定に役立つ負荷ジェネレータを開発する機会が生じる。 
【発明の概要】
【０００４】
本技術の一態様は、コンピュータリソース負荷の複数の次元の容量をテストするためにコンピュータリソース負荷の複数の次元を調整可能に生成する方法である。
【０００５】
利用量テストは、第１のコンピュータ上のリソース負荷の複数の次元を生成する。ここで、該複数の次元は、プロセッサ利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の内の少なくとも２つを含む。前記利用量テストは、第１のコンピュータ上のリソース負荷の前記各次元の変更可能な目標利用量に等しい量で、前記第１のコンピュータ上の前記リソース負荷の各次元を生成する試みの反復を実行する。利用量テストは、（ｉ）第１のコンピュータ上のリソース負荷の複数の次元の内の特定の１つの実利用量と、（ｉｉ）第１のコンピュータ上のリソース負荷の複数の次元の内の前記特定の１つの変更可能な目標利用量との間の不一致の是正を試みるために、調整された利用量を調整する。 
【０００６】
開示される技術の他の特徴及び態様は、以下の図面、明細書及び特許請求の範囲に示される。
【図面の簡単な説明】
【０００７】
添付の図面は、例示を目的としており、本開示の１以上の実装のための可能な構造及びプロセス動作の例を提供するためだけに供せられる。これらの図面は、本開示の精神及び範囲から逸脱することなく、当業者によってなされ得る形態及び詳細における如何なる変更も決して制限しない。発明内容のより完全な理解は、以下の図面と併せて考慮するとき、詳細な説明及び特許請求の範囲を参照することによって導き出すことができ、図面を通して同様の参照番号は同様の要素を指し示す。
【０００８】
【図１】リソース利用量テストを実行するための環境例を示すブロック図である。
【０００９】
【図２】単一カーネル上で実行されるリソース利用量テストアプリケーションを示す簡略ブロック図である。
【図３】汎用オペレーティングシステム上で実行されるリソース利用量テストアプリケーションを示す簡略ブロック図である。
【図４】単一カーネル上で実行されるリソース利用量テストアプリケーションを示す簡略ブロック図である。
【図５】汎用オペレーティングシステム上で実行されるリソース利用量テストアプリケーションを示す簡略ブロック図である。
【００１０】
【図６】所望のレベルのリソース負荷を生成する複数の閉ループを有する利用量テストアプリケーションのブロック図の一例である。
【００１１】
【図７】特定のコンピュータリソースの実利用量を含む様々な構成要素の簡略化された表示である。
【００１２】
【図８】開ループ負荷ジェネレータに対する閉ループ負荷ジェネレータの経時的な優れた性能を示すグラフである。
【００１３】
【図９】ＣＰＵの様々な変更可能な目標利用量における開ループ負荷ジェネレータに対する閉ループ負荷ジェネレータの優れた性能を示すグラフである。
【００１４】
【図１０】コンピュータリソース負荷の複数の次元の性能を同時に示すグラフである。
【００１５】
【図１１】基礎的なリソースが十分な仮想マシンにおけるＣＰＵ負荷誤差のヒストグラムである。
【００１６】
【図１２】基礎的なリソースが不十分な仮想マシンにおけるＣＰＵ負荷誤差のヒストグラムである。
【００１７】
【図１３】様々な物理サーバ上の仮想マシンの複数のインスタンスで実行されるリソース利用量テストアプリケーションを備えたデータセンタクラウドの単純化されたブロック図である。
【００１８】
【図１４】コンピュータシステムの一例のブロック図である。
【発明を実施するための形態】
【００１９】
以下の詳細な説明は図面を参照してなされる。開示された技術を説明するための例示的な実施態様を説明する。但し、例示的な実施態様は、開示された技術の範囲を限定するものではなく、当該範囲は特許請求の範囲によって規定される。当業者であれば、以下の説明に様々な均等な変形があることを認識するであろう。
【００２０】
図１は、リソース利用量テストを実行するための環境例を示すブロック図である。
【００２１】
仮想マシンオペレーティングシステム２０または仮想マシンインスタンスは、仮想マシンオペレーティングシステム２０に割り当てられた仮想マシンハードウェア２８ａ上で動作する。仮想マシンオペレーティングシステム２０は、物理サーバ１０ａ上で実行される仮想化ソフトウェア３０ａによって管理される。仮想化ソフトウェア３０ａは、追加の仮想マシンを管理することもできる。仮想化ソフトウェア３０ａは、ネイティブであってもホストされていてもよく、１以上の仮想マシンを管理し、同じコンピュータハードウェアリソース上のオペレーティングシステムの複数の同時インスタンスを許可する。コンピュータハードウェアリソースは、ネットワーククラウドとして示されるネットワーク２によって相互接続された物理サーバ１０ａ〜１０ｚを含む。物理サーバ１０ａ〜１０ｚは、プロセッサ、メモリ、及び、本明細書で説明する技術を実行するコンピュータによって実行可能なコンピュータ可読命令を有する持続性コンピュータ可読媒体を含む。任意の数のサーバ１０ａ〜１０ｚがネットワーク２上に存在してもよく、任意の数の仮想マシン２０が各物理サーバ１０ａ〜１０ｚ上に存在してもよい。例えば、仮想化ソフトウェア３０ｙは物理サーバ１０ｙ上で実行しており、物理サーバ１０ｚは実行中の仮想化ソフトウェアを有していない。
【００２２】
仮想マシンオペレーティングシステム２０は、リソース利用量テストアプリケーション２２ａが実行される環境である。リソース利用量テストアプリケーション２２ａは、リソース負荷容量テスト２３ａのリソース調整を行う。調整されるリソース負荷の様々なタイプまたは次元の例には、ＣＰＵまたはプロセス利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元が含まれる。
【００２３】
物理サーバ１０ｚは、実行中の仮想化ソフトウェアを有していない。リソース負荷容量テスト２３ｚのリソース調整は、リソース負荷容量テスト２３ａのリソース調整と同様に機能するが、物理マシンオペレーティングシステム１９上の非仮想コンテキストにおいて機能する。
【００２４】
また、 図２〜図５は、汎用オペレーティングシステムまたは単一カーネル（ｕｎｉｋｅｒｎｅｌ）上で実行されるリソース利用量テストアプリケーションを示す簡略ブロック図である。
【００２５】
図２は、単一カーネルオペレーティングシステム５２をサポートする仮想マシンインスタンス２０を示す。単一カーネルオペレーティングシステム５２は、オペレーティングシステムの任意の態様の検査を可能にする単一のアドレス空間を提供する。従って、単一カーネルオペレーティングシステム５２は、リソース利用量テストアプリケーション２２ａによって実行される負荷生成の正確さを保証するのに役立つ。
【００２６】
図３は、汎用オペレーティングシステム５０をサポートする仮想マシンインスタンス２０を示す。汎用オペレーティングシステム５０は、オペレーティングシステムのアスペクトの検査を不明瞭にするリソース利用量テストアプリケーション２２ａに係るアドレス空間を含む複数のアドレス空間をユーザ空間４０に提供する。従って、汎用オペレーティングシステム５０は、リソース利用量テストアプリケーション２２ａによって実行される負荷の生成の正確さを阻害する。それにも拘わらず、リソース利用量テストアプリケーション２２ａは、汎用オペレーティングシステム５０における別手段と比較すると改善された負荷ジェネレータである。
【００２７】
図４は、 仮想マシンではなく物理マシン１９が単一カーネルオペレーティングシステム５２をサポートしている点を除いて、図２と同様である。 図５は、 仮想マシンではなく物理マシン１９が汎用オペレーティングシステム５０をサポートしている点を除いて、図３と同様である。
【００２８】
図６は、所望のレベルのリソース負荷を生成する複数の閉ループを有する利用量テストアプリケーションのブロック図の一例である。
【００２９】
利用量テスト制御部２５０は、リソース負荷の様々な次元について、変更可能な目標利用量２０８，２１８，２２８，及び２３８を生成する。 変更可能な目標利用量２０８，２１８，２２８，及び２３８は、ユーザによって手動で指定されるか、または、利用量テストアプリケーションによって自動的に生成される。 自動的に生成された変更可能な目標利用量２０８，２１８，２２８，及び２３８は、利用量テストアプリケーションを複数回実行するために、或る範囲の値を繰り返すことができる。
【００３０】
ネットワークＩ／Ｏジェネレータ２０２は、１秒当たりの送信パケット及び１秒当たりのトランザクションの内の少なくとも何れか１つのような、ネットワーク利用量次元のリソース負荷を生成する。ネットワークＩ／Ｏジェネレータ２０２によって生成されたネットワーク利用量次元のリソース負荷の量は、調整された利用量２０６である。調整された利用量２０６は、最初は変更可能な目標利用量２０８に等しい。実利用量２０７は、コンピュータ上で実際に生成されるネットワーク利用量次元のリソース負荷の量である。コンピュータ上のネットワーク利用量次元の実利用量２０７は、ネットワークＩ／Ｏジェネレータ２０２によって生成された調整された利用量２０６に加えて負担（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）を含むため、実利用量２０７は、調整された利用量２０６とは異なる。実利用量２０７が実利用量の測定及び出力２４０によって測定された後、実利用量２０７が閉ループコントローラ２０４に提供される。実利用量２０７に対応して、閉ループコントローラ２０４は、実利用量２０７を変更可能な目標利用量２０８に等しくしようとして、調整された利用量２０６を変更する。
【００３１】
他の３つのループも同様であるが、完全を期すために説明する。
【００３２】
大容量記憶装置Ｉ／Ｏジェネレータ２１２は、１秒当たりの読み出し動作及び１秒当たりの書き込み動作の内の少なくとも何れか１つのような、大容量記憶装置利用量次元のリソース負荷を生成する。大容量記憶装置Ｉ／Ｏジェネレータ２１２によって生成された大容量記憶装置利用量次元のリソース負荷の量は、調整された利用量２１６である。調整された利用量２１６は、最初は変更可能な目標利用量２１８に等しい。実利用量２１７は、コンピュータ上で実際に生成される大容量記憶装置利用量次元のリソース負荷の量である。コンピュータ上の大容量記憶装置利用量次元の実利用量２１７は、大容量記憶装置Ｉ／Ｏジェネレータ２１２によって生成された調整された利用量２１６に加えて負担（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）を含むため、実利用量２１７は、調整された利用量２１６とは異なる。実利用量２１７が実利用量の測定及び出力２４０によって測定された後、実利用量２１７が閉ループコントローラ２１４に提供される。実利用量２１７に対応して、閉ループコントローラ２１４は、実利用量２１７を変更可能な目標利用量２１８に等しくしようとして、調整された利用量２１６を変更する。
【００３３】
主メモリＩ／Ｏジェネレータ２２２は、１秒当たりの読み出し動作及び１秒当たりの書き込み動作の内の少なくとも何れか１つのような、主メモリ利用量次元のリソース負荷を生成する。主メモリＩ／Ｏジェネレータ２２２によって生成された主メモリ利用量次元のリソース負荷の量は、調整された利用量２２６である。調整された利用量２２６は、最初は変更可能な目標利用量２２８に等しい。実利用量２２７は、コンピュータ上で実際に生成されたネットワーク利用量次元のリソース負荷の量である。コンピュータ上の主メモリ利用量次元の実利用量２２７は、主メモリＩ／Ｏジェネレータ２２２によって生成された調整された利用量２２６に加えて負担（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）を含むため、実利用量２２７は、調整された利用量２２６とは異なる。実利用量２２７が実利用量の測定及び出力２４０によって測定された後、実利用量２２７が閉ループコントローラ２２４に提供される。実利用量２２７に対応して、閉ループコントローラ２２４は、実利用量２２７を変更可能な目標利用量２２８に等しくしようとして、閉ループコントローラ２２４は、調整された利用量２２６を変更する。
【００３４】
プロセッサまたはＣＰＵ負荷ジェネレータ２３２は、使用されたＣＰＵ秒数及び合計ＣＰＵ秒数の内の少なくとも何れか１つのような、プロセッサ利用量次元のリソース負荷を生成する。プロセッサジェネレータ２３２によって生成されたプロセッサ利用量次元のリソース負荷の量は、調整された利用量２３６である。調整された利用量２３６は、最初は変更可能な目標利用量２３８に等しい。実利用量２３７は、コンピュータ上で実際に生成されるプロセッサ負荷利用量次元のリソース負荷の量である。コンピュータ上のプロセッサ利用量次元の実利用量２３７は、プロセッサ負荷ジェネレータ２３２によって生成された調整された利用量２３６に加えて負担（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）を含むため、実利用量２３７は調整された利用量２３６とは異なる。実利用量２３７が実利用量の測定及び出力２４０によって測定された後、実利用量２３７が閉ループコントローラ２３４に提供される。実利用量２３７に対応して、閉ループコントローラ２３４は、実利用量２３７を変更可能な目標利用量２３８に等しくしようとして、閉ループコントローラ２２４は、調整された利用量２３６を変更する。
【００３５】
閉ループコントローラ２０４，２１４，２２４及び２３４は、ハードウェアまたはソフトウェアまたはそれらの組み合わせに実装され得る。より一般的には、閉ループコントローラ２０４，２１４，２２４及び２３４は、カスケード補償またはフィードバック補償を実行することができる。カスケード補償の例は、比例＋積分（ＰＩ）制御、比例＋微分（ＰＤ）制御、比例＋積分＋微分（ＰＩＤ）制御である。閉ループをチューニングする例としては、マニュアルチューニング、Ｚｉｅｇｌｅｒ−Ｎｉｃｈｏｌｓチューニング、Ｔｙｒｅｕｓ−Ｌｕｙｂｅｎチューニング、ソフトウェアツールチューニング、Ｃｏｈｅｎ‐Ｃｏｏｎチューニング等がある。
【００３６】
利用量テストアプリケーションの例では、リソース負荷の４つの次元が示されているが、他の例では、３つ，２つ，１つ、または４つ以上の次元を含むこともできる。他の例では、リソース負荷の特定の次元を、該リソース負荷の特定の次元の様々な特性に分割することもできる。
【００３７】
図７は、特定のコンピュータリソースの実利用量を含む様々な構成要素を簡略化して表示している。
【００３８】
特定のコンピュータリソースの実利用量３０１は、例えば、図６の実利用量２０７，２１７，２２７，または２３７であり得る。実利用量は、特定のコンピュータリソースの調整された利用量３１０だけでなく、追加の利用量負担（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）を含む。特定のコンピュータリソースの調整された利用量３０１は、例えば、図６の調整された利用量２０６，２１６，２２６，または２３６とすることができる。
【００３９】
コンピュータ負荷の他の次元に対して、負荷ジェネレータの閉ループから幾つかの示されている負担（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）が生じる。例えば、特定のコンピュータリソースの実利用量３０１がプロセッサ負荷次元の実利用量２３７である例では、コンピュータ負荷のプロセッサ負荷次元に対する追加の負担は、ネットワーク利用量次元、大容量記憶装置利用量次元、及び／または、主メモリ利用量次元の負荷ジェネレータの閉ループから生じる。斯かる追加の負担は、異なるコンピュータリソース＃１（例えば、ネットワーク利用量次元）の実利用量３２１、異なるコンピュータリソース＃２（例えば、大容量記憶装置の次元）の実利用量３３１、及び、異なるコンピュータリソース＃３（例えば、主メモリ利用量次元）の実利用量３４１から夫々生じる特定のコンピュータリソース（例えば、プロセッサ負荷次元）の利用量負担３２０，３３０，及び３４０として示される。
【００４０】
他の示されている負担（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）は、利用量テストの外部から、更にコンピュータの外部からでも発生する。特定のコンピュータリソースの利用量３５０，３６０，及び３７０は、夫々、利用量テスト外の仮想マシン上のプロセス３５１、利用量テスト外の物理マシン上のプロセス３６１、及び、仮想マシン外の物理サーバ上のプロセス３７１から生じる。厳密に言えば、利用量テスト外の仮想マシン上のプロセス３５１、利用量テスト外の物理マシン上のプロセス３６１、及び、仮想マシン外の物理サーバ上のプロセス３７１は、リソースの可用性についての上限を表すことができる。しかし、斯かる上限は、負の負担によって説明され得る。
【００４１】
図８は、開ループ負荷ジェネレータに対する閉ループ負荷ジェネレータの経時的な優れた性能を示すグラフである。
【００４２】
このグラフは、１０％のＣＰＵ使用率で１２０秒間に亘る、単純なＣＰＵ負荷ジェネレータ（開ループ４２０）対ＰＩＤ制御ＣＰＵ負荷ジェネレータ（閉ループ４１０）の初期比較を示している。ｘ軸は時間を表し、ｙ軸は観測された誤差を表す。この場合、正の誤差は不十分なＣＰＵ負荷を表し、負の誤差は過剰なＣＰＵ負荷を表す。両方のコントローラにおいて誤差は、標準的なシステムの変動により平均誤差値を中心に変動している。しかし、ＰＩＤ制御の平均誤差は、明らかに開ループの場合よりも０に近い。
【００４３】
図９は、ＣＰＵの様々な変更可能な目標利用量における開ループ負荷ジェネレータに対する閉ループ負荷ジェネレータの優れた性能を示すグラフである。
【００４４】
図８と同じ比較が、目標ＣＰＵ負荷の範囲に亘って行われる。今回は、ｘ軸が目標負荷であり、ｙ軸がテスト期間に亘って観測された平均誤差値である。エラーバーは、テスト実行中に観察された最大及び最小誤差値を示す。ほぼ全てのＰＩＤ制御（閉ループ５１０）の場合では平均誤差値は０であるのに対し、単純なＣＰＵジェネレータ（開ループ５２０）では目標ＣＰＵ負荷に依存する明確なバイアスを有する。 また、両方のジェネレータは、０％と１００％の負荷でほぼ同様に機能している。
【００４５】
図１０は、コンピュータリソース負荷の複数の次元の性能を同時に示すグラフである。
【００４６】
このグラフは、軽負荷のハイパーバイザ上の仮想マシン内の単一カーネルベースの負荷ジェネレータを使用して、３つの負荷ジェネレータを実行したときに測定された誤差（グラフの分散（ｖａｒｉａｎｃｅ）のパーセンテージ）を示している。
【００４７】
ジェネレータは以下のように構成されている。
【００４８】
ＣＰＵ使用率（トレース６５０）：５０％
【００４９】
メモリ読み出し（トレース６１０）：１０００ＭＢ／秒
【００５０】
メモリ書き込み（トレース６２０）：１００ＭＢ／秒
【００５１】
ディスク読み出し（トレース６３０）：２０ＭＢ／秒
【００５２】
ディスク書き込み（トレース６４０）：２ＭＢ／秒
【００５３】
各結果カテゴリにおいて、平均誤差は０であるが、分散が多少存在する。更に、これは、複数の負荷ジェネレータが同時に協働し、時間が経てば正確な負荷を生成できることを示している。
【００５４】
図１１は、基礎的なリソースが十分な仮想マシンにおけるＣＰＵ負荷誤差のヒストグラムである。
【００５５】
この負荷生成技術は、所望のレベルの性能を提供するために、ハイパーバイザプラットフォームの能力を比較する。テストツールに特定の負荷を設定することにより、リソース利用量テストアプリケーションは、ハイパーバイザがその量のコンピューティングリソースをテストツールに提供できるか否かを判断できる。
【００５６】
この第１のヒストグラムは、軽負荷のハイパーバイザ上の単一カーネルベースの負荷ジェネレータにおける測定されたＣＰＵ負荷誤差の範囲を示している。このテストの実行時の平均誤差は０％である（前述の初期テストの場合と同様）。更に、ヒストグラムは、０％誤差付近での誤差値の密な集積性を示している。
【００５７】
図１２は、基礎的なリソースが不十分な仮想マシンにおけるＣＰＵ負荷誤差のヒストグラムである。
【００５８】
この第２のヒストグラムは、同じテスト構成を示しているが、過負荷状態のハイパーバイザ上で実行されたものである。測定された誤差は、このテストシステム上ではるかに大きな分散を有している。更に、このテスト実行時の平均誤差は概ね−５％であり、ＰＩＤ制御負荷ジェネレータがＣＰＵリソースの不足のために所望の負荷を生成できなかったことを示している。
【００５９】
図１３は、様々な物理サーバ上の仮想マシンの複数のインスタンスで実行されるリソース利用量テストアプリケーションを備えたデータセンタクラウドの単純化されたブロック図である。
【００６０】
ネットワーク７００は、物理サーバ７１０及び物理サーバ７４０等の複数の物理サーバを含む。各物理サーバは、物理サーバ７１０上の仮想マシンＯＳ７２０及び７２１、物理サーバ７４０上の仮想マシンＯＳ７５０及び７５１等の複数の仮想マシンインスタンスをサポートする。各仮想マシンは、仮想マシンＯＳ７２０，７２１，７５０，及び７５１上に各別に存在するリソース利用量テストアプリケーション７３０，７３１，７６０，７６１等のリソース利用量テストアプリケーションをサポートする。この例では、２つの仮想マシンが示されているが、各物理サーバーは任意の数の仮想マシンをサポートできる。
【００６１】
一実施形態では、制御ソフトウェアは、（仮想マシンが既にインストールされていない限り仮想マシンと共に）リソース利用量テストアプリケーションを遠隔でインストールする。そして、制御ソフトウェアは、物理サーバの全て（または幾らかのサブセット）の仮想マシンの全て（または幾らかのサブセット）でリソース利用量テストアプリケーションの利用量を実行し、結果を集計する。最終的な出力は、コンピュータ負荷の様々な次元に対して多数の仮想マシンをサポートするデータセンタクラウドの総容量を示すことができる。
【００６２】
図１４は、一実施態様におけるコンピュータシステムの一例のブロック図である。コンピュータシステム９１０は、典型的には、バスサブシステム９１２を介して複数の周辺装置と通信する少なくとも１つのプロセッサ９１４を含む。これらの周辺装置は、メモリ装置及びファイル記憶装置サブシステムを一例として含む記憶装置サブシステム９２４、ユーザインターフェース入力装置９２２、ユーザインタフェース出力装置９２０、及びネットワークインタフェースサブシステム９１６を含む。入力及び出力装置は、ユーザのコンピュータシステム９１０との相互作用を可能にする。ネットワークインタフェースサブシステム９１６は、他のコンピュータシステムの対応するインタフェース装置とのインタフェースを含む外部ネットワークとのインタフェースを提供する。
【００６３】
ユーザインタフェース入力装置９２２は、キーボード; マウス、トラックボール、タッチパッド、または、グラフィックタブレット等のポインティング装置; スキャナ; ディスプレイに組み込まれたタッチスクリーン；音声認識システム及びマイクロホン等の音声入力装置、及び、他のタイプの入力装置を含むことができる。一般に、用語「入力装置」の使用は、コンピュータシステム９１０に情報を入力するための全ての可能なタイプの装置及び方法を含むことを意図している。
【００６４】
ユーザインタフェース出力装置９２０は、ディスプレイサブシステム、プリンタ、ファックス装置、または、オーディオ出力装置等の非視覚的ディスプレイを含むことができる。ディスプレイサブシステムは、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）等のフラットパネル装置、投影装置、または、可視画像を生成するための他の何らかの機構を含むことができる。ディスプレイサブシステムは、また、オーディオ出力装置等の非視覚的ディスプレイを提供してもよい。一般に、用語「出力装置」の使用は、コンピュータシステム９１０からユーザまたは別の機械またはコンピュータシステムに情報を出力するための全ての可能なタイプの装置及び方法を含むことを意図している。
【００６５】
記憶装置サブシステム９２４は、本明細書に記載のモジュール及び方法の一部または全部の機能を提供するプログラミングおよびデータ構成を格納する。これらのソフトウェアモジュールは、一般にプロセッサ９１４単独で、または、他のプロセッサと組み合わせて実行される。
【００６６】
記憶装置サブシステムで使用されるメモリ９２６は、プログラム実行中に命令およびデータを記憶するための主ランダムアクセスメモリ（ＲＡＭ）９３０、及び、固定命令が記憶される読み出し専用メモリ（ＲＯＭ）９３２を含む複数のメモリを含むことができる。ファイル記憶装置サブシステム９２８は、プログラム及びデータファイルのための持続性記憶装置を提供することができ、ハードディスクドライブ、対応するリムーバブルメディアを伴うフロッピーディスクドライブ、ＣＤ−ＲＯＭドライブ、光学ドライブ、または、リムーバブルメディアカートリッジを含むことができる。特定の実装態様の機能を実装するモジュールは、記憶装置サブシステム９２４のファイル記憶装置サブシステム９２８によって、または、プロセッサがアクセス可能な他のマシン内に格納することができる。
【００６７】
バスサブシステム９１２は、コンピュータシステム９１０の様々な構成要素及びサブシステムを意図したように互いに通信させるための機構を提供する。バスサブシステム９１２は、単一のバスとして図式的に示されているが、バスサブシステムの代替的な実装態様では、複数のバスを使用することができる。
【００６８】
コンピュータシステム９１０は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または、その他のデータ処理システムまたはコンピューティング装置を含む様々なタイプのコンピュータシステムであり得る。コンピュータ及びネットワークの刻々と変化する本質のために、図９に示すコンピュータシステム９１０の説明は、 一例として意図されているに過ぎない。 コンピュータシステム９１０の他の多くの構成は、図９に示すコンピュータシステムより多くの、または、より少ない構成要素を有することが可能である。
［特定の実施態様］
【００６９】
本技術の一態様は、コンピュータリソース負荷の複数の次元の容量をテストするためにコンピュータリソース負荷の複数の次元を調整可能に生成する方法である。
【００７０】
該方法は、第１のコンピュータ上で、第１のコンピュータ上のリソース負荷の複数の次元を生成する利用量テストを実行することを含む。
【００７１】
該複数の次元は、プロセッサ利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の内の少なくとも２つを含む。
【００７２】
利用量テストは、複数の次元の２つ以上の各次元について、第１のコンピュータ上のリソース負荷の各次元を、第１のコンピュータ上のリソース負荷の各次元の変更可能な目標利用量に等しい量で生成する試みの反復を実行する。
【００７３】
利用量テストは、第１のコンピュータ上のリソース負荷の複数の次元の内の特定の１つの実利用量を測定する。
【００７４】
実利用量は、少なくとも以下の組み合わせである。
【００７５】
（ｉ）第１のコンピュータ上のリソース負荷の複数の次元の内の特定の１つの調整された利用量。前記調整された利用量は、前記第１のコンピュータ上のリソース負荷の複数の次元の内の特定の１つに対して利用量テストによって生成される。
【００７６】
（ｉｉ）第１のコンピュータ上のリソース負荷の複数の次元の内の特定の１つへの第１の利用量負担。前記第１の利用量負担は、前記第１のコンピュータ上で生成される。前記第１の利用量負担は、前記第１のコンピュータ上において利用量テストの外側で生成される。
【００７７】
第１のコンピュータ上のリソース負荷の複数の次元の内の前記特定の１つは、第１のコンピュータ上のリソース負荷の複数の次元の内の前記特定の１つが変更可能な目標利用量を有するような、複数の次元の内の２つ以上の次元の１つである。
【００７８】
利用量テストは、（ｉ）第１のコンピュータ上のリソース負荷の複数の次元の内の特定の１つの実利用量と、（ｉｉ）第１のコンピュータ上のリソース負荷の複数の次元の内の前記特定の１つの変更可能な目標利用量との間の不一致の是正を試みるために、調整された利用量を調整する。
【００７９】
一実施形態では、反復の後の１回は、前記反復の前の１回の後にある。前記反復の前の１回で、利用量テストが実利用量を測定し、それに応答して、前記反復の後の１回で利用量テストが調整された利用量を調整する。
【００８０】
一実施形態では、反復の後の１回は、前記反復の前の１回の後にある。前記反復の前の１回で、利用量テストが、第１のコンピュータ上のリソース負荷の複数の次元の内の特定の１つの実利用量を測定し、それに応答して、前記反復の後の１回で、利用量テストが、第１のコンピュータ上のリソース負荷の複数の次元の内の特定の１つの調整された利用量を調整する。
【００８１】
一実施形態では、第１のコンピュータ上のリソース負荷の複数の次元の内の特定の１つの実利用量は、少なくとも、少なくとも以下の組み合わせである。
【００８２】
（ｉ）調整された利用量、
【００８３】
（ｉｉ）第１の利用量負担、及び
【００８４】
（ｉｉｉ）第１のコンピュータ上のリソース負荷の複数の次元の内の別の１つの第２の利用量負担。前記第２の利用量負担は、前記複数の次元の前記別の１つに対して利用量テストによって生成される。
【００８５】
一実施形態では、第１のコンピュータ上のリソース負荷の複数の次元の内の前記特定の１つはプロセッサ利用量次元であり、前記複数の次元の前記別の１つは主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の何れかである。
【００８６】
一実施形態では、前記複数の次元の内の２つ以上は、第１のコンピュータ上のリソース負荷の複数の次元の内の特定の１つと前記複数の次元の内の別の１つを含む。前記複数の次元の内の別の１つに対して利用量テストによって測定された実利用量は、少なくとも以下の組み合わせである。
【００８７】
（ｉ）第１のコンピュータ上のリソース負荷の複数の次元の内の別の１つの調整された利用量。前記複数の次元の内の別の１つの調整された利用量は、前記複数の次元の内の別の１つに対して利用量テストによって生成される。
【００８８】
（ｉｉ）第１のコンピュータ上において利用量テストの外側で生成された第１のコンピュータ上の別の第１の利用量負担。
【００８９】
一実施形態では、利用量テストは、第１のコンピュータ上のリソース負荷の複数の次元の内の異なる次元に対し、変更可能な目標利用量、実利用量、調整された利用量、及び、第１の利用量負担の異なる値を格納する能力を有する。
【００９０】
一実施形態では、前記複数の次元は、ＯＳの基本的な動作を測定する。
【００９１】
一実施形態では、第１のコンピュータは物理的なコンピュータである。
【００９２】
一実施形態では、第１のコンピュータは、物理コンピュータ上の仮想マシンである。
【００９３】
一実施形態では、反復の後の１回で、調整された利用量は、物理コンピュータのリソースへのアクセスにおける変更を受けている仮想マシンを修正しようと、更に調整される。
【００９４】
一実施形態では、利用量テストは、第１のコンピュータ上の単一カーネルオペレーティングシステムにおいて実行される。
【００９５】
一実施形態では、利用量テストは、汎用オペレーティングシステムにおいて実行される。
【００９６】
一実施形態では、変更可能な目標利用量は、第１のコンピュータの複数の次元の内の特定の１つの全利用量とゼロ利用量の間の中間値に変更可能である。
【００９７】
一実施形態では、異なる次元の変更可能な目標利用量は、時間が経てば変化し、利用量テストは、変更可能な目標利用量が変更されたことに応答して新たな一組の反復を実行する。
【００９８】
一実施形態では、異なる次元の変更可能な目標利用量は、ユーザによって決定される。
【００９９】
一実施形態では、異なる次元の変更可能な目標利用量は、アルゴリズムによって自動的に決定される。
【０１００】
一実施形態は、更に、以下を備える。
【０１０１】
複数の次元に対する、実利用量と、該実利用量と変更可能な目標利用量との間の差異を報告すること。
【０１０２】
一実施形態では、利用量テストは、第１のコンピュータのリソース負荷の複数の次元に対する変更可能な目標利用量を実現する試みにおいて、第１のコンピュータのリソース負荷の複数の次元に対する実利用量を引き起こすＰＩＤコントローラ出力を有するＰＩＤコントローラループを含む。
【０１０３】
本技術の別の態様は、コンピュータリソース負荷の複数の次元の容量をテストするためにコンピュータリソース負荷の複数の次元を調整可能に生成する方法である。
【０１０４】
該方法は、第１のコンピュータ上で、第１のコンピュータ上のリソース負荷の複数の次元を生成する利用量テストを実行することを備える。
【０１０５】
該複数の次元は、プロセッサ利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の内の少なくとも２つを含む。
【０１０６】
利用量テストは、複数の次元の２つ以上の各次元について、第１のコンピュータ上のリソース負荷の各次元を、ＰＩＤコントローラを用いて、第１のコンピュータ上のリソース負荷の各次元の変更可能な目標利用量に等しい量で生成する試みの反復を実行する。
【０１０７】
本技術の別の態様は、コンピュータリソース負荷の複数の次元の可用性を調整可能にテストするためにコンピュータリソース負荷の複数の次元を調整可能に生成するように構成された装置であって、プロセッサ、メモリ、及び、本明細書に記載の方法を実施するメモリに格納された命令を含む第１のコンピュータを備える。
【０１０８】
本技術の別の態様は、コンピュータリソース負荷の複数の次元の容量をテストするためにコンピュータリソース負荷の複数の次元を調整可能に生成するコードを格納する非一時的コンピュータ可読媒体である。該コードは、本明細書で説明する方法を実行するための命令を含む。
【０１０９】
開示された技術の該方法及び他の実施態様は、以下の特徴、及び／または、開示された追加の方法に関連して記載される特徴の内の１つ以上を含むことができる。簡潔さのために、本出願で開示される特徴の組み合わせは、個別に列挙されず、また、該特徴の各基本集合を用いて繰り返さない。
【０１１０】
他の実施形態は、上述の方法の何れかをコンピュータに実施させるコンピュータプログラム命令を含む有形のコンピュータ可読メモリを含むことができる。更に別の実施形態は、メモリと、メモリに格納された命令を実行して上述の方法の何れかを実行するように動作可能な１つ以上のプロセッサとを含むシステムを含むことができる。
【０１１１】
以下の条項は、コンピュータリソース負荷の複数の次元の容量をテストするためにコンピュータリソース負荷の複数の次元を調整可能に生成する様々な実施例の態様を記述する。
【０１１２】
１．コンピュータリソース負荷の複数の次元を、前記コンピュータリソース負荷の前記複数の次元の容量をテストするために、調整可能に生成する方法であって、前記方法は、
第１のコンピュータ上で、前記第１のコンピュータのリソース負荷の前記複数の次元を生成する利用量テストを実行することを有し、
前記複数の次元は、プロセッサ利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の内の少なくとも２つを含み、
前記利用量テストは、前記複数の次元の２つ以上の各次元について、前記第１のコンピュータ上の前記リソース負荷の前記各次元を、前記第１のコンピュータ上の前記リソース負荷の前記各次元の変更可能な目標利用量に等しい量で生成する試みの反復を実行し、
前記利用量テストは、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の特定の１つの実利用量を測定し、
前記実利用量は、少なくとも、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの調整された利用量と、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つへの第１の利用量負担との組み合わせであり、
前記調整された利用量は、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つに対して前記利用量テストによって生成され、
前記第１の利用量負担は、前記第１のコンピュータ上で生成され、前記第１の利用量負担は、前記第１のコンピュータ上において前記利用量テストの外側で生成され、
前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つは、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つが前記変更可能な目標利用量を有するような、前記複数の次元の内の前記２つ以上の次元の１つであり、
前記利用量テストは、（ｉ）前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの前記実利用量と、（ｉｉ）前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの前記変更可能な目標利用量との間の不一致の是正を試みるために、前記調整された利用量を調整する。
【０１１３】
２．条項１の前記方法であって、前記反復の後の１回は、前記反復の前の１回の後にあり、前記反復の前記前の１回で、前記利用量テストが前記実利用量を測定し、それに応答して、前記反復の前記後の１回で前記利用量テストが前記調整された利用量を調整する。
【０１１４】
３．条項１〜２の何れかの前記方法であって、前記反復の後の１回は、前記反復の前の１回の後にあり、前記反復の前記前の１回で、前記利用量テストが前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの前記実利用量を測定し、それに応答して、前記反復の前記後の１回で、前記利用量テストが、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの前記調整された利用量を調整する。
【０１１５】
４．条項１〜３の何れかの前記方法であって、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの前記実利用量は、少なくとも、前記調整された利用量、前記第１の利用量負担、及び、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の別の１つの第２の利用量負担の組み合わせであり、前記第２の利用量負担は、前記複数の次元の前記別の１つに対して前記利用量テストによって生成される。
【０１１６】
５．条項４の前記方法であって、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つは前記プロセッサ利用量次元であり、前記複数の次元の前記別の１つは前記主メモリ利用量次元、前記大容量記憶装置利用量次元、及び、前記ネットワーク利用量次元の何れかである。
【０１１７】
６．先行条項の何れかの前記方法であって、前記複数の次元の内の前記２つ以上は、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つと前記複数の次元の内の別の１つを含み、
前記複数の次元の内の前記別の１つに対して前記利用量テストによって測定された前記実利用量は、少なくとも、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記別の１つの調整された利用量と、前記第１のコンピュータ上において前記利用量テストの外側で生成された前記第１のコンピュータ上の別の第１の利用量負担との組み合わせであり、
前記複数の次元の内の前記別の１つの前記調整された利用量は、前記複数の次元の内の前記別の１つに対して前記利用量テストによって生成される。
【０１１８】
７．先行条項の何れかの前記方法であって、前記利用量テストは、前記第１のコンピュータ上のリソース負荷の前記複数の次元の内の異なる次元に対し、前記変更可能な目標利用量、前記実利用量、前記調整された利用量、及び、前記第１の利用量負担の異なる値を格納する前記能力を有する。
【０１１９】
８．先行条項の何れかの前記方法であって、前記複数の次元は、ＯＳの基本的な動作を測定する。
【０１２０】
９．条項１〜８の何れかの前記方法であって、前記第１のコンピュータは物理的なコンピュータである。
【０１２１】
１０．条項１〜８の何れかの前記方法であって、前記第１のコンピュータは物理コンピュータ上の仮想マシンである。
【０１２２】
１１．条項１０の前記方法であって、前記反復の前記後の１回で、前記調整された利用量は、前記物理コンピュータのリソースへのアクセスにおける変更を受けている前記仮想マシンを修正しようと、更に調整される。
【０１２３】
１２．先行条項の何れかの前記方法であって、前記利用量テストは、前記第１のコンピュータ上の単一カーネルオペレーティングシステムにおいて実行される。
【０１２４】
１３．先行条項の何れかの前記方法であって、前記利用量テストは、汎用オペレーティングシステムにおいて実行される。
【０１２５】
１４．先行条項の何れかの前記方法であって、前記変更可能な目標利用量は、前記第１のコンピュータの前記複数の次元の内の前記特定の１つの全利用量とゼロ利用量の間の中間値に変更可能である。
【０１２６】
１５．先行条項の何れかの前記方法であって、前記異なる次元の前記変更可能な目標利用量は、時間が経てば変化し、前記利用量テストは、前記変更可能な目標利用量が変更されたことに応答して新たな一組の反復を実行する。
【０１２７】
１６．先行条項の何れかの前記方法であって、前記異なる次元の前記変更可能な目標利用量は、ユーザによって決定される。
【０１２８】
１７．条項１〜１５の何れかの前記方法であって、前記異なる次元の前記変更可能な目標利用量は、アルゴリズムによって自動的に決定される。
【０１２９】
１８．先行条項の何れかの前記方法であって、更に、前記複数の次元に対する、前記実利用量と、前記実利用量と前記変更可能な目標利用量との間の差異を報告することを備える。
【０１３０】
１９．先行条項の何れかの前記方法であって、前記利用量テストは、前記第１のコンピュータの前記リソース負荷の前記複数の次元に対する前記変更可能な目標利用量を実現する試みにおいて、前記第１のコンピュータの前記リソース負荷の前記複数の次元に対する前記実利用量を引き起こすＰＩＤコントローラ出力を有するＰＩＤコントローラループを含む。
【０１３１】
２０．コンピュータリソース負荷の複数の次元を、前記コンピュータリソース負荷の前記複数の次元の容量をテストするために、調整可能に生成する方法であって、
前記方法は、第１のコンピュータ上で、前記第１のコンピュータ上のリソース負荷の前記複数の次元を生成する利用量テストを実行することを備え、
前記複数の次元は、プロセッサ利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の内の少なくとも２つを含み、
前記利用量テストは、前記複数の次元の２つ以上の各次元について、前記第１のコンピュータ上の前記リソース負荷の前記各次元を、ＰＩＤコントローラを用いて、前記第１のコンピュータ上の前記リソース負荷の前記各次元の変更可能な目標利用量に等しい量で生成する試みの反復を実行する。
【０１３２】
２１．コンピュータリソース負荷の複数の次元を、コンピュータリソース負荷の複数の次元の可用性を調整可能にテストするために、調整可能に生成するように構成された装置であって、
プロセッサ、メモリ、及び、メモリ内の命令を含む第１のコンピュータを備え、
前記命令は、第１のコンピュータ上で、前記第１のコンピュータのリソース負荷の前記複数の次元を生成する利用量テストの実行を実施し、
前記複数の次元は、プロセッサ利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の内の少なくとも２つを含み、
前記利用量テストは、前記複数の次元の２つ以上の各次元について、前記第１のコンピュータ上の前記リソース負荷の前記各次元を、前記第１のコンピュータ上の前記リソース負荷の前記各次元の変更可能な目標利用量に等しい量で生成する試みの反復を実行し、
前記利用量テストは、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の特定の１つの実利用量を測定し、
前記実利用量は、少なくとも、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの調整された利用量と、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つへの第１の利用量負担との組み合わせであり、
前記調整された利用量は、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つに対して前記利用量テストによって生成され、
前記第１の利用量負担は、前記第１のコンピュータ上で生成され、前記第１の利用量負担は、前記第１のコンピュータ上において前記利用量テストの外側で生成され、
前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つは、前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つが前記変更可能な目標利用量を有するような、前記複数の次元の内の前記２つ以上の次元の１つであり、
前記利用量テストは、（ｉ）前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの前記実利用量と、（ｉｉ）前記第１のコンピュータ上の前記リソース負荷の前記複数の次元の内の前記特定の１つの前記変更可能な目標利用量との間の不一致の是正を試みるために、前記調整された利用量を調整する。
【０１３３】
２２．コンピュータリソース負荷の複数の次元を、前記コンピュータリソース負荷の前記複数の次元の容量をテストするために、調整可能に生成するように構成された装置であって、
プロセッサ、メモリ、及び、メモリ内の命令を含む第１のコンピュータを備え、
前記命令は、第１のコンピュータ上で、前記第１のコンピュータのリソース負荷の前記複数の次元を生成する利用量テストの実行を実施し、
前記複数の次元は、プロセッサ利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の内の少なくとも２つを含み、
前記利用量テストは、前記複数の次元の２つ以上の各次元について、前記第１のコンピュータ上の前記リソース負荷の前記各次元を、ＰＩＤコントローラを用いて、前記第１のコンピュータ上の前記リソース負荷の前記各次元の変更可能な目標利用量に等しい量で生成する試みの反復を実行する。
【０１３４】
開示された技術は、上記で詳述した好ましい実施態様及び実施例を参照しているが、これらの実施例は、限定的な意味ではなく例示的な意味で意図されていると理解されるべきである。開示された技術の精神及び添付の特許請求の範囲の技術的範囲内における変更及び組み合わせは、当業者が容易に想到するであろうことが予期される。
【図１】
2018532194.tif 000003
【図２】
2018532194.tif 000004
【図３】
2018532194.tif 000005
【図４】
2018532194.tif 000006
【図５】
2018532194.tif 000007
【図６】
2018532194.tif 000008
【図７】
2018532194.tif 000009
【図８】
2018532194.tif 000010
【図９】
2018532194.tif 000011
【図１０】
2018532194.tif 000012
【図１１】
2018532194.tif 000013
【図１２】
2018532194.tif 000014
【図１３】
2018532194.tif 000015
【図１４】
2018532194.tif 000016
【手続補正書】
【提出日】平成29年7月28日(2017.7.28)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【背景技術】
【０００１】
背景技術の項で論じる内容は、単に背景技術の項で言及したことによる先行技術であると決め付けるべきではない。同様に、背景技術の項で言及された、或いは、背景技術の項の内容に関連する問題は、先行技術において既に認識されていると決め付けるべきではない。背景技術の項の内容は、単に、それ自体で自発的に請求項に記載の発明の実施に対応し得る異なるアプローチを表すに過ぎない。 
【０００２】
負荷ジェネレータは、コンピュータの最大リソース負荷容量を測定するために最大負荷を作成できる。しかし、既存の負荷ジェネレータは、任意の負荷を作成することはできない。また、既存の負荷ジェネレータは、一連のテストを実行し、単一の測定基準をコンピュータリソースの可用性に割り当てることができる。しかしながら、既存の負荷ジェネレータは、様々なタイプのコンピュータリソースの、特に任意のロードにおけるきめの細かい測定ができない。 
【０００３】
米国特許出願公開第２０１４／０６８３３５号は、負荷時における目標性能を満足するサービスプロバイダシステム１１２の能力をテストしようとするサービスプロバイダシステム１１２上の負荷を生じさせるために、増加的にプロビジョニングするクラウドリソース１２２及びｖＵｓｅｒ１２０Ａ〜１２０Ｈを開示している。前記目標は、典型的には、合意したサービスレベル、一般にサービス内容合意書（ＳＬＡ）として知られている、によって指定される。米国特許出願公開第２０１４／０６８３３５号は、サーバ１１４が、対象負荷の生成を要求されるであろうクラウドリソース（例えば、クラウドリソース１２２）を予測することを説明している。米国特許出願公開第２０１４／０６８３３５号は、ｖＵｓｅｒをシミュレートし、サービスプロバイダシステム１１２上に負荷を生じさせるために、外部のリソース（例えば、クラウドリソース１２２）のプロビジョニングを必要とする。多数のｖＵｓｅｒをシミュレートするためにサーバ及び他のクラウドベースのリソースを追加する必要があるという前提は、マシン自体のハードウェアを使用する該マシンで負荷を生じさせることと相反する。米国特許出願公開第２０１４／０６８３３５号は、指定されたリソース利用量を生成することには関心がない。それどころか、米国特許出願公開第２０１４／０６８３３５号は、リソース利用量とは関係なく、負荷時の性能を測定している。
【０００４】
従って、任意のレベルの様々なタイプのコンピュータリソースのリソース負荷容量の決定に役立つ負荷ジェネレータを開発する機会が生じる。 
【発明の概要】
【０００５】
本技術の一態様は、コンピュータリソース負荷の複数の次元の容量をテストするためにコンピュータリソース負荷の複数の次元を調整可能に生成する方法である。
【０００６】
利用量テストは、第１のコンピュータ上のリソース負荷の複数の次元を生成する。ここで、該複数の次元は、プロセッサ利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の内の少なくとも２つを含む。前記利用量テストは、第１のコンピュータ上のリソース負荷の前記各次元の変更可能な目標利用量に等しい量で、前記第１のコンピュータ上の前記リソース負荷の各次元を生成する試みの反復を実行する。利用量テストは、（ｉ）第１のコンピュータ上のリソース負荷の複数の次元の内の特定の１つの実利用量と、（ｉｉ）第１のコンピュータ上のリソース負荷の複数の次元の内の前記特定の１つの変更可能な目標利用量との間の不一致の是正を試みるために、生成された負荷を調整する。 
【０００７】
開示される技術の他の特徴及び態様は、以下の図面、明細書及び特許請求の範囲に示される。
【図面の簡単な説明】
【０００８】
添付の図面は、例示を目的としており、本開示の１以上の実装のための可能な構造及びプロセス動作の例を提供するためだけに供せられる。これらの図面は、本開示の精神及び範囲から逸脱することなく、当業者によってなされ得る形態及び詳細における如何なる変更も決して制限しない。発明内容のより完全な理解は、以下の図面と併せて考慮するとき、詳細な説明及び特許請求の範囲を参照することによって導き出すことができ、図面を通して同様の参照番号は同様の要素を指し示す。
【０００９】
【図１】リソース利用量テストを実行するための環境例を示すブロック図である。
【００１０】
【図２】単一カーネル上で実行されるリソース利用量テストアプリケーションを示す簡略ブロック図である。
【図３】汎用オペレーティングシステム上で実行されるリソース利用量テストアプリケーションを示す簡略ブロック図である。
【図４】単一カーネル上で実行されるリソース利用量テストアプリケーションを示す簡略ブロック図である。
【図５】汎用オペレーティングシステム上で実行されるリソース利用量テストアプリケーションを示す簡略ブロック図である。
【００１１】
【図６】所望のレベルのリソース負荷を生成する複数の閉ループを有する利用量テストアプリケーションのブロック図の一例である。
【００１２】
【図７】特定のコンピュータリソースの実利用量を含む様々な構成要素の簡略化された表示である。
【００１３】
【図８】開ループ負荷ジェネレータに対する閉ループ負荷ジェネレータの経時的な優れた性能を示すグラフである。
【００１４】
【図９】ＣＰＵの様々な変更可能な目標利用量における開ループ負荷ジェネレータに対する閉ループ負荷ジェネレータの優れた性能を示すグラフである。
【００１５】
【図１０】コンピュータリソース負荷の複数の次元の性能を同時に示すグラフである。
【００１６】
【図１１】基礎的なリソースが十分な仮想マシンにおけるＣＰＵ負荷誤差のヒストグラムである。
【００１７】
【図１２】基礎的なリソースが不十分な仮想マシンにおけるＣＰＵ負荷誤差のヒストグラムである。
【００１８】
【図１３】様々な物理サーバ上の仮想マシンの複数のインスタンスで実行されるリソース利用量テストアプリケーションを備えたデータセンタクラウドの単純化されたブロック図である。
【００１９】
【図１４】コンピュータシステムの一例のブロック図である。
【発明を実施するための形態】
【００２０】
以下の詳細な説明は図面を参照してなされる。開示された技術を説明するための例示的な実施態様を説明する。但し、例示的な実施態様は、開示された技術の範囲を限定するものではなく、当該範囲は特許請求の範囲によって規定される。当業者であれば、以下の説明に様々な均等な変形があることを認識するであろう。
【００２１】
図１は、リソース利用量テストを実行するための環境例を示すブロック図である。
【００２２】
仮想マシンオペレーティングシステム２０または仮想マシンインスタンスは、仮想マシンオペレーティングシステム２０に割り当てられた仮想マシンハードウェア２８ａ上で動作する。仮想マシンオペレーティングシステム２０は、物理サーバ１０ａ上で実行される仮想化ソフトウェア３０ａによって管理される。仮想化ソフトウェア３０ａは、追加の仮想マシンを管理することもできる。仮想化ソフトウェア３０ａは、ネイティブであってもホストされていてもよく、１以上の仮想マシンを管理し、同じコンピュータハードウェアリソース上のオペレーティングシステムの複数の同時インスタンスを許可する。コンピュータハードウェアリソースは、ネットワーククラウドとして示されるネットワーク２によって相互接続された物理サーバ１０ａ〜１０ｚを含む。物理サーバ１０ａ〜１０ｚは、プロセッサ、メモリ、及び、本明細書で説明する技術を実行するコンピュータによって実行可能なコンピュータ可読命令を有する持続性コンピュータ可読媒体を含む。任意の数のサーバ１０ａ〜１０ｚがネットワーク２上に存在してもよく、任意の数の仮想マシン２０が各物理サーバ１０ａ〜１０ｚ上に存在してもよい。例えば、仮想化ソフトウェア３０ｙは物理サーバ１０ｙ上で実行しており、物理サーバ１０ｚは実行中の仮想化ソフトウェアを有していない。
【００２３】
仮想マシンオペレーティングシステム２０は、リソース利用量テストアプリケーション２２ａが実行される環境である。リソース利用量テストアプリケーション２２ａは、リソース負荷容量テスト２３ａのリソース調整を行う。調整されるリソース負荷の様々なタイプまたは次元の例には、ＣＰＵまたはプロセス利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元が含まれる。
【００２４】
物理サーバ１０ｚは、実行中の仮想化ソフトウェアを有していない。リソース負荷容量テスト２３ｚのリソース調整は、リソース負荷容量テスト２３ａのリソース調整と同様に機能するが、物理マシンオペレーティングシステム１９上の非仮想コンテキストにおいて機能する。
【００２５】
また、 図２〜図５は、汎用オペレーティングシステムまたは単一カーネル（ｕｎｉｋｅｒｎｅｌ）上で実行されるリソース利用量テストアプリケーションを示す簡略ブロック図である。
【００２６】
図２は、単一カーネルオペレーティングシステム５２をサポートする仮想マシンインスタンス２０を示す。単一カーネルオペレーティングシステム５２は、オペレーティングシステムの任意の態様の検査を可能にする単一のアドレス空間を提供する。従って、単一カーネルオペレーティングシステム５２は、リソース利用量テストアプリケーション２２ａによって実行される負荷生成の正確さを保証するのに役立つ。
【００２７】
図３は、汎用オペレーティングシステム５０をサポートする仮想マシンインスタンス２０を示す。汎用オペレーティングシステム５０は、オペレーティングシステムのアスペクトの検査を不明瞭にするリソース利用量テストアプリケーション２２ａに係るアドレス空間を含む複数のアドレス空間をユーザ空間４０に提供する。従って、汎用オペレーティングシステム５０は、リソース利用量テストアプリケーション２２ａによって実行される負荷の生成の正確さを阻害する。それにも拘わらず、リソース利用量テストアプリケーション２２ａは、汎用オペレーティングシステム５０における別手段と比較すると改善された負荷ジェネレータである。
【００２８】
図４は、 仮想マシンではなく物理マシン１９が単一カーネルオペレーティングシステム５２をサポートしている点を除いて、図２と同様である。 図５は、 仮想マシンではなく物理マシン１９が汎用オペレーティングシステム５０をサポートしている点を除いて、図３と同様である。
【００２９】
図６は、所望のレベルのリソース負荷を生成する複数の閉ループを有する利用量テストアプリケーションのブロック図の一例である。
【００３０】
利用量テスト制御部２５０は、リソース負荷の様々な次元について、変更可能な目標利用量２０８，２１８，２２８，及び２３８を生成する。 変更可能な目標利用量２０８，２１８，２２８，及び２３８は、ユーザによって手動で指定されるか、または、利用量テストアプリケーションによって自動的に生成される。 自動的に生成された変更可能な目標利用量２０８，２１８，２２８，及び２３８は、利用量テストアプリケーションを複数回実行するために、或る範囲の値を繰り返すことができる。
【００３１】
ネットワークＩ／Ｏジェネレータ２０２は、１秒当たりの送信パケット及び１秒当たりのトランザクションの内の少なくとも何れか１つのような、ネットワーク利用量次元のリソース負荷を生成する。ネットワークＩ／Ｏジェネレータ２０２によって生成されたネットワーク利用量次元のリソース負荷の量は、生成された負荷２０６と称される。生成された負荷２０６は、最初は変更可能な目標利用量２０８に等しい。実利用量２０７は、コンピュータ上で実際に生成されるネットワーク利用量次元のリソース負荷の量である。コンピュータ上のネットワーク利用量次元の実利用量２０７は、ネットワークＩ／Ｏジェネレータ２０２によって生成された生成された負荷２０６に加えて負担（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）を含むため、実利用量２０７は、生成された負荷２０６とは異なる。実利用量２０７が実利用量の測定及び出力２４０によって測定された後、実利用量２０７が閉ループコントローラ２０４に提供される。実利用量２０７に対応して、閉ループコントローラ２０４は、実利用量２０７を変更可能な目標利用量２０８に等しくしようとして、生成された負荷２０６を変更する。
【００３２】
他の３つのループも同様であるが、完全を期すために説明する。
【００３３】
大容量記憶装置Ｉ／Ｏジェネレータ２１２は、１秒当たりの読み出し動作及び１秒当たりの書き込み動作の内の少なくとも何れか１つのような、大容量記憶装置利用量次元のリソース負荷を生成する。大容量記憶装置Ｉ／Ｏジェネレータ２１２によって生成された大容量記憶装置利用量次元のリソース負荷の量は、生成された負荷２１６と称される。生成された負荷２１６は、最初は変更可能な目標利用量２１８に等しい。実利用量２１７は、コンピュータ上で実際に生成される大容量記憶装置利用量次元のリソース負荷の量である。コンピュータ上の大容量記憶装置利用量次元の実利用量２１７は、大容量記憶装置Ｉ／Ｏジェネレータ２１２によって生成された生成された負荷２１６に加えて負担（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）を含むため、実利用量２１７は、生成された負荷２１６とは異なる。実利用量２１７が実利用量の測定及び出力２４０によって測定された後、実利用量２１７が閉ループコントローラ２１４に提供される。実利用量２１７に対応して、閉ループコントローラ２１４は、実利用量２１７を変更可能な目標利用量２１８に等しくしようとして、生成された負荷２１６を変更する。
【００３４】
主メモリＩ／Ｏジェネレータ２２２は、１秒当たりの読み出し動作及び１秒当たりの書き込み動作の内の少なくとも何れか１つのような、主メモリ利用量次元のリソース負荷を生成する。主メモリＩ／Ｏジェネレータ２２２によって生成された主メモリ利用量次元のリソース負荷の量は、生成された負荷２２６と称される。生成された負荷２２６は、最初は変更可能な目標利用量２２８に等しい。実利用量２２７は、コンピュータ上で実際に生成されたネットワーク利用量次元のリソース負荷の量である。コンピュータ上の主メモリ利用量次元の実利用量２２７は、主メモリＩ／Ｏジェネレータ２２２によって生成された生成された負荷２２６に加えて負担（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）を含むため、実利用量２２７は、生成された負荷２２６とは異なる。実利用量２２７が実利用量の測定及び出力２４０によって測定された後、実利用量２２７が閉ループコントローラ２２４に提供される。実利用量２２７に対応して、閉ループコントローラ２２４は、実利用量２２７を変更可能な目標利用量２２８に等しくしようとして、閉ループコントローラ２２４は、生成された負荷２２６を変更する。
【００３５】
プロセッサまたはＣＰＵ負荷ジェネレータ２３２は、使用されたＣＰＵ秒数及び合計ＣＰＵ秒数の内の少なくとも何れか１つのような、プロセッサ利用量次元のリソース負荷を生成する。プロセッサジェネレータ２３２によって生成されたプロセッサ利用量次元のリソース負荷の量は、生成された負荷２３６と称される。生成された負荷２３６は、最初は変更可能な目標利用量２３８に等しい。実利用量２３７は、コンピュータ上で実際に生成されるプロセッサ負荷利用量次元のリソース負荷の量である。コンピュータ上のプロセッサ利用量次元の実利用量２３７は、プロセッサ負荷ジェネレータ２３２によって生成された生成された負荷２３６に加えて負担（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）を含むため、実利用量２３７は生成された負荷２３６とは異なる。実利用量２３７が実利用量の測定及び出力２４０によって測定された後、実利用量２３７が閉ループコントローラ２３４に提供される。実利用量２３７に対応して、閉ループコントローラ２３４は、実利用量２３７を変更可能な目標利用量２３８に等しくしようとして、閉ループコントローラ２２４は、生成された負荷２３６を変更する。
【００３６】
閉ループコントローラ２０４，２１４，２２４及び２３４は、ハードウェアまたはソフトウェアまたはそれらの組み合わせに実装され得る。より一般的には、閉ループコントローラ２０４，２１４，２２４及び２３４は、カスケード補償またはフィードバック補償を実行することができる。カスケード補償の例は、比例＋積分（ＰＩ）制御、比例＋微分（ＰＤ）制御、比例＋積分＋微分（ＰＩＤ）制御である。閉ループをチューニングする例としては、マニュアルチューニング、Ｚｉｅｇｌｅｒ−Ｎｉｃｈｏｌｓチューニング、Ｔｙｒｅｕｓ−Ｌｕｙｂｅｎチューニング、ソフトウェアツールチューニング、Ｃｏｈｅｎ‐Ｃｏｏｎチューニング等がある。
【００３７】
利用量テストアプリケーションの例では、リソース負荷の４つの次元が示されているが、他の例では、３つ，２つ，１つ、または４つ以上の次元を含むこともできる。他の例では、リソース負荷の特定の次元を、該リソース負荷の特定の次元の様々な特性に分割することもできる。
【００３８】
図７は、特定のコンピュータリソースの実利用量を含む様々な構成要素を簡略化して表示している。
【００３９】
特定のコンピュータリソースの実利用量３０１は、例えば、図６の実利用量２０７，２１７，２２７，または２３７であり得る。実利用量は、特定のコンピュータリソースの生成された負荷３１０だけでなく、追加の利用量負担（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）を含む。特定のコンピュータリソースの生成された負荷３０１は、例えば、図６の生成された負荷２０６，２１６，２２６，または２３６とすることができる。
【００４０】
コンピュータ負荷の他の次元に対して、負荷ジェネレータの閉ループから幾つかの示されている負担（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）が生じる。例えば、特定のコンピュータリソースの実利用量３０１がプロセッサ負荷次元の実利用量２３７である例では、コンピュータ負荷のプロセッサ負荷次元に対する追加の負担は、ネットワーク利用量次元、大容量記憶装置利用量次元、及び／または、主メモリ利用量次元の負荷ジェネレータの閉ループから生じる。斯かる追加の負担は、異なるコンピュータリソース＃１（例えば、ネットワーク利用量次元）の実利用量３２１、異なるコンピュータリソース＃２（例えば、大容量記憶装置の次元）の実利用量３３１、及び、異なるコンピュータリソース＃３（例えば、主メモリ利用量次元）の実利用量３４１から夫々生じる特定のコンピュータリソース（例えば、プロセッサ負荷次元）の利用量負担３２０，３３０，及び３４０として示される。
【００４１】
他の示されている負担（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）は、利用量テストの外部から、更にコンピュータの外部からでも発生する。特定のコンピュータリソースの利用量３５０，３６０，及び３７０は、夫々、利用量テスト外の仮想マシン上のプロセス３５１、利用量テスト外の物理マシン上のプロセス３６１、及び、仮想マシン外の物理サーバ上のプロセス３７１から生じる。厳密に言えば、利用量テスト外の仮想マシン上のプロセス３５１、利用量テスト外の物理マシン上のプロセス３６１、及び、仮想マシン外の物理サーバ上のプロセス３７１は、リソースの可用性についての上限を表すことができる。しかし、斯かる上限は、負の負担によって説明され得る。
【００４２】
図８は、開ループ負荷ジェネレータに対する閉ループ負荷ジェネレータの経時的な優れた性能を示すグラフである。
【００４３】
このグラフは、１０％のＣＰＵ使用率で１２０秒間に亘る、単純なＣＰＵ負荷ジェネレータ（開ループ４２０）対ＰＩＤ制御ＣＰＵ負荷ジェネレータ（閉ループ４１０）の初期比較を示している。ｘ軸は時間を表し、ｙ軸は観測された誤差を表す。この場合、正の誤差は不十分なＣＰＵ負荷を表し、負の誤差は過剰なＣＰＵ負荷を表す。両方のコントローラにおいて誤差は、標準的なシステムの変動により平均誤差値を中心に変動している。しかし、ＰＩＤ制御の平均誤差は、明らかに開ループの場合よりも０に近い。
【００４４】
図９は、ＣＰＵの様々な変更可能な目標利用量における開ループ負荷ジェネレータに対する閉ループ負荷ジェネレータの優れた性能を示すグラフである。
【００４５】
図８と同じ比較が、目標ＣＰＵ負荷の範囲に亘って行われる。今回は、ｘ軸が目標負荷であり、ｙ軸がテスト期間に亘って観測された平均誤差値である。エラーバーは、テスト実行中に観察された最大及び最小誤差値を示す。ほぼ全てのＰＩＤ制御（閉ループ５１０）の場合では平均誤差値は０であるのに対し、単純なＣＰＵジェネレータ（開ループ５２０）では目標ＣＰＵ負荷に依存する明確なバイアスを有する。 また、両方のジェネレータは、０％と１００％の負荷でほぼ同様に機能している。
【００４６】
図１０は、コンピュータリソース負荷の複数の次元の性能を同時に示すグラフである。
【００４７】
このグラフは、軽負荷のハイパーバイザ上の仮想マシン内の単一カーネルベースの負荷ジェネレータを使用して、３つの負荷ジェネレータを実行したときに測定された誤差（グラフの分散（ｖａｒｉａｎｃｅ）のパーセンテージ）を示している。
【００４８】
ジェネレータは以下のように構成されている。
【００４９】
ＣＰＵ使用率（トレース６５０）：５０％
【００５０】
メモリ読み出し（トレース６１０）：１０００ＭＢ／秒
【００５１】
メモリ書き込み（トレース６２０）：１００ＭＢ／秒
【００５２】
ディスク読み出し（トレース６３０）：２０ＭＢ／秒
【００５３】
ディスク書き込み（トレース６４０）：２ＭＢ／秒
【００５４】
各結果カテゴリにおいて、平均誤差は０であるが、分散が多少存在する。更に、これは、複数の負荷ジェネレータが同時に協働し、時間が経てば正確な負荷を生成できることを示している。
【００５５】
図１１は、基礎的なリソースが十分な仮想マシンにおけるＣＰＵ負荷誤差のヒストグラムである。
【００５６】
この負荷生成技術は、所望のレベルの性能を提供するために、ハイパーバイザプラットフォームの能力を比較する。テストツールに特定の負荷を設定することにより、リソース利用量テストアプリケーションは、ハイパーバイザがその量のコンピューティングリソースをテストツールに提供できるか否かを判断できる。
【００５７】
この第１のヒストグラムは、軽負荷のハイパーバイザ上の単一カーネルベースの負荷ジェネレータにおける測定されたＣＰＵ負荷誤差の範囲を示している。このテストの実行時の平均誤差は０％である（前述の初期テストの場合と同様）。更に、ヒストグラムは、０％誤差付近での誤差値の密な集積性を示している。
【００５８】
図１２は、基礎的なリソースが不十分な仮想マシンにおけるＣＰＵ負荷誤差のヒストグラムである。
【００５９】
この第２のヒストグラムは、同じテスト構成を示しているが、過負荷状態のハイパーバイザ上で実行されたものである。測定された誤差は、このテストシステム上ではるかに大きな分散を有している。更に、このテスト実行時の平均誤差は概ね−５％であり、ＰＩＤ制御負荷ジェネレータがＣＰＵリソースの不足のために所望の負荷を生成できなかったことを示している。
【００６０】
図１３は、様々な物理サーバ上の仮想マシンの複数のインスタンスで実行されるリソース利用量テストアプリケーションを備えたデータセンタクラウドの単純化されたブロック図である。
【００６１】
ネットワーク７００は、物理サーバ７１０及び物理サーバ７４０等の複数の物理サーバを含む。各物理サーバは、物理サーバ７１０上の仮想マシンＯＳ７２０及び７２１、物理サーバ７４０上の仮想マシンＯＳ７５０及び７５１等の複数の仮想マシンインスタンスをサポートする。各仮想マシンは、仮想マシンＯＳ７２０，７２１，７５０，及び７５１上に各別に存在するリソース利用量テストアプリケーション７３０，７３１，７６０，７６１等のリソース利用量テストアプリケーションをサポートする。この例では、２つの仮想マシンが示されているが、各物理サーバは任意の数の仮想マシンをサポートできる。
【００６２】
一実施形態では、制御ソフトウェアは、（仮想マシンが既にインストールされていない限り仮想マシンと共に）リソース利用量テストアプリケーションを遠隔でインストールする。そして、制御ソフトウェアは、物理サーバの全て（または幾らかのサブセット）の仮想マシンの全て（または幾らかのサブセット）でリソース利用量テストアプリケーションの利用量を実行し、結果を集計する。最終的な出力は、コンピュータ負荷の様々な次元に対して多数の仮想マシンをサポートするデータセンタクラウドの総容量を示すことができる。
【００６３】
図１４は、一実施態様におけるコンピュータシステムの一例のブロック図である。コンピュータシステム９１０は、典型的には、バスサブシステム９１２を介して複数の周辺装置と通信する少なくとも１つのプロセッサ９１４を含む。これらの周辺装置は、メモリ装置及びファイル記憶装置サブシステムを一例として含む記憶装置サブシステム９２４、ユーザインタフェース入力装置９２２、ユーザインタフェース出力装置９２０、及びネットワークインタフェースサブシステム９１６を含む。入力及び出力装置は、ユーザのコンピュータシステム９１０との相互作用を可能にする。ネットワークインタフェースサブシステム９１６は、他のコンピュータシステムの対応するインタフェース装置とのインタフェースを含む外部ネットワークとのインタフェースを提供する。
【００６４】
ユーザインタフェース入力装置９２２は、キーボード; マウス、トラックボール、タッチパッド、または、グラフィックタブレット等のポインティング装置; スキャナ; ディスプレイに組み込まれたタッチスクリーン；音声認識システム及びマイクロホン等の音声入力装置、及び、他のタイプの入力装置を含むことができる。一般に、用語「入力装置」の使用は、コンピュータシステム９１０に情報を入力するための全ての可能なタイプの装置及び方法を含むことを意図している。
【００６５】
ユーザインタフェース出力装置９２０は、ディスプレイサブシステム、プリンタ、ファックス装置、または、オーディオ出力装置等の非視覚的ディスプレイを含むことができる。ディスプレイサブシステムは、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）等のフラットパネル装置、投影装置、または、可視画像を生成するための他の何らかの機構を含むことができる。ディスプレイサブシステムは、また、オーディオ出力装置等の非視覚的ディスプレイを提供してもよい。一般に、用語「出力装置」の使用は、コンピュータシステム９１０からユーザまたは別の機械またはコンピュータシステムに情報を出力するための全ての可能なタイプの装置及び方法を含むことを意図している。
【００６６】
記憶装置サブシステム９２４は、本明細書に記載のモジュール及び方法の一部または全部の機能を提供するプログラミングおよびデータ構成を格納する。これらのソフトウェアモジュールは、一般にプロセッサ９１４単独で、または、他のプロセッサと組み合わせて実行される。
【００６７】
記憶装置サブシステムで使用されるメモリ９２６は、プログラム実行中に命令およびデータを記憶するための主ランダムアクセスメモリ（ＲＡＭ）９３０、及び、固定命令が記憶される読み出し専用メモリ（ＲＯＭ）９３２を含む複数のメモリを含むことができる。ファイル記憶装置サブシステム９２８は、プログラム及びデータファイルのための持続性記憶装置を提供することができ、ハードディスクドライブ、対応するリムーバブルメディアを伴うフロッピーディスクドライブ、ＣＤ−ＲＯＭドライブ、光学ドライブ、または、リムーバブルメディアカートリッジを含むことができる。特定の実装態様の機能を実装するモジュールは、記憶装置サブシステム９２４のファイル記憶装置サブシステム９２８によって、または、プロセッサがアクセス可能な他のマシン内に格納することができる。
【００６８】
バスサブシステム９１２は、コンピュータシステム９１０の様々な構成要素及びサブシステムを意図したように互いに通信させるための機構を提供する。バスサブシステム９１２は、単一のバスとして図式的に示されているが、バスサブシステムの代替的な実装態様では、複数のバスを使用することができる。
【００６９】
コンピュータシステム９１０は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または、その他のデータ処理システムまたはコンピューティング装置を含む様々なタイプのコンピュータシステムであり得る。コンピュータ及びネットワークの刻々と変化する本質のために、図９に示すコンピュータシステム９１０の説明は、 一例として意図されているに過ぎない。 コンピュータシステム９１０の他の多くの構成は、図９に示すコンピュータシステムより多くの、または、より少ない構成要素を有することが可能である。
［特定の実施態様］
【００７０】
本技術の一態様は、コンピュータリソース負荷の複数の次元の容量をテストするためにコンピュータリソース負荷の複数の次元を調整可能に生成する方法である。
【００７１】
該方法は、第１のコンピュータ上で、第１のコンピュータ上のリソース負荷の複数の次元を生成する利用量テストを実行することを含む。
【００７２】
該複数の次元は、プロセッサ利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の内の少なくとも２つを含む。
【００７３】
利用量テストは、複数の次元の２つ以上の各次元について、第１のコンピュータ上のリソース負荷の各次元における負荷を、第１のコンピュータ上の各次元の変更可能な目標利用量に等しい実利用量を引き起こすと予測される量で生成することの反復を実行する。
【００７４】
利用量テストは、第１のコンピュータ上のリソース負荷の発生中に複数の次元の内の特定の１つの前記実利用量を測定する。
【００７５】
実利用量は、少なくとも以下の結果である。
【００７６】
（ｉ）第１のコンピュータ上のリソース負荷の複数の次元の内の特定の１つに対して生成された負荷。前記生成された負荷は、利用量テストによって生成される。
【００７７】
（ｉｉ）第１のコンピュータ上の複数の次元の内の特定の１つへの第１の利用量負担。前記第１の利用量負担は、前記第１のコンピュータ上、及び、利用量テストの外側で生成される。
【００７８】
第１のコンピュータ上のリソース負荷の複数の次元の内の前記特定の１つは、第１のコンピュータ上のリソース負荷の複数の次元の内の前記特定の１つが変更可能な目標利用量を有するような、複数の次元の内の２つ以上の次元の１つである。
【００７９】
利用量テストは、（ｉ）生成された負荷と第１の利用量負担から生じる実利用量と、（ｉｉ）第１のコンピュータ上の複数の次元の内の前記特定の１つの変更可能な目標利用量との間の不一致の是正により複数の次元の内の前記特定の１つに対する第１のコンピュータの目標利用量を実現し維持することを試みるために、生成された負荷を調整する。
【００８０】
一実施形態では、反復の後の１回は、前記反復の前の１回の後にある。前記反復の前の１回で、利用量テストが実利用量を測定し、それに応答して、前記反復の後の１回で利用量テストが生成された負荷を調整する。
【００８１】
一実施形態では、反復の後の１回は、前記反復の前の１回の後にある。前記反復の前の１回で、利用量テストが、第１のコンピュータ上の複数の次元の内の特定の１つの実利用量を測定し、それに応答して、前記反復の後の１回で、利用量テストが、第１のコンピュータ上の複数の次元の内の特定の１つに対して生成された負荷を調整する。
【００８２】
一実施形態では、第１のコンピュータ上のリソース負荷の複数の次元の内の特定の１つの実利用量は、少なくとも、少なくとも以下の結果である。
【００８３】
（ｉ）生成された負荷、
【００８４】
（ｉｉ）第１の利用量負担、及び
【００８５】
（ｉｉｉ）第１のコンピュータ上の複数の次元の内の別の１つの第２の利用量負担。前記第２の利用量負担は、前記複数の次元の前記別の１つに対して利用量テストによって生成される。
【００８６】
一実施形態では、第１のコンピュータ上の複数の次元の内の前記特定の１つはプロセッサ利用量次元であり、前記複数の次元の前記別の１つは主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の何れかである。
【００８７】
一実施形態では、前記複数の次元の内の２つ以上は、第１のコンピュータ上の複数の次元の内の特定の１つと前記複数の次元の内の別の１つを含む。前記複数の次元の内の別の１つに対して利用量テストによって測定された実利用量は、少なくとも以下の結果である。
【００８８】
（ｉ）第１のコンピュータ上の複数の次元の内の別の１つに対して生成された負荷。前記複数の次元の内の別の１つに対して生成された負荷は、前記複数の次元の内の別の１つに対して利用量テストによって生成される。
【００８９】
（ｉｉ）第１のコンピュータ上において利用量テストの外側で生成された第１のコンピュータ上の別の第１の利用量負担。
【００９０】
一実施形態では、利用量テストは、第１のコンピュータ上のリソース負荷の複数の次元の内の異なる次元に対し、変更可能な目標利用量、実利用量、生成された負荷、及び、第１の利用量負担の異なる値を格納する能力を有する。
【００９１】
一実施形態では、前記複数の次元は、ＯＳの基本的な動作を測定する。
【００９２】
一実施形態では、第１のコンピュータは物理的なコンピュータである。
【００９３】
一実施形態では、第１のコンピュータは、物理コンピュータ上の仮想マシンである。
【００９４】
一実施形態では、反復の後の１回で、生成された負荷は、物理コンピュータのリソースへのアクセスにおける変更を受けている仮想マシンを修正しようと、更に調整される。
【００９５】
一実施形態では、利用量テストは、第１のコンピュータ上の単一カーネルオペレーティングシステムにおいて実行される。
【００９６】
一実施形態では、利用量テストは、汎用オペレーティングシステムにおいて実行される。
【００９７】
一実施形態では、変更可能な目標利用量は、第１のコンピュータの複数の次元の内の特定の１つの全利用量とゼロ利用量の間の中間値に変更可能である。
【００９８】
一実施形態では、異なる次元の変更可能な目標利用量は、時間が経てば変化し、利用量テストは、変更可能な目標利用量が変更されたことに応答して新たな一組の反復を実行する。
【００９９】
一実施形態では、異なる次元の変更可能な目標利用量は、ユーザによって決定される。
【０１００】
一実施形態では、異なる次元の変更可能な目標利用量は、アルゴリズムによって自動的に決定される。
【０１０１】
一実施形態は、更に、以下を備える。
【０１０２】
複数の次元に対する、実利用量と、該実利用量と変更可能な目標利用量との間の差異を報告すること。
【０１０３】
一実施形態では、利用量テストは、第１のコンピュータのリソース負荷の複数の次元に対する変更可能な目標利用量を実現する試みにおいて、第１のコンピュータのリソース負荷の複数の次元に対する実利用量を引き起こすＰＩＤコントローラ出力を有するＰＩＤコントローラループを含む。
【０１０４】
本技術の別の態様は、コンピュータリソース負荷の複数の次元の容量をテストするためにコンピュータリソース負荷の複数の次元を調整可能に生成する方法である。
【０１０５】
該方法は、第１のコンピュータ上で、第１のコンピュータ上のリソース負荷の複数の次元を生成する利用量テストを実行することを備える。
【０１０６】
該複数の次元は、プロセッサ利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の内の少なくとも２つを含む。
【０１０７】
利用量テストは、複数の次元の２つ以上の各次元について、第１のコンピュータ上のリソース負荷の各次元における負荷を、ＰＩＤコントローラを用いて、第１のコンピュータ上の各次元の変更可能な目標利用量に等しい実利用量を引き起こすと予測される量で生成することの反復を実行する。
【０１０８】
本技術の別の態様は、コンピュータリソース負荷の複数の次元の可用性を調整可能にテストするためにコンピュータリソース負荷の複数の次元を調整可能に生成するように構成された装置であって、プロセッサ、メモリ、及び、本明細書に記載の方法を実施するメモリに格納された命令を含む第１のコンピュータを備える。
【０１０９】
本技術の別の態様は、コンピュータリソース負荷の複数の次元の容量をテストするためにコンピュータリソース負荷の複数の次元を調整可能に生成するコードを格納する非一時的コンピュータ可読媒体である。該コードは、本明細書で説明する方法を実行するための命令を含む。
【０１１０】
開示された技術の該方法及び他の実施態様は、以下の特徴、及び／または、開示された追加の方法に関連して記載される特徴の内の１つ以上を含むことができる。簡潔さのために、本出願で開示される特徴の組み合わせは、個別に列挙されず、また、該特徴の各基本集合を用いて繰り返さない。
【０１１１】
他の実施形態は、上述の方法の何れかをコンピュータに実施させるコンピュータプログラム命令を含む有形のコンピュータ可読メモリを含むことができる。更に別の実施形態は、メモリと、メモリに格納された命令を実行して上述の方法の何れかを実行するように動作可能な１つ以上のプロセッサとを含むシステムを含むことができる。
【０１１２】
以下の条項は、コンピュータリソース負荷の複数の次元の容量をテストするためにコンピュータリソース負荷の複数の次元を調整可能に生成する様々な実施例の態様を記述する。
【０１１３】
１．コンピュータリソース負荷の複数の次元を、前記コンピュータリソース負荷の前記複数の次元の容量をテストするために、調整可能に生成する方法であって、前記方法は、
第１のコンピュータ上で、前記第１のコンピュータのリソース負荷の前記複数の次元を生成する利用量テストを実行することを有し、
前記複数の次元は、プロセッサ利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の内の少なくとも２つを含み、
前記利用量テストは、前記複数の次元の２つ以上の各次元について、前記第１のコンピュータ上の前記リソース負荷の前記各次元における負荷を、前記第１のコンピュータ上の前記各次元の変更可能な目標利用量に等しい実利用量を引き起こすと予測される量で生成することの反復を実行し、
前記利用量テストは、前記第１のコンピュータ上の前記リソース負荷の発生中に前記複数の次元の内の特定の１つの前記実利用量を測定し、
前記実利用量は、少なくとも、前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つに対して生成された負荷と、前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つへの第１の利用量負担との結果であり、
前記生成された負荷は、前記利用量テストによって生成され、
前記第１の利用量負担は、前記第１のコンピュータ上、及び、前記利用量テストの外側で生成され、
前記利用量テストは、（ｉ）前記生成された負荷と前記第１の利用量負担から生じる前記実利用量と、（ｉｉ）前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つの前記変更可能な目標利用量との間の不一致の是正により前記複数の次元の内の前記特定の１つに対する前記第１のコンピュータ上の前記目標利用量を実現し維持することを試みるために、前記生成された負荷を調整する。
【０１１４】
２．条項１の前記方法であって、前記反復の後の１回は、前記反復の前の１回の後にあり、前記反復の前記前の１回で、前記利用量テストが前記実利用量を測定し、それに応答して、前記反復の前記後の１回で前記利用量テストが前記生成された負荷を調整する。
【０１１５】
３．条項１〜２の何れかの前記方法であって、前記反復の後の１回は、前記反復の前の１回の後にあり、前記反復の前記前の１回で、前記利用量テストが前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つの前記実利用量を測定し、それに応答して、前記反復の前記後の１回で、前記利用量テストが、前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つの前記生成された負荷を調整する。
【０１１６】
４．条項１〜３の何れかの前記方法であって、前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つの前記実利用量は、少なくとも、前記生成された負荷、前記第１の利用量負担、及び、前記第１のコンピュータ上の前記複数の次元の内の別の１つの第２の利用量負担の組み合わせであり、前記第２の利用量負担は、前記複数の次元の前記別の１つに対して前記利用量テストによって生成される。
【０１１７】
５．条項４の前記方法であって、前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つは前記プロセッサ利用量次元であり、前記複数の次元の前記別の１つは前記主メモリ利用量次元、前記大容量記憶装置利用量次元、及び、前記ネットワーク利用量次元の何れかである。
【０１１８】
６．先行条項の何れかの前記方法であって、前記複数の次元の内の前記２つ以上は、前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つと前記複数の次元の内の別の１つを含み、
前記複数の次元の内の前記別の１つに対して前記利用量テストによって測定された前記実利用量は、少なくとも、前記第１のコンピュータ上の前記複数の次元の内の前記別の１つに対して生成された負荷と、前記第１のコンピュータ上において前記利用量テストの外側で生成された前記第１のコンピュータ上の別の第１の利用量負担との組み合わせであり、
前記複数の次元の内の前記別の１つに対する前記生成された負荷は、前記複数の次元の内の前記別の１つに対して前記利用量テストによって生成される。
【０１１９】
７．先行条項の何れかの前記方法であって、前記利用量テストは、前記第１のコンピュータ上のリソース負荷の前記複数の次元の内の異なる次元に対し、前記変更可能な目標利用量、前記実利用量、前記生成された負荷、及び、前記第１の利用量負担の異なる値を格納する前記能力を有する。
【０１２０】
８．先行条項の何れかの前記方法であって、前記複数の次元は、ＯＳの基本的な動作を測定する。
【０１２１】
９．条項１〜８の何れかの前記方法であって、前記第１のコンピュータは物理的なコンピュータである。
【０１２２】
１０．条項１〜８の何れかの前記方法であって、前記第１のコンピュータは物理コンピュータ上の仮想マシンである。
【０１２３】
１１．条項１０の前記方法であって、前記反復の前記後の１回で、前記生成された負荷は、前記物理コンピュータのリソースへのアクセスにおける変更を受けている前記仮想マシンを修正しようと、更に調整される。
【０１２４】
１２．先行条項の何れかの前記方法であって、前記利用量テストは、前記第１のコンピュータ上の単一カーネルオペレーティングシステムにおいて実行される。
【０１２５】
１３．先行条項の何れかの前記方法であって、前記利用量テストは、汎用オペレーティングシステムにおいて実行される。
【０１２６】
１４．先行条項の何れかの前記方法であって、前記変更可能な目標利用量は、前記第１のコンピュータの前記複数の次元の内の前記特定の１つの全利用量とゼロ利用量の間の中間値に変更可能である。
【０１２７】
１５．先行条項の何れかの前記方法であって、前記異なる次元の前記変更可能な目標利用量は、時間が経てば変化し、前記利用量テストは、前記変更可能な目標利用量が変更されたことに応答して新たな一組の反復を実行する。
【０１２８】
１６．先行条項の何れかの前記方法であって、前記異なる次元の前記変更可能な目標利用量は、ユーザによって決定される。
【０１２９】
１７．条項１〜１５の何れかの前記方法であって、前記異なる次元の前記変更可能な目標利用量は、アルゴリズムによって自動的に決定される。
【０１３０】
１８．先行条項の何れかの前記方法であって、更に、前記複数の次元に対する、前記実利用量と、前記実利用量と前記変更可能な目標利用量との間の差異を報告することを備える。
【０１３１】
１９．先行条項の何れかの前記方法であって、前記利用量テストは、前記第１のコンピュータの前記リソース負荷の前記複数の次元に対する前記変更可能な目標利用量を実現する試みにおいて、前記第１のコンピュータの前記リソース負荷の前記複数の次元に対する前記実利用量を引き起こすＰＩＤコントローラ出力を有するＰＩＤコントローラループを含む。
【０１３２】
２０．コンピュータリソース負荷の複数の次元を、前記コンピュータリソース負荷の前記複数の次元の容量をテストするために、調整可能に生成する方法であって、
前記方法は、第１のコンピュータ上で、前記第１のコンピュータ上のリソース負荷の前記複数の次元を生成する利用量テストを実行することを備え、
前記複数の次元は、プロセッサ利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の内の少なくとも２つを含み、
前記利用量テストは、前記複数の次元の２つ以上の各次元について、前記第１のコンピュータ上の前記リソース負荷の前記各次元における負荷を、ＰＩＤコントローラを用いて、前記第１のコンピュータ上の前記各次元の変更可能な目標利用量に等しい実利用量を引き起こすと予測される量で生成することの反復を実行する。
【０１３３】
２１．コンピュータリソース負荷の複数の次元を、コンピュータリソース負荷の複数の次元の可用性を調整可能にテストするために、調整可能に生成するように構成された装置であって、
プロセッサ、メモリ、及び、メモリ内の命令を含む第１のコンピュータを備え、
前記命令は、第１のコンピュータ上で、前記第１のコンピュータのリソース負荷の前記複数の次元を生成する利用量テストの実行を実施し、
前記複数の次元は、プロセッサ利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の内の少なくとも２つを含み、
前記利用量テストは、前記複数の次元の２つ以上の各次元について、前記第１のコンピュータ上の前記リソース負荷の前記各次元における負荷を、前記第１のコンピュータ上の前記各次元の変更可能な目標利用量に等しい実利用量を引き起こすと予測される量で生成することの反復を実行し、
前記利用量テストは、前記第１のコンピュータ上の前記リソース負荷の発生中に前記複数の次元の内の特定の１つの前記実利用量を測定し、
前記実利用量は、少なくとも、前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つに対して生成された負荷と、前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つへの第１の利用量負担との結果であり、
前記生成された負荷は、前記利用量テストによって生成され、
前記第１の利用量負担は、前記第１のコンピュータ上、及び、前記利用量テストの外側で生成され、
前記利用量テストは、（ｉ）前記生成された負荷と前記第１の利用量負担から生じる前記実利用量と、（ｉｉ）前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つの前記変更可能な目標利用量との間の不一致の是正により前記複数の次元の内の前記特定の１つに対する前記第１のコンピュータ上の前記目標利用量を実現し維持することを試みるために、前記生成された負荷を調整する。
【０１３４】
２２．コンピュータリソース負荷の複数の次元を、前記コンピュータリソース負荷の前記複数の次元の容量をテストするために、調整可能に生成するように構成された装置であって、
プロセッサ、メモリ、及び、メモリ内の命令を含む第１のコンピュータを備え、
前記命令は、第１のコンピュータ上で、前記第１のコンピュータのリソース負荷の前記複数の次元を生成する利用量テストの実行を実施し、
前記複数の次元は、プロセッサ利用量次元、主メモリ利用量次元、大容量記憶装置利用量次元、及び、ネットワーク利用量次元の内の少なくとも２つを含み、
前記利用量テストは、前記複数の次元の２つ以上の各次元について、前記第１のコンピュータ上の前記リソース負荷の前記各次元における負荷を、ＰＩＤコントローラを用いて、前記第１のコンピュータ上の前記各次元の変更可能な目標利用量に等しい実利用量を引き起こすと予測される量で生成することの反復を実行する。
【０１３５】
開示された技術は、上記で詳述した好ましい実施態様及び実施例を参照しているが、これらの実施例は、限定的な意味ではなく例示的な意味で意図されていると理解されるべきである。開示された技術の精神及び添付の特許請求の範囲の技術的範囲内における変更及び組み合わせは、当業者が容易に想到するであろうことが予期される。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータリソース負荷の複数の次元を、前記コンピュータリソース負荷の前記複数の次元の容量をテストするために、調整可能に生成する方法であって、
前記方法は、第１のコンピュータ（１９，２０）上で、前記第１のコンピュータのリソース負荷（２０６，２１６，２２６，２３６）の前記複数の次元を生成する利用量テスト（２２ａ，２２ｚ）を実行することを有し、
前記複数の次元は、プロセッサ利用量（２３６）次元、主メモリ利用量（２２６）次元、大容量記憶装置利用量（２１６）次元、及び、ネットワーク利用量（２０６）次元の内の少なくとも２つを含み、
前記利用量テストは、前記複数の次元の２つ以上の各次元について、前記第１のコンピュータ上の前記リソース負荷の前記各次元における負荷を、前記第１のコンピュータ上の前記各次元の変更可能な目標利用量（２０８，２１８，２２８，２３８）に等しい実利用量を引き起こすと予測される量で生成することの反復を実行し、
前記利用量テストは、前記第１のコンピュータ上の前記リソース負荷の発生中に前記複数の次元の内の特定の１つの前記実利用量（２４０）を測定し、
前記実利用量は、少なくとも、前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つに対して生成された負荷と、前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つへの第１の利用量負担との結果（３０１）であり、
前記生成された負荷は、前記利用量テストによって生成され、
前記第１の利用量負担は、前記第１のコンピュータ上、及び、前記利用量テストの外側で生成され、
前記利用量テストは、（ｉ）前記生成された負荷と前記第１の利用量負担から生じる前記実利用量と、（ｉｉ）前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つの前記変更可能な目標利用量との間の不一致の是正により前記複数の次元の内の前記特定の１つに対する前記第１のコンピュータ上の前記目標利用量（図８〜１２）を実現し維持することを試みるために、前記生成された負荷（２３ａ，２３ｚ）を調整する
ことを特徴とする方法。
【請求項２】
前記反復の後の１回は、前記反復の前の１回の後にあり、前記反復の前記前の１回で、前記利用量テストが前記実利用量を測定し、それに応答して、前記反復の前記後の１回で前記利用量テストが前記生成された負荷を調整することを特徴とする請求項１に記載の方法。
【請求項３】
前記反復の後の１回は、前記反復の前の１回の後にあり、前記反復の前記前の１回で、前記利用量テストが前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つの前記実利用量を測定し、それに応答して、前記反復の前記後の１回で、前記利用量テストが、前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つの前記生成された負荷を調整することを特徴とする請求項１〜２の何れか１項に記載の方法。
【請求項４】
前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つの前記実利用量は、少なくとも、前記生成された負荷、前記第１の利用量負担、及び、前記第１のコンピュータ上の前記複数の次元の内の別の１つの第２の利用量負担の組み合わせであり、
前記第２の利用量負担は、前記複数の次元の前記別の１つに対して前記利用量テストによって生成されることを特徴とする請求項１〜３の何れか１項に記載の方法。
【請求項５】
前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つは前記プロセッサ利用量次元であり、前記複数の次元の前記別の１つは前記主メモリ利用量次元、前記大容量記憶装置利用量次元、及び、前記ネットワーク利用量次元の何れかであることを特徴とする請求項４に記載の方法。
【請求項６】
前記複数の次元の内の前記２つ以上は、前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つと前記複数の次元の内の別の１つを含み、
前記複数の次元の内の前記別の１つに対して前記利用量テストによって測定された前記実利用量は、少なくとも、前記第１のコンピュータ上の前記複数の次元の内の前記別の１つに対して生成された負荷と、前記第１のコンピュータ上において前記利用量テストの外側で生成された前記第１のコンピュータ上の別の第１の利用量負担との組み合わせであり、
前記複数の次元の内の前記別の１つに対する前記生成された負荷は、前記複数の次元の内の前記別の１つに対して前記利用量テストによって生成されることを特徴とする請求項１〜５の何れか１項に記載の方法。
【請求項７】
前記利用量テストは、前記第１のコンピュータ上のリソース負荷の前記複数の次元の内の異なる次元に対し、前記変更可能な目標利用量、前記実利用量、前記生成された負荷、及び、前記第１の利用量負担の異なる値を格納する前記能力を有することを特徴とする請求項１〜６の何れか１項に記載の方法。
【請求項８】
前記複数の次元は、ＯＳの基本的な動作を測定することを特徴とする請求項１〜７の何れか１項に記載の方法。
【請求項９】
前記第１のコンピュータは物理的なコンピュータであることを特徴とする請求項１〜８の何れか１項に記載の方法。
【請求項１０】
前記第１のコンピュータは物理コンピュータ上の仮想マシンであることを特徴とする請求項１〜８の何れか１項に記載の方法。
【請求項１１】
前記反復の前記後の１回で、前記生成された負荷は、前記物理コンピュータのリソースへのアクセスにおける変更を受けている前記仮想マシンを修正しようと、更に調整されることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記利用量テストは、前記第１のコンピュータ上の単一カーネルオペレーティングシステムにおいて実行されることを特徴とする請求項１〜１１の何れか１項に記載の方法。
【請求項１３】
前記利用量テストは、汎用オペレーティングシステムにおいて実行されることを特徴とする請求項１〜１２の何れか１項に記載の方法。
【請求項１４】
前記変更可能な目標利用量は、前記第１のコンピュータの前記複数の次元の内の前記特定の１つの全利用量とゼロ利用量の間の中間値に変更可能であることを特徴とする請求項１〜１３の何れか１項に記載の方法。
【請求項１５】
前記異なる次元の前記変更可能な目標利用量は、時間が経てば変化し、前記利用量テストは、前記変更可能な目標利用量が変更されたことに応答して新たな一組の反復を実行することを特徴とする請求項１〜１４の何れか１項に記載の方法。
【請求項１６】
前記異なる次元の前記変更可能な目標利用量は、ユーザによって決定されることを特徴とする請求項１〜１５の何れか１項に記載の方法。
【請求項１７】
前記異なる次元の前記変更可能な目標利用量は、アルゴリズムによって自動的に決定されることを特徴とする請求項１〜１５の何れか１項に記載の方法。
【請求項１８】
更に、前記複数の次元に対する、前記実利用量と、前記実利用量と前記変更可能な目標利用量との間の差異を報告することを備えることを特徴とする請求項１〜１７の何れか１項に記載の方法。
【請求項１９】
前記利用量テストは、前記第１のコンピュータの前記リソース負荷の前記複数の次元に対する前記変更可能な目標利用量を実現する試みにおいて、前記第１のコンピュータの前記リソース負荷の前記複数の次元に対する前記実利用量を引き起こすＰＩＤコントローラ出力を有するＰＩＤコントローラループを含むことを特徴とする請求項１〜１８の何れか１項に記載の方法。
【請求項２０】
コンピュータリソース負荷の複数の次元を、コンピュータリソース負荷の複数の次元の可用性を調整可能にテストするために、調整可能に生成するように構成された装置であって、
プロセッサ、メモリ、及び、メモリ内の命令を含む第１のコンピュータを備え、
前記命令は、第１のコンピュータ（１９，２０）上で、前記第１のコンピュータのリソース負荷（２０６，２１６，２２６，２３６）の前記複数の次元を生成する利用量テスト（２２ａ，２２ｚ）の実行を実施し、
前記複数の次元は、プロセッサ利用量（２３６）次元、主メモリ利用量（２２６）次元、大容量記憶装置利用量（２１６）次元、及び、ネットワーク利用量（２０６）次元の内の少なくとも２つを含み、
前記利用量テストは、前記複数の次元の２つ以上の各次元について、前記第１のコンピュータ上の前記リソース負荷の前記各次元における負荷を、前記第１のコンピュータ上の前記各次元の変更可能な目標利用量（２０８，２１８，２２８，２３８）に等しい実利用量を引き起こすと予測される量で生成することの反復を実行し、
前記利用量テストは、前記第１のコンピュータ上の前記リソース負荷の発生中に前記複数の次元の内の特定の１つの前記実利用量（２４０）を測定し、
前記実利用量は、少なくとも、前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つに対して生成された負荷と、前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つへの第１の利用量負担との結果（３０１）であり、
前記生成された負荷は、前記利用量テストによって生成され、
前記第１の利用量負担は、前記第１のコンピュータ上、及び、前記利用量テストの外側で生成され、
前記利用量テストは、（ｉ）前記生成された負荷と前記第１の利用量負担から生じる前記実利用量と、（ｉｉ）前記第１のコンピュータ上の前記複数の次元の内の前記特定の１つの前記変更可能な目標利用量との間の不一致の是正により前記複数の次元の内の前記特定の１つに対する前記第１のコンピュータ上の前記目標利用量（図８〜１２）を実現し維持することを試みるために、前記生成された負荷（２３ａ，２３ｚ）を調整する
ことを特徴とする装置。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】変更
【補正の内容】
【図６】
2018532194.tif 000017
【手続補正４】
【補正対象書類名】図面
【補正対象項目名】図７
【補正方法】変更
【補正の内容】
【図７】
2018532194.tif 000018
【手続補正書】
【提出日】平成30年4月6日(2018.4.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項７
【補正方法】変更
【補正の内容】
【請求項７】
前記利用量テストは、前記第１のコンピュータ上のリソース負荷の前記複数の次元の内の異なる次元に対し、前記変更可能な目標利用量、前記実利用量、前記生成された負荷、及び、前記第１の利用量負担の異なる値を格納する能力を有することを特徴とする請求項１〜６の何れか１項に記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】変更
【補正の内容】
【００３４】
主メモリＩ／Ｏジェネレータ２２２は、１秒当たりの読み出し動作及び１秒当たりの書き込み動作の内の少なくとも何れか１つのような、主メモリ利用量次元のリソース負荷を生成する。主メモリＩ／Ｏジェネレータ２２２によって生成された主メモリ利用量次元のリソース負荷の量は、生成された負荷２２６と称される。生成された負荷２２６は、最初は変更可能な目標利用量２２８に等しい。実利用量２２７は、コンピュータ上で実際に生成された主メモリ利用量次元のリソース負荷の量である。コンピュータ上の主メモリ利用量次元の実利用量２２７は、主メモリＩ／Ｏジェネレータ２２２によって生成された生成された負荷２２６に加えて負担（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）を含むため、実利用量２２７は、生成された負荷２２６とは異なる。実利用量２２７が実利用量の測定及び出力２４０によって測定された後、実利用量２２７が閉ループコントローラ２２４に提供される。実利用量２２７に対応して、閉ループコントローラ２２４は、実利用量２２７を変更可能な目標利用量２２８に等しくしようとして、閉ループコントローラ２２４は、生成された負荷２２６を変更する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】
プロセッサまたはＣＰＵ負荷ジェネレータ２３２は、使用されたＣＰＵ秒数及び合計ＣＰＵ秒数の内の少なくとも何れか１つのような、プロセッサ利用量次元のリソース負荷を生成する。プロセッサ負荷ジェネレータ２３２によって生成されたプロセッサ利用量次元のリソース負荷の量は、生成された負荷２３６と称される。生成された負荷２３６は、最初は変更可能な目標利用量２３８に等しい。実利用量２３７は、コンピュータ上で実際に生成されるプロセッサ利用量次元のリソース負荷の量である。コンピュータ上のプロセッサ利用量次元の実利用量２３７は、プロセッサ負荷ジェネレータ２３２によって生成された生成された負荷２３６に加えて負担（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）を含むため、実利用量２３７は生成された負荷２３６とは異なる。実利用量２３７が実利用量の測定及び出力２４０によって測定された後、実利用量２３７が閉ループコントローラ２３４に提供される。実利用量２３７に対応して、閉ループコントローラ２３４は、実利用量２３７を変更可能な目標利用量２３８に等しくしようとして、閉ループコントローラ２２４は、生成された負荷２３６を変更する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３９
【補正方法】変更
【補正の内容】
【００３９】
特定のコンピュータリソースの実利用量３０１は、例えば、図６の実利用量２０７，２１７，２２７，または２３７であり得る。実利用量は、特定のコンピュータリソースの生成された負荷３１０だけでなく、追加の利用量負担（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）を含む。特定のコンピュータリソースの生成された負荷３１０は、例えば、図６の生成された負荷２０６，２１６，２２６，または２３６とすることができる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１１９
【補正方法】変更
【補正の内容】
【０１１９】
７．先行条項の何れかの前記方法であって、前記利用量テストは、前記第１のコンピュータ上のリソース負荷の前記複数の次元の内の異なる次元に対し、前記変更可能な目標利用量、前記実利用量、前記生成された負荷、及び、前記第１の利用量負担の異なる値を格納する能力を有する。
【国際調査報告】
2018532194.tif 000019
2018532194.tif 000020