特許第6530462号(P6530462)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アマゾン・テクノロジーズ・インコーポレーテッドの特許一覧

特許6530462コンピュータリソースサービスの性能能力の決定及び監視
<>
  • 特許6530462-コンピュータリソースサービスの性能能力の決定及び監視 図000002
  • 特許6530462-コンピュータリソースサービスの性能能力の決定及び監視 図000003
  • 特許6530462-コンピュータリソースサービスの性能能力の決定及び監視 図000004
  • 特許6530462-コンピュータリソースサービスの性能能力の決定及び監視 図000005
  • 特許6530462-コンピュータリソースサービスの性能能力の決定及び監視 図000006
  • 特許6530462-コンピュータリソースサービスの性能能力の決定及び監視 図000007
  • 特許6530462-コンピュータリソースサービスの性能能力の決定及び監視 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6530462
(24)【登録日】2019年5月24日
(45)【発行日】2019年6月12日
(54)【発明の名称】コンピュータリソースサービスの性能能力の決定及び監視
(51)【国際特許分類】
   G06F 11/34 20060101AFI20190531BHJP
   G06F 11/30 20060101ALI20190531BHJP
【FI】
   G06F11/34 128
   G06F11/30 140C
   G06F11/30 172
【請求項の数】13
【外国語出願】
【全頁数】33
(21)【出願番号】特願2017-194858(P2017-194858)
(22)【出願日】2017年10月5日
(62)【分割の表示】特願2016-515005(P2016-515005)の分割
【原出願日】2014年5月20日
(65)【公開番号】特開2018-22520(P2018-22520A)
(43)【公開日】2018年2月8日
【審査請求日】2017年10月16日
(31)【優先権主張番号】13/899,449
(32)【優先日】2013年5月21日
(33)【優先権主張国】US
(31)【優先権主張番号】13/899,407
(32)【優先日】2013年5月21日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】507303550
【氏名又は名称】アマゾン・テクノロジーズ・インコーポレーテッド
(74)【代理人】
【識別番号】100098394
【弁理士】
【氏名又は名称】山川 茂樹
(74)【代理人】
【識別番号】100064621
【弁理士】
【氏名又は名称】山川 政樹
(72)【発明者】
【氏名】エリシャ,サイモン,ジェレミー
【審査官】 北元 健太
(56)【参考文献】
【文献】 米国特許出願公開第2012/0137003(US,A1)
【文献】 国際公開第2011/043011(WO,A1)
【文献】 特開2012−198631(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/28 − 11/36
G06F 11/07
(57)【特許請求の範囲】
【請求項1】
ユーザデバイスの一つ以上のプロセッサに、コンピュータリソースサービスの性能を評価する方法を実行させる命令を格納する持続性コンピュータ可読記憶媒体であって、前記方法は、前記ユーザデバイスによって実行される以下のステップ:
ネットワークを介して、前記コンピュータリソースサービスの性能を監視するシステムに、前記コンピュータリソースサービスの複数のコンピュータシステムの構成の中からの特定のコンピュータシステムの構成の性能メトリックに対する要求を送信するステップであって、前記性能を監視するシステム前記複数の構成の性能メトリックを収集するために、前記コンピュータシステムのうちの異なるものでの試験仮想マシンを利用し、前記要求は、前記コンピュータシステムの特定の構成を識別する1つ以上のパラメータ、を含むフィルタを指定し、前記一つ以上のパラメータは、前記コンピュータリソースサービスの前記コンピュータシステムの場所、前記コンピュータリソースサービスの前記コンピュータシステムの構成、前記試験仮想マシンの構成、前記試験仮想マシンによって実行されたベンチマーク試験、性能メトリックの種類、または前記性能メトリックに関連する統計値のうちの少なくとも一つを含む、前記送信するステップと、
前記ネットワークを介して、前記性能を監視するシステムから、前記要求における前記一つ以上のフィルタによって指定された前記性能メトリックのセットを含む応答を受信するステップであって、前記性能メトリックのセットは、前記コンピュータシステムの前記構成の異なるものの性能メトリックを含む、前記受信するステップと、
前記受信した性能メトリックのセットに少なくとも部分的に基づいて、前記コンピュータリソースサービスの前記コンピュータシステムの構成の中から一つの構成を選択するステップと、
前記選択された構成に従って、前記コンピュータリソースサービス内で、新たな仮想マシンを始動させる要求を送信するステップと、
含む、持続性コンピュータ可読記憶媒体。
【請求項2】
前記試験仮想マシンの構成から前記構成を選択するステップは、
前記仮想マシンの所望の性能を決定することと、
前記所望の性能を、前記性能メトリックのセットと比較することと、
前記比較に少なくとも部分的に基づいて、前記試験仮想マシンの構成を決定することと、
を含む、請求項1に記載の持続性コンピュータ可読記憶媒体。
【請求項3】
前記方法は、
前記性能メトリックのセットに少なくとも部分的に基づいて、記仮想マシンを始動させるための前記コンピュータシステムから少なくとも一つのコンピュータシステムを決定することをさらに含む、請求項1に記載の持続性コンピュータ可読記憶媒体。
【請求項4】
前記方法は、
前記性能メトリックのセットに少なくとも部分的に基づいて、前記仮想マシンを始動させるための前記コンピュータシステムの少なくとも一つの場所を決定することをさらに含む、請求項1に記載の持続性コンピュータ可読記憶媒体。
【請求項5】
コンピュータリソースサービスの性能を評価するコンピュータ実装方法であって、
前記コンピュータリソースサービスによって、コンピュータシステムの複数の異なる構成を提供することと、
ネットワークインタフェースを介して、前記コンピュータシステムの前記複数の異なる構成のうちの特定の一つの性能メトリックの要求を受信することであって、前記要求は、前記構成のうちの前記特定の一つを識別する一つ以上のパラメータを指定し、前記一つ以上のパラメータは、前記コンピュータリソースサービスの前記コンピュータシステムの場所、前記コンピュータリソースサービスの前記コンピュータシステムの構成、性能メトリックの種類、または前記性能メトリックに関連する統計値のうちの少なくとも一つを含む、前記受信することと、
前記要求で指定された前記一つ以上のパラメータに少なくとも部分的に基づいて、前記コンピュータシステムのうちの特定の一つの前記性能メトリックのセットを決定することであって、前記性能メトリックのセットは、前記コンピュータリソースサービスにおけるコンピュータシステムの場所分布と、前記コンピュータシステムのンピュータリソースの差異のうちの少なくとも一方を表し、前記性能メトリックのセットは、前記コンピュータリソースサービスの前記性能を評価して、該コンピュータシステム上で少なくとも一つの新たな仮想マシンを始動させるように要求するための少なくとも一つのコンピュータシステムを選択するシステムによ利用れる、前記決定することと、
前記ネットワークインタフェースを介して、前記決定された前記性能メトリックのセットを含む応答を送信することと、
を含む、コンピュータ実装方法。
【請求項6】
前記方法は、
前記コンピュータリソースサービスの前記コンピュータシステム上で実行する試験仮想マシンから前記性能メトリックを決定することをさらに含む、請求項に記載のコンピュータ実装方法。
【請求項7】
前記方法は、
前記応答を送信することに応答して、前記性能メトリックのセットに関連する少なくとも一つのコンピュータシステム上で、少なくとも一つの仮想マシンを始動させる要求を受信することをさらに含む、請求項に記載のコンピュータ実装方法。
【請求項8】
前記一つ以上のパラメータは、記試験仮想マシンの構成、前記試験仮想マシンによって実行されたベンチマーク試験うちの少なくとも一つをさらに含む、請求項6に記載のコンピュータ実装方法。
【請求項9】
コンピュータリソースサービスの性能を評価するコンピュータ実装方法であって、
ネットワークインタフェースを介して、前記コンピュータリソースサービスの性能を監視するシステムに、前記コンピュータリソースサービスのンピュータシステムの複数の構成の中から前記コンピュータシステムの特定の構成の性能メトリックの要求を送信することであって、前記性能を監視するシステムは、前記コンピュータシステムのうちの異なるもので試験仮想マシンを利用して、前記複数の構成の性能メトリックを収集し、前記要求は、前記コンピュータシステムの前記特定の構成を識別する一つ以上のパラメータを指定し、前記一つ以上のパラメータは、前記コンピュータリソースサービスの前記コンピュータシステムの場所、前記コンピュータリソースサービスの前記コンピュータシステムの構成、前記試験仮想マシンの構成、前記試験仮想マシンによって実行されたベンチマーク試験、性能メトリックの種類、または前記性能メトリックに関連する統計値のうちの少なくとも一つを含む、前記送信することと、
前記性能を監視するシステムから、前記要求における前記一つ以上のパラメータによって指定された前記性能メトリックのセットを受信することであって、前記性能メトリックのセットは、前記コンピュータリソースサービスにおけるコンピュータシステムの場所分布と、前記コンピュータシステムのンピュータリソースの差異のうちの少なくとも一方を表し、前記性能メトリックのセットは、前記コンピュータリソースサービスの前記性能を評価して、該コンピュータシステム上で少なくとも一つの新たな仮想マシンを始動させるように要求するための少なくとも一つのコンピュータシステムを選択するシステムによ利用れる、前記受信することと、
前記性能メトリックのセットに少なくとも部分的に基づいて、前記コンピュータリソースサービスに関連する動作を実行することと、
を含み、
前記動作を実行することは、
前記コンピュータリソースサービスの前記コンピュータシステムの中から第1のコンピュータシステムおよび第2のコンピュータシステムを決定することであって、前記第1のコンピュータシステムは第1の場所に配置され、前記第2のコンピュータシステムは第2の場所に配置されることと、
前記性能メトリックのセットに少なくとも部分的に基づいて、前記第1のコンピュータシステムが所望の性能で作動していることを判断することと、
前記第1のコンピュータシステムのうちの少なくとも一つで、少なくとも一つの仮想マシンを始動させることと、
を含む、コンピュータ実装方法。
【請求項10】
コンピュータリソースサービスの性能を評価するコンピュータ実装方法であって、
ネットワークインタフェースを介して、前記コンピュータリソースサービスの性能を監視するシステムに、前記コンピュータリソースサービスのコンピュータシステムの複数の構成の中から前記コンピュータシステムの特定の構成の性能メトリックの要求を送信することであって、前記性能を監視するシステムは、前記コンピュータシステムのうちの異なるもので試験仮想マシンを利用して、前記複数の構成の性能メトリックを収集し、前記要求は、前記コンピュータシステムの前記特定の構成を識別する一つ以上のパラメータを指定し、前記一つ以上のパラメータは、前記コンピュータリソースサービスの前記コンピュータシステムの場所、前記コンピュータリソースサービスの前記コンピュータシステムの構成、前記試験仮想マシンの構成、前記試験仮想マシンによって実行されたベンチマーク試験、性能メトリックの種類、または前記性能メトリックに関連する統計値のうちの少なくとも一つを含む、前記送信することと、
前記性能を監視するシステムから、前記要求における前記一つ以上のパラメータによって指定された前記性能メトリックのセットを受信することであって、前記性能メトリックのセットは、前記コンピュータリソースサービスにおけるコンピュータシステムの場所分布と、前記コンピュータシステムのコンピュータリソースの差異のうちの少なくとも一方を表し、前記性能メトリックのセットは、前記コンピュータリソースサービスの前記性能を評価して、該コンピュータシステム上で少なくとも一つの新たな仮想マシンを始動させるように要求するための少なくとも一つのコンピュータシステムを選択するシステムにより利用される、前記受信することと、
前記性能メトリックのセットに少なくとも部分的に基づいて、前記コンピュータリソースサービスに関連する動作を実行することと、
を含み、
前記動作を実行することは、
前記コンピュータリソースサービスの前記コンピュータシステムの中から第1のコンピュータシステムおよび第2のコンピュータシステムを決定することであって、前記第1のコンピュータシステムが第1の構成を含み、前記第2のコンピュータシステムが第2の構成を含むことと、
前記性能メトリックのセットに少なくとも部分的に基づいて、前記第1のコンピュータシステムが、所望の性能で作動していることを判断することと、
前記第1のコンピュータシステムのうちの少なくとも一つで、少なくとも一つの仮想マシンを始動させることと、
を含む、ンピュータ実装方法。
【請求項11】
コンピュータリソースサービスの性能を評価するコンピュータ実装方法であって、
ネットワークインタフェースを介して、前記コンピュータリソースサービスの性能を監視するシステムに、前記コンピュータリソースサービスのコンピュータシステムの複数の構成の中から前記コンピュータシステムの特定の構成の性能メトリックの要求を送信することであって、前記性能を監視するシステムは、前記コンピュータシステムのうちの異なるもので試験仮想マシンを利用して、前記複数の構成の性能メトリックを収集し、前記要求は、前記コンピュータシステムの前記特定の構成を識別する一つ以上のパラメータを指定し、前記一つ以上のパラメータは、前記コンピュータリソースサービスの前記コンピュータシステムの場所、前記コンピュータリソースサービスの前記コンピュータシステムの構成、前記試験仮想マシンの構成、前記試験仮想マシンによって実行されたベンチマーク試験、性能メトリックの種類、または前記性能メトリックに関連する統計値のうちの少なくとも一つを含む、前記送信することと、
前記性能を監視するシステムから、前記要求における前記一つ以上のパラメータによって指定された前記性能メトリックのセットを受信することであって、前記性能メトリックのセットは、前記コンピュータリソースサービスにおけるコンピュータシステムの場所分布と、前記コンピュータシステムのコンピュータリソースの差異のうちの少なくとも一方を表し、前記性能メトリックのセットは、前記コンピュータリソースサービスの前記性能を評価して、該コンピュータシステム上で少なくとも一つの新たな仮想マシンを始動させるように要求するための少なくとも一つのコンピュータシステムを選択するシステムにより利用される、前記受信することと、
前記性能メトリックのセットに少なくとも部分的に基づいて、前記コンピュータリソースサービスに関連する動作を実行することと、
を含み、
前記動作を実行することは、
前記試験仮想マシンの第1の構成と、前記試験仮想マシンの第2の構成を決定することと、
前記性能メトリックのセットに少なくとも部分的に基づいて、前記第1の構成が所望の性能で作動していることを判断することと、
前記第1の構成に従って、前記コンピュータシステム上で少なくとも一つの仮想マシンを始動させることと、
を含む、ンピュータ実装方法。
【請求項12】
コンピュータリソースサービスの性能を評価するコンピュータ実装方法であって、
ネットワークインタフェースを介して、前記コンピュータリソースサービスの性能を監視するシステムに、前記コンピュータリソースサービスのコンピュータシステムの複数の構成の中から前記コンピュータシステムの特定の構成の性能メトリックの要求を送信することであって、前記性能を監視するシステムは、前記コンピュータシステムのうちの異なるもので試験仮想マシンを利用して、前記複数の構成の性能メトリックを収集し、前記要求は、前記コンピュータシステムの前記特定の構成を識別する一つ以上のパラメータを指定し、前記一つ以上のパラメータは、前記コンピュータリソースサービスの前記コンピュータシステムの場所、前記コンピュータリソースサービスの前記コンピュータシステムの構成、前記試験仮想マシンの構成、前記試験仮想マシンによって実行されたベンチマーク試験、性能メトリックの種類、または前記性能メトリックに関連する統計値のうちの少なくとも一つを含む、前記送信することと、
前記性能を監視するシステムから、前記要求における前記一つ以上のパラメータによって指定された前記性能メトリックのセットを受信することであって、前記性能メトリックのセットは、前記コンピュータリソースサービスにおけるコンピュータシステムの場所分布と、前記コンピュータシステムのコンピュータリソースの差異のうちの少なくとも一方を表し、前記性能メトリックのセットは、前記コンピュータリソースサービスの前記性能を評価して、該コンピュータシステム上で少なくとも一つの新たな仮想マシンを始動させるように要求するための少なくとも一つのコンピュータシステムを選択するシステムにより利用される、前記受信することと、
前記性能メトリックのセットに少なくとも部分的に基づいて、前記コンピュータリソースサービスに関連する動作を実行することと、
を含み、
前記動作を実行することは、
前記性能メトリックのセットに少なくとも部分的に基づいて、利用可能なコンピュータリソースを有する前記コンピュータシステムのうちの一つを決定することと、
既存の仮想マシンを、前記コンピュータシステムのうちの一つに移行させることと、
を含む、ンピュータ実装方法。
【請求項13】
コンピュータリソースサービスの性能を評価するシステムであって、
命令を含む少なくとも一つの記憶装置と、
表示装置と、
少なくとも一つの記憶装置および前記表示装置に結合され、および
ネットワークインタフェースを介して、前記コンピュータリソースサービスの性能を監視するシステムに、前記コンピュータリソースサービスの複数のコンピュータシステムの構成の中からの特定のコンピュータシステムの構成の性能メトリックに対する要求を送信することとであって、前記性能を監視するシステムが、前記コンピュータシステムのうちの異なるものでの試験仮想マシンを利用して、前記複数の構成の性能メトリックを収集し、前記要求は、前記コンピュータシステムの前記特定の構成を識別する一つ以上のパラメータを指定し、前記一つ以上のパラメータは、前記コンピュータリソースサービスの前記コンピュータシステムの場所、前記コンピュータリソースサービスの前記コンピュータシステムの構成、前記試験仮想マシンの構成、前記試験仮想マシンによって実行されたベンチマーク試験、性能メトリックの種類、または前記性能メトリックに関連する統計値のうちの少なくとも一つを含む、前記送信することと、
前記性能を監視するシステムから、前記要求における前記一つ以上のパラメータによって指定された前記性能メトリックのセットを含む応答を受信することであって、前記性能メトリックのセットは、該コンピュータリソースサービス上で、少なくとも一つの新たな仮想マシンを始動させるように要求するための前記コンピュータリソースサービスの前記コンピュータシステムの中から少なくとも一つのコンピュータシステムを選択するための前記システムにより利用れる、前記受信することと、
前記表示装置を介して、前記性能メトリックのセットの一部を出力することと、
を含む方法を遂行させる前記命令を実行させるように構成された少なくとも一つのプロセッサと、
を備える、コンピュータリソースサービスの性能を評価するシステム。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本願は、2013年5月21日に出願された、Simon Jeremy Elishaへの「REPORTING PERFORMANCE CAPABILITIES OF A COMPUTER RESOURCE SERVICE」と題する米国特許出願第13/899,449号に関連し、その開示はその全体が参照により本明細書に援用される。
【背景技術】
【0002】
現在、クラウドコンピューティングサービスまたはリモートコンピューティングサービスとときに称される、ネットワークによりアクセス可能なコンピューティングサービスは、コンピューティングにおける選択において柔軟に顧客に提示する。顧客がコンピュータリソースサービス内に新規の仮想マシンインスタンスを作成するか、またはインスタンスをコンピュータリソースサービスに移行するとき、顧客は、コンピュータリソースサービスにおいて実行しているインスタンスのリソース特徴を評定する場合がある。これには、他の可能性の中でもとりわけ、プロセッサの種類及び性能、メモリのサイズ及び性能、入力/出力能力、一時的な記憶装置サイズ、ならびにネットワーク能力が含まれ得る。
【0003】
各インスタンスの種類は、様々な性能プロフィールを有することができ、顧客にある程度の選択を提供する。しかしながら、種々の一貫性の欠如のため、所与の時間及び場所(例えば、特定のデータセンタ)における性能に関する様々なインスタンスの種類間での選択は困難なことがある。例えば、インスタンスは、様々な基礎となる物理的ハードウェア上でホストされる場合があり、それは、インスタンスの実際の性能を変更する場合がある(例えば、より古いハードウェアは、より新しいハードウェアとは様々な性能を示す場合がある)。また、コンピュータリソースサービス内の「混雑した」場所(例えば、ノイジーネイバー)に実装されているインスタンスは、利用者の少ない領域よりも低減した性能を提供する場合がある。したがって、コンピュータリソースサービスのインスタンス内の性能プロフィールの理解は、困難なことがある。
【0004】
実装形態の種々の特徴は、添付の図面と併せて考慮すれば、以下の実装形態の詳細な説明への参照と共により完全に認識され、またよりよく理解され得る。
【図面の簡単な説明】
【0005】
図1】種々の実装形態による、リソース監視ツールがコンピュータリソースサービスを監視することができる環境の例を例示する。
図2】種々の実装形態による、コンピュータリソースサービスの性能を監視するためのプロセスの例を例示する。
図3A】種々の実装形態による、リソース監視ツールがコンピュータリソースサービスを監視することができる環境の別の例を例示する。
図3B】種々の実装形態による、リソース監視ツールがコンピュータリソースサービスを監視することができる環境の別の例を例示する。
図4】種々の実装形態による、コンピュータリソースサービスの性能を監視するためのプロセスの別の例を例示する。
図5】種々の実装形態による、コンピュータリソースサービスの性能メトリックを記憶するためのデータ構造の例を例示する。
図6】種々の実装形態による、コンピュータデバイスのハードウェア構成の例を例示する。
【発明を実施するための形態】
【0006】
本開示の実装形態は、コンピュータリソースサービスの性能を決定及び監視するためのシステム及び方法に関する。コンピュータリソースサービスの性能をリアルタイムで決定する及び監視するために、リソース監視ツールが、コンピュータリソースサービスのコンピュータシステム上で試験仮想マシンを始動することができる。リソース監視ツールは次に、プロセッサ性能、メモリ性能、入力/出力(I/O)性能、及びネットワーク性能などの、試験仮想マシンの性能を経時的に示す種々のメトリックを監視することができる。リソース監視ツールは、監視される性能メトリックを記憶し、選択される性能メトリックをユーザに提供し、該性能メトリックを使用してコンピュータリソースサービスを管理することができる。
【0007】
実装形態によると、性能を正確に測定するために、リソース監視ツールは、コンピュータリソースサービス及びコンピュータリソースサービスのコンピュータリソースを代表して表すコンピュータシステムを試験のために選択することができる。例えば、コンピュータシステムが種々の場所に分散されている場合、リソース監視ツールは、各場所における性能を監視及び比較することができるように種々の場所のコンピュータシステムを選択することができる。同様に、例えば、コンピュータシステムが様々なコンピューティングリソース(様々な種類及び世代のプロセッサ、メモリ、記憶装置など)を含む場合、リソース監視ツールは、様々なコンピューティングリソースを代表して表すコンピュータシステムを選択することができる。したがって、リソース監視ツールは、異なって位置され、構成されるコンピュータシステムの性能を決定及び比較することができる。
【0008】
実装形態では、性能メトリックは、コンピュータリソースサービスのリソースを管理するためにコンピュータリソースサービスによって利用することができる。例えば、コンピューティングリソースをインスタンスに割り当てるとき、コンピュータリソースサービスは、リアルタイムで、性能メトリックを利用して、ユーザの需要に最適なコンピューティングリソースを選択し、コンピューティングリソースの現在の利用を均衡させ、現在利用可能であるか、または十分に利用されていないリソースを選択することができる。同様に、コンピュータリソースサービスは、性能メトリックを利用して、いつコンピュータシステムがサービスに追加されるべきか、またはいつ既存のコンピュータシステムが更新されるべきかを決定することができる。したがって、リソース監視ツールによって提供される性能メトリックは、コンピュータリソースサービスが提供されるコンピュータリソースを効率的及び効果的に管理することを可能にすることができる。同様に、性能メトリックは、ユーザが、いつコンピュータリソースサービス内のコンピューティングリソース及びインスタンスの構成を選択するかの正確な決定を行うことを可能にするために、ユーザに提供され得る。
【0009】
図1は、種々の実装形態による、性能コンピュータリソースサービス102を決定及び監視することができるリソース監視ツール100の例を例示する。図1は、リソース監視ツール100内に含まれる種々の構成要素を例示するが、図1は、監視ツールの一例を例示するものであり、追加の構成要素が追加され得、既存の構成要素が除去され得る。同様に、図1は、コンピュータリソースサービス102内に含まれる種々の構成要素を例示するが、図1は、コンピュータリソースサービスの一例を例示するものであり、追加の構成要素が追加され得、既存の構成要素が除去され得る。
【0010】
実装形態では、リソース監視ツール100は、コンピュータリソースサービス102の性能を決定及び監視するように構成することができる。コンピュータリソースサービス102は、コンピューティングリソースを1つ以上のネットワーク上でサービスとしてユーザに送達するように構成することができる。例えば、ユーザは、使用回数によって、例えば、1時間単位で、コンピューティングリソースをセットアップすることが可能であり得る。図1に例示される通り、コンピュータリソースサービス102は、いくつかのコンピュータシステム、例えば、コンピュータシステムのセット104、コンピュータシステムのセット106、及びコンピュータシステムのセット108を含むことができる。コンピュータリソースをサービスとして提供するために、コンピュータリソースサービス102は、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108のいずれかにおいて1つ以上のマシンインスタンス(MI)を実行するように構成され得る。
【0011】
MIは、コンピュータシステム104、コンピュータシステム106、またはコンピュータシステム108のうちの1つ以上に対応することができる。同様に、MIは、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108のうちの1つ以上によってホストされる仮想マシン(VM)に対応することができる。VMは、仮想化コンピュータシステム、またはコンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108のいずれかの上に層化されるコンピュータシステムのソフトウェア実装であり得る。基礎となるコンピュータシステムへのVMのアクセスは、ハイパーバイザまたは仮想マシンモニタを通じて制御することができる。VMは、単一のコンピュータシステム上で同時に起動するための複数の及び/または様々なオペレーティングシステム環境を提供することができる。
【0012】
コンピュータリソースサービス102では、各MIは、様々なユーザによって制御することができ、彼らは、自身のMIにのみ管理者アクセスを有することができ、他のユーザのインスタンスにはアクセスを有することができない。複数のMIを、並列プロセッサを含むコンピュータシステム上で同時に実行することができるが、ただし、複数のインスタンスは、インスタンスよりも少ないプロセッサを有するマルチスレッドコンピュータシステム上で同時に実行するように見える。場合により、コンピュータシステム上で実行する様々なMIは、2人以上の様々なユーザによって制御され、他の場合では、MIのすべてが単一のユーザによって制御される。
【0013】
コンピュータリソースサービス102は、1つ以上の管理システム111を含むこともできる。1つ以上の管理システム111は、コンピュータリソースサービス102の動作及び構成を制御するように構成することができる。1つ以上の管理システム111は、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108上でMIの実行を始動し、コンピュータリソースサービス102内にMIを構成し、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108上で実行しているMIを終了し、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108間で既存のMIを移行するように構成することができる。1つ以上の管理システム111はまた、コンピュータリソースサービス102からコンピュータサービスを要求しているユーザにインターフェースを提供するように構成することができる。1つ以上の管理システム111は、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108のうちの1つ以上などの物理的コンピュータシステムとして実装することができる。同様に、1つ以上の管理システム111は、コンピュータリソースサービス102内で実行している1つ以上のMIとして実装することができる。
【0014】
実装形態では、リソース監視ツール100は、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108の動作を試験することによって、コンピュータリソースサービス102によって提供されるコンピュータリソースの性能を決定及び監視するように構成することができる。動作中、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108の性能は、コンピュータシステム上で実行しているMIの数、コンピュータシステム上で実行しているMIの利用量、コンピュータシステムを支持する物理的ハードウェア及びソフトウェア、ならびに他の類似の要因によって影響を受け得る。コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108の動作を試験するために、リソース監視ツール100は、1つ以上の試験VM110を利用するように構成することができる。リソース監視ツール100は、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108上で試験VM110を始動し、試験VM110の性能を試験するように構成することができる。
【0015】
コンピュータリソースサービス102を正確に代表して表すために、リソース監視ツール100は、コンピュータリソースサービス102の構成に基づいて、試験VM110の数及び配置を選択するように構成することができる。コンピュータリソースサービス102において、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108は、様々な場所に配置することができる。コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108の場所は、任意の粒度の分離をコンピュータリソースサービス102内に含むことができる。例えば、場所としては、データセンタ内の特定のコンピュータシステム、サーバラック内の様々なサーバ、様々なデータセンタ、様々な地理的場所または地域などを挙げることができる。したがって、様々な場所を試験するために、リソース監視ツール100は、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108の各場所からいくつかのコンピュータシステムを選択して試験するように構成することができる。
【0016】
同様に、様々な場所にあるコンピュータシステムは、様々なコンピュータリソースを提示することができる。例えば、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108は、ハードウェアリソース及び/またはソフトウェアリソースの様々な構成を含むことができる。また、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108は、様々な世代のハードウェアリソース及び/またはソフトウェアリソースを含むことができる。例えば、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108のうちの1つ以上は、より古いコンピュータシステムを含むことができ、それは典型的には、より古いハードウェアリソース及びソフトウェアリソースを使用し、低減されたコンピューティングリソースを提供する。したがって、リソース監視ツール100は、様々な構成及び世代を代表して表す多数のコンピュータシステムを各場所から選択するように構成することができる。
【0017】
コンピュータシステムの数を選択するとき、リソース監視ツール100は、コンピュータシステムを代表して正確に表すために、様々な場所、様々な構成、様々な世代などの各々から十分な数のコンピュータシステムを選択することができる。すなわち、リソース監視ツール100は、様々な場所、様々な構成、様々な世代などの各々から、統計的に有意ないかつかのコンピュータシステムを選択するように構成することができる。例えば、特定の場所、構成、または世代に関して、リソース監視ツール100は、その特定の場所、構成、または世代のすべてのコンピュータシステムを統計的に代表して表すいくつかのコンピュータシステムを選択することができる。このコンピュータシステムの数は、特定の場所、構成、または世代のコンピュータシステムの総数のパーセンテージ(例えば、10%、5%、1%など)であることができる。特定の場所、構成、または世代からコンピュータシステムを選択するとき、リソース監視ツール100は、その特定の場所、構成、または世代からコンピュータシステムを無作為に選択することができる。
【0018】
実装形態では、コンピュータリソースを試験するとき、リソース監視ツール100は、試験VM110の様々な構成を利用するように構成することができる。具体的には、リソース監視ツール100は、コンピュータリソースサービス102によって提供される様々な量のコンピュータリソースを利用する試験VM110を選択することができる。リソース監視ツール100は、コンピュータリソースサービス102によって提示される、予め構成された試験VM110を選択するように構成することができる。同様に、リソース監視ツール100は、様々なレベルのコンピュータリソースを表す試験VM110の種々の構成を決定するように構成することができる。
【0019】
実装形態では、リソース監視ツール100は、コンピュータリソースサービス102の一部として、またはコンピュータリソースサービス102の外部に、コンピュータシステム上に記憶されるか、またはコンピュータシステムによって実行されることができるソフトウェアプログラムとして構成することができる。同様に、リソース監視ツール100は、他のアプリケーションプログラムの一部であるソフトウェアモジュールとして構成することができる。いずれかの例においても、リソース監視ツール100は、JAVA、C++、Pythonコード、Visual Basic、HTML、XMLなど、多様なオペレーティングシステム、コンピュータシステムアーキテクチャなどに対応するように多様なプログラム言語で記述することができる。図1に例示される通り、リソース監視ツール100は、監視モジュール112、性能データ記憶114、及びインターフェース116を含むことができる。単一のアプリケーションプログラムの一部として例示されているが、リソース監視ツール100の構成要素のいずれも、分離したソフトウェアプログラムまたはモジュールとして実装することができる。
【0020】
実装形態では、監視モジュール112は、試験VM110の性能を試験し、試験VM110の性能メトリックを監視するように構成することができる。試験VM110がコンピュータリソースサービス102内で実行する際、監視モジュール112は、試験VM110の性能を試験するように構成することができる。具体的には、監視モジュール112は、試験VM110の性能を測定する1つ以上のベンチマーク試験を実施するように構成することができる。ベンチマーク試験としては、プロセッサ性能(例えば、ソフトウェアの実行、命令の実行に基づくスコアなど)、メモリ性能(例えば、待ち時間、読み取り速度、書き込み速度など)、入力/出力(I/O)性能(例えば、1秒当りのI/O、I/O帯域幅など)、ネットワーク性能(例えば、ネットワーク帯域幅、1秒当りのネットワークパケットなど)などを測定する、任意の種類の従来の試験を挙げることができる。
【0021】
ベンチマーク試験から、監視モジュール112は、性能メトリックを収集するように構成することができる。性能メトリックは、ベンチマーク試験の結果を含む。収集後、リソース監視ツール100は、性能メトリックを性能データ記憶114に記憶するように構成することができる。性能データ記憶114は、性能メトリックを記憶することができる1つ以上のデータ構造として実装することができる。性能データ記憶114はまた、コンピュータリソースサービス102の詳細、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108の詳細、試験VM110の詳細、性能試験の詳細などを記憶することもできる。
【0022】
性能データ記憶114は、性能メトリック及び他のデータを、関連する情報を結び付けて関連させる様式で記憶するように構成することができる。例えば、特定の性能メトリックのセットに関して、性能データ記憶114は、特定の性能メトリックのセットを生成した特定の試験VM110の詳細、特定の試験VM110が実行した特定のコンピュータシステムの詳細、特定のコンピュータシステムの場所、特定の試験VM110上で実施された性能試験の詳細などを関連付けることができる。
【0023】
実装形態では、リソース監視ツール100は、監視エージェントを利用して、試験VM110の試験及び監視を補助するように構成することができる。監視エージェントは、試験VM110上で実行し、性能試験のうちの1つ以上を実施するように構成されるソフトウェアプログラムとして実装することができる。性能メトリックを収集するために、監視エージェントは、性能をリソース監視ツール100に送るように構成することができる。監視エージェントは、性能メトリックをリアルタイムで、定期的に、要求に応じて、及びそれらの組み合わせで送ることができる。同様に、リソース監視ツール100は、例えば、監視モジュール112を介して、監視エージェントと通信し、監視エージェントから性能メトリックを取り出すように構成することができる。リソース監視ツール100は、性能メトリックをリアルタイムで、定期的に、要求に応じて、及びそれらの組み合わせで取り出すことができる。
【0024】
性能メトリックの収集に加えて、リソース監視ツール100は、性能メトリック上で統計分析を実施するように構成することができる。リソース監視ツール100は、コンピュータシステムの性能、試験VMの様々な構成の性能、及びそれらの組み合わせを分析及び比較するために、統計分析を実施することができる。統計分析は、例えば、中央値、平均値、標準偏差、関係性に基づく統計的順位付け、統計的モデル化などの、コンピュータシステムの性能、試験VMの様々な構成の性能、及びそれらの組み合わせの分析及び比較に役立つ統計値を生成する、任意の種類の手順であり得る。決定後、リソース監視ツール100は、統計値を性能データ記憶114に記憶することができる。
【0025】
例えば、リソース監視ツール100は、コンピュータシステム上で動作している試験VMの特定の構成の性能メトリックを経時的に比較することができる。例えば、リソース監視ツール100は、経時的に収集された性能メトリックの中央値、平均値、及び標準偏差を決定して、経時的性能を評定することができる。加えて、例えば、リソース監視ツール100は、性能メトリックが、他の時間における性能メトリックに対して特定のパーセンテージの範囲に含まれる、特定の時間を決定することができる。
【0026】
同様に、例えば、リソース監視ツール100は、同一の場所にあるか、様々な場所にあるか、またはその両方にあるかにかかわらず、試験VMの特定の構成をホストする様々なコンピューティングシステムの性能メトリックに関する統計値を決定することができる。この例では、リソース監視ツール100は、統計値を比較して、コンピューティングシステムの性能を互いに関連して決定することができる。加えて、リソース監視ツール100は、同一のコンピュータシステム上で、様々なコンピュータシステム上で、またはその両方で実行しているかにかかわらず、試験仮想マシンの様々な構成の性能メトリックに関する統計値を決定することができる。リソース監視ツール100は、統計値を比較して、試験仮想マシンの様々な構成の性能を互いに関連して決定することができる。
【0027】
リソース監視ツール100はまた、ユーザデバイス120が1つ以上のネットワーク118を介してリソース監視ツール100と通信し、性能メトリックにアクセスすることを可能にする、インターフェース116を含むこともできる。ユーザデバイス120としては、デスクトップ、ラップトップ、サーバなどのコンピュータデバイス、またはスマートフォン、タブレットコンピュータ、携帯電話、携帯情報端末などの携帯デバイスなどを挙げることができる。ユーザデバイス120としては、従来のコンピュータデバイス内に見出されるハードウェアリソース(例えば、プロセッサ、メモリ、記憶装置、ネットワークインターフェース、I/Oデバイスなど)及びソフトウェアリソース(例えば、オペレーティングシステム、アプリケーションプログラム、モバイルアプリなど)を挙げることができる。
【0028】
実装形態では、インターフェース116は、ユーザがリソース監視ツール100とローカルに、及び遠隔で通信することを可能にする、任意の種類のインターフェースであり得る。例えば、インターフェース116は、ユーザが、リソース監視ツール100が実行しているコンピュータシステムを介してリソース監視ツールと相互作用することを可能にする、グラフィカルユーザインターフェース(「GUI」)またはコマンドラインインターフェースを含むことができる。また、例えば、インターフェース116は、ユーザデバイス120が、ウェブブラウザなどのウェブベースのアプリケーションを使用してリソース監視ツール100と遠隔で通信することを可能にする、ウェブベースのインターフェースを含むことができる。同様に、例えば、インターフェース116は、ユーザデバイス120上のアプリケーションがリソース監視ツール100と通信することを可能にするアプリケーションプログラミングインターフェース(「API」)を含むことができる。いくつかの実装形態では、インターフェースは、ウェブサービスAPIであり得る。
【0029】
実装形態では、ユーザデバイス120のユーザは、コンピュータリソースサービス102の性能を評定することを望むことができる。例えば、ユーザは、コンピュータリソースサービス内で始動するための最良の場所、コンピュータシステム、及びMIの構成を決定することを望むことができる。これを達成するために、ユーザデバイス120は、リソース監視ツール100に、性能メトリックのセットを提供する要求を送信することができる。それに応答して、リソース監視ツール100は、性能データ記憶114を検索し、ユーザデバイス120の要求に合致する性能メトリックのセットを取り出すように構成することができる。リソース監視ツール100は、性能メトリックのセットをユーザデバイス120に送信するように構成することができる。
【0030】
ユーザデバイス120に有意義な情報を提供するために、リソース監視ツール100は、性能メトリックのセットを決定してユーザデバイス120のために取り出すときに、フィルタを利用するように構成することができる。具体的には、リソース監視ツール100は、フィルタを利用して、特定の性能メトリックを決定して、ユーザデバイスのために取り出すことができる。フィルタは、どの性能メトリックがユーザデバイス120によって所望されているかを指定する1つ以上のパラメータを含むことができる。
【0031】
例えば、フィルタは、コンピュータリソースサービス102内のコンピュータシステムに関する1つ以上のパラメータを含むことができる。これらは、コンピュータシステムが位置する特定の場所または地域の識別、コンピュータシステムの特定の構成の識別などを含むことができる。加えて、例えば、フィルタは、試験VM110または試験VM110上で実施される試験に関する1つ以上のパラメータを含むことができる。これらのパラメータは、試験VM110の特定の種類または構成の識別、試験VM110が始動した場所または地域の識別、ベンチマーク試験の識別、試験が実施された日付または時間の範囲などを含むことができる。また、例えば、フィルタは、性能メトリック自体の周りに1つ以上のパラメータを含むことができる。これらのパラメータとしては、特定の種類の性能メトリック(例えば、プロセッサ性能、メモリ性能、I/O性能、ネットワーク性能など)、性能メトリックに関する特定の値、性能メトリックの特定の統計(例えば、平均値、中央値、ある特定のパーセンタイルなど)などを挙げることができる。
【0032】
インターフェース116及びインターフェース116に関連するプロセスの完全な説明は、2013年5月21日に出願された、Simon Jeremy Elishaへの「REPORTING PERFORMANCE CAPABILITIES OF A COMPUTER RESOURCE SERVICE」と題する米国特許出願第13/899,449号に見出すことができ、その開示はその全体が参照により本明細書に援用される。
【0033】
図2は、種々の実装形態による、コンピュータリソースサービスの性能を決定及び監視するためのプロセス200を例示する。プロセス200において、例示される段階は例であり、例示される段階のいずれも除去することができ、追加の段階を追加することができ、また例示される段階の順序を変更することができる。加えて、プロセス200はリソース監視ツール100によって実施されるように説明されているが、プロセス200の段階のうちの1つ以上を、任意のハードウェアまたはソフトウェア構成要素によって実施することができる。
【0034】
204において、リソース監視ツール100は、コンピュータリソースサービス102内のコンピュータシステムを任意に決定することができる。リソース監視ツール100は、コンピュータシステムの場所、コンピュータシステムの名称、コンピュータシステムのネットワークアドレス、コンピュータシステムに関するアクセス情報などの、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108に関する識別情報を決定することができる。加えて、リソース監視ツール100は、コンピュータシステムのハードウェア及びソフトウェア構成要素などの、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108の詳細を決定することができる。この情報を決定するために、リソース監視ツール100は、コンピュータシステム104、コンピュータシステム106、及びコンピュータシステム108をスキャンすることができる。同様に、リソース監視ツール100は、コンピュータリソースサービス102の1つ以上の管理システム111と通信して、情報を取得することができる。加えて、コンピュータシステムの場所及び構成は、リソース監視ツール100内に予めプログラムすることもできる。
【0035】
206では、リソース監視ツール100は、コンピュータシステムの場所分布及びコンピュータシステムのコンピューティングリソースを代表して表すコンピュータシステムのセットを決定することができる。すなわち、リソース監視ツール100は、コンピュータシステムの様々な場所及びコンピュータシステムの様々なコンピュータリソース構成を代表して表すコンピュータシステムを選択することができる。選択されるコンピュータシステムの数は、性能の正確な測定を決定し得るために統計的に有意であり得る。
【0036】
例えば、コンピュータシステム104が第1の場所に位置し、コンピュータシステム106が第2の場所に位置する場合、リソース監視ツール100は、各場所を代表して表すいくつかのコンピュータシステム104及びいくつかのコンピュータシステム106を選択して、信頼性のある性能メトリックを付与することができ、例えば、コンピュータシステム104の5%及びコンピュータシステム106の5%などである。同様に、この例では、コンピュータシステム104は、2つのコンピュータリソース構成を有することができ、例えば、コンピュータシステム104の第1の群は、同一のプロセッサ、メモリ、及びネットワーク帯域幅を有し、コンピュータシステム104の第2の群は、同一のプロセッサ、メモリ、及びネットワーク帯域幅ではあるが第1の群とは様々なものを有する。コンピュータシステム104からコンピュータシステムを選択するとき、リソース監視ツール100は、第1の群及び第2の群の両方から統計的に有意な数を選択することができる。
【0037】
208では、リソース監視ツール100は、コンピュータシステムのセット上で試験VMを始動することができる。リソース監視ツール100は、コンピュータシステム間で性能を比較し、関連させることができるように、試験VMの各々に対して同一の構成を選択することができる。例えば、リソース監視ツール100は、特定のコンピュータリソース(例えば、処理能力、メモリ、I/Oリソース、ネットワーク帯域など)を提示するように構成される試験VM100を選択することができる。リソース監視ツール100は、試験VM110を構成することができる。同様に、リソース監視ツール100は、予め構成された仮想マシンを選択して、コンピュータシステムで始動することができる。
【0038】
210では、リソース監視ツール100は、コンピュータシステムのセット上の試験VMの性能メトリックを監視することができる。リソース監視ツール100は、ネットワーク接続を介して性能メトリックを遠隔で監視することができる。同様に、リソース監視ツール100は、試験仮想マシンのうちの1つ以上に性能監視エージェントをインストールし、監視エージェントから性能メトリックを受信するかまたは取り出すことができる。リソース監視ツール100は、種々の時間における性能メトリックを決定するために、性能メトリックを経時的に監視することができる。
【0039】
リソース監視ツール100及び/または監視エージェントは、種々のベンチマーク試験を試験VM110上で実行することができる。ベンチマーク試験としては、プロセッサ性能(例えば、ソフトウェアの実行、命令の実行に基づくスコアなど)、メモリ性能(例えば、待ち時間、読み取り速度、書き込み速度など)、入力/出力(I/O)性能(例えば、1秒当りのI/O、I/O帯域幅など)、ネットワーク性能(例えば、ネットワーク帯域幅、1秒当りのネットワークパケットなど)などを測定する、任意の種類の従来の試験を挙げることができる。
【0040】
212では、リソース監視ツール100は、試験VMに関して監視される性能メトリックを記憶することができる。リソース監視ツール100は、性能メトリックを、性能データ記憶114などの1つ以上のデータ構造内に記憶することができる。リソース監視ツール100は、性能メトリック及び他の情報を記憶することができる。他の情報としては、例えば、204において収集された情報を挙げることができる。
【0041】
214では、リソース監視ツール100は、試験VMの様々な構成に関してプロセスを繰り返することができる。コンピュータリソースサービス102のコンピュータリソースの全体像を取得するために、リソース監視ツール100は、例えば、特定のコンピュータリソース(例えば、処理能力、メモリ、I/Oリソース、ネットワーク帯域など)の様々な提供などの、試験VM110の様々な構成に関する性能メトリックの試験及び監視を実施することができる。
【0042】
216では、リソース監視ツール100は、性能メトリックに基づいて、リソースの管理及び監視を実施することができる。リソース監視ツール100は、性能メトリックを利用して、コンピュータリソースサービス102のコンピュータリソースの性能の決定を必要とする任意のプロセスを補助することができる。リソースの管理及び監視は、リソース監視ツール100によって実施することができる。同様に、リソース監視ツール100は、リソースの管理を補助するために、1つ以上のリソース管理システム111などの別のシステムに性能メトリックを提供することができる。
【0043】
例えば、性能メトリックは、新規のMIを始動する基になる特定のマシンを決定するために利用することができる。例えば、特定のコンピュータシステムが試験VMに関して良好な性能メトリックを示す場合、その特定のコンピュータシステムを、新規のMIをホストするために選択する(または、より高い優先順位を付与する)ことができる。同様に、特定のコンピュータシステムが試験VMに関して不良な性能メトリックを示す場合、その特定のコンピュータシステムは、新規のMIのホストのために一時停止する(または、より低い優先順位を付与する)ことができる。
【0044】
加えて、例えば、性能メトリックは、コンピュータリソースサービス102内で現在ホストされているMIを均衡させるために利用することができる。例えば、特定のコンピュータシステムが試験VMに関して不良な性能メトリックを示す場合、その特定のコンピュータシステムによってホストされる1つ以上のMIを、より良好な性能メトリックを示す様々なコンピュータシステムに移行することができる。
【0045】
また、例えば、性能メトリックは、コンピュータリソースサービス102によるコンピュータリソースの提供の価格設定に利用することができる。例えば、特定のコンピュータシステムが試験VMに関して不良な性能メトリックを示し、その特定のシステムのより古いハードウェアに関連付けられる場合、その特定のコンピュータシステムによって提供されるコンピュータリソースにより低い価格が設定され得る。同様に、例えば、特定のコンピュータシステムが試験VMに関して良好な性能メトリックを示し、その特定のシステムのより新しいハードウェアに関連付けられる場合、その特定のコンピュータシステムによって提供されるコンピュータリソースにより高い価格が設定され得る。
【0046】
さらに、例えば、性能メトリックは、コンピュータシステムのうちの1つ以上をアップグレードするかどうかの決定に利用することができる。例えば、特定のコンピュータシステムが試験VMに関して不良な性能メトリックを示し、その特定のシステムのより古いハードウェアに関連付けられる場合、その特定のコンピュータシステムのハードウェアを更新するという決定を行うことができる。
【0047】
218では、リソース監視ツール100は、要求するユーザに性能メトリックを提供することができる。リソース監視ツール100は、ユーザデバイス120などのユーザから、性能メトリックのセットに関して要求を受信することができる。例えば、リソース監視ツール100は、インターフェース116を介して要求を受信することができる。要求は、ユーザによって要求される特定の性能メトリックのセットを指定する1つ以上のフィルタを含むことができる。それに応答して、リソース監視ツール100は、フィルタに基づいて性能データ記憶114を検索し、性能メトリックのセットを取り出すことができる。リソース監視ツール100は、インターフェース116を介してユーザに性能メトリックのセットを提供することができる。
【0048】
受信後、ユーザは、性能メトリックのセットを利用して種々の動作を実施することができる。例えば、ユーザデバイス120は、コンピュータリソースサービスに関連付けられる動作を実施することができる。ユーザデバイス120は、性能メトリックを利用して、コンピュータリソースサービス102のコンピュータリソースの性能の決定を必要とする任意のプロセスを補助することができる。
【0049】
例えば、性能メトリックを利用して、新規のMIを始動する基になる特定のコンピュータシステムまたはコンピュータシステムの場所を決定することができる。例えば、特定のコンピュータシステム、またはコンピュータシステムの特定の場所が、試験VMに関して良好な性能メトリックを示す場合、ユーザデバイス120は、特定のコンピュータシステム上または特定の場所で新規のMIを始動する(またはその始動を要求する)ことができる。同様に、例えば、ユーザデバイスが、試験VMの様々な構成に関する性能メトリックのセットを受信する場合、ユーザデバイス120は、コンピュータリソースサービス内で始動するためのMIの構成の選択にその性能メトリックのセットを利用することができる。加えて、例えば、性能メトリックは、コンピュータリソースサービス102内で現在ホストされているMIを均衡させるために利用することができる。例えば、特定のコンピュータシステムが試験VMに関して不良な性能メトリックを示す場合、その特定のコンピュータシステムによってホストされる1つ以上のMIは、より良好な性能メトリックを示す様々なコンピュータシステムに移行することができる。
【0050】
218の後、プロセスは、終了するか、反復するか、または任意の点に戻ることができる。
【0051】
図3A及び3Bは、種々の実装形態による、性能コンピュータリソースサービス302を決定及び監視することができるリソース監視ツール100の別の例を例示する。図3A及び3Bは、リソース監視ツール100内に含まれる種々の構成要素を例示するが、図3A及び3Bは、監視ツールの一例を例示するものであり、追加の構成要素が追加され得、既存の構成要素が除去され得る。同様に、図3A及び3Bは、コンピュータリソースサービス302内に含まれる種々の構成要素を例示するが、図3A及び3Bは、コンピュータリソースサービスの一例を例示するものであり、追加の構成要素が追加され得、既存の構成要素が除去され得る。
【0052】
実装形態では、コンピュータリソースサービス302は、地域的及び地理的に別個の場所に位置するユーザに、コンピューティングリソースをサービスとして提供することができる。地域的及び地理的に別個の場所へのサービスの提供において、コンピュータリソースサービス302のコンピュータシステムは、種々の地理的場所及び地域的場所の間に分散することができる。図3Aに例示される通り、コンピュータリソースサービス302は、例えば、地理的場所1、304及び地理的場所2、306などのいくつかの地理的場所または地域に分割することができる。すなわち、コンピュータリソースサービス302を支持する種々のコンピュータシステムは、様々な地理的場所に提示されるコンピュータリソースを支持するために、様々な地理的場所に位置することができる。
【0053】
例えば、コンピュータリソースサービス302は、例えば、データセンタA308、データセンタB310、データセンタC312、データセンタD314、及びデータセンタE316などの、いくつかのデータセンタを含むことができる。図3Aに例示される通り、データセンタA308及びデータセンタB310は、地理的場所1、304に位置することができる。データセンタC312、データセンタD314、及びデータセンタE316は、地理的場所2、306に位置することができる。特定の地理的場所内のデータセンタは、その特定の地理的場所の小地域内に分散することもできる。
【0054】
図3Bに例示される通り、データセンタAは、コンピュータシステム318、コンピュータシステム320、及びコンピュータシステム322などのいくつかのコンピュータシステムを含むことができる。同様に、データセンタB310、データセンタC312、データセンタD314、及びデータセンタE316は、いくつかのコンピュータシステムを含むことができる。データの性能を決定及び監視するために、リソース監視ツール100は、コンピュータシステム318、コンピュータシステム320、及びコンピュータシステム322上で、それぞれ、試験VM324、326、及び328を始動するように構成することができる。下に説明される通り、リソース監視ツール100は、コンピュータリソースサービス302のデータセンタA308のコンピュータリソースを正確に代表して表すために、コンピュータシステムを選択するように構成することができる。
【0055】
コンピュータリソースサービス302内においてどこでMIをホストするかを決定するとき、コンピュータリソースサービス302は、すべての地理的及び地域的場所にわたってコンピュータシステムの性能を決定することを望み得る。同様に、コンピュータリソースサービス302を利用するとき、ユーザは、ユーザの需要に最適なコンピューティングリソースを提供するであろうコンピュータシステムを決定することを望み得る。例えば、ユーザは、彼らの地理的場所内のコンピュータシステムの性能、及び他の地理的場所内のコンピュータシステムを決定することを望み得る。したがって、リソース監視ツール100は、コンピュータシステムの場所及びコンピュータシステムの構成を代表して表す性能メトリックを監視及び決定することができる。
【0056】
図4は、種々の実装形態による、コンピュータリソースサービス302などのコンピュータリソースサービスの性能を監視するためのプロセス400を例示する。プロセス400において、例示される段階は例であり、例示される段階のいずれかは除去することができ、追加の段階を追加することができ、また例示される段階の順序は変更することができる。加えて、プロセス400はリソース監視ツール100によって実施されるように説明されているが、プロセス400の段階のうちの1つ以上は、任意のハードウェアまたはソフトウェア構成要素によって実施することができる。
【0057】
404では、リソース監視ツール100は、コンピュータリソースサービス内のデータセンタの地理的場所を任意に決定することができる。リソース監視ツール100は、コンピュータリソースサービスをスキャンし、コンピュータリソースサービス内のデータセンタの地理的場所を決定することができる。同様に、リソース監視ツール100は、コンピュータリソースサービスの1つ以上の管理システム111と通信し、コンピュータリソースサービス内のデータセンタの地理的場所を決定することができる。データセンタの地理的場所は、リソース監視ツール100内に予めプログラムすることもできる。
【0058】
例えば、図3Aを参照すると、リソース監視ツール100は、コンピュータリソースサービス302が、データセンタA308及びデータセンタB310を有する地理的場所1、304と、データセンタC312、データセンタD314、及びデータセンタE316を有する地理的場所2、306とを含むことを決定することができる。
【0059】
406では、リソース監視ツール100は、試験するために地理的場所内のデータセンタを選択することができる。例えば、リソース監視ツール100は、データセンタA308、データセンタB310、データセンタC312、データセンタD314、及びデータセンタE316のいずれか1つを選択することができる。リソース監視ツール100は、無作為に特定のデータセンタを選択してもよく、または所定の順序に基づいて特定のデータセンタを選択してもよい。
【0060】
408では、リソース監視ツール100は、データセンタ内のコンピュータシステムを任意に決定することができる。リソース監視ツール100は、現在試験されているデータセンタ内のコンピュータシステムの識別情報及び詳細を決定することができる。識別情報としては、コンピュータシステムの名称、コンピュータシステムのネットワークアドレス、コンピュータシステムに関するアクセス情報などを挙げることができる。コンピュータシステムの詳細としては、コンピュータシステムのハードウェア及びソフトウェア構成要素を挙げることができる。
【0061】
例えば、データセンタA308に関して、リソース監視ツール100は、コンピュータシステム318、コンピュータシステム320、及びコンピュータシステム322に関する識別情報、例えば、コンピュータシステムの名称、コンピュータシステムのネットワークアドレス、コンピュータシステムに関するアクセス情報などを決定することができる。加えて、リソース監視ツール100は、コンピュータシステム318、コンピュータシステム320、及びコンピュータシステム322の詳細、例えば、コンピュータシステムのハードウェア及びソフトウェア構成要素などを決定することができる。この情報を決定するために、リソース監視ツール100は、コンピュータシステム318、コンピュータシステム320、及びコンピュータシステム322をスキャンすることができる。同様に、リソース監視ツール100は、コンピュータリソースサービス302の1つ以上の管理システム111と通信して、情報を取得することができる。
【0062】
410では、リソース監視ツール100は、コンピュータシステムの様々な構成を代表して表すデータセンタ内のコンピュータシステムのセットを決定することができる。コンピュータシステムの様々な構成の各々に関して、リソース監視ツール100は、各構成に関して、統計的に有意であるいくつかのコンピュータシステム、すなわち、統計的に意味のある性能メトリックを提供するのに十分に大きいコンピュータシステムの標本を選択することができる。
【0063】
例えば、コンピュータシステム318及びコンピュータシステム320は、様々な構成(例えば、様々な世代または種類のハードウェアリソース)を有するコンピュータシステムを含むことができる。リソース監視ツール100は、例えば、コンピュータシステム318の5%及びコンピュータシステム320の5%などの、各場所を表し、信頼性のある性能メトリックを付与する多数のコンピュータシステム318及び多数のコンピュータシステム320を選択することができる。
【0064】
412では、リソース監視ツール100は、コンピュータシステムのセット上で試験VMを始動することができる。リソース監視ツール100は、コンピュータシステム間で性能を比較し、関連させることができるように、試験VMの各々に対して同一の構成を選択することができる。例えば、データセンタA308に関して、リソース監視ツール100は、特定のコンピュータリソース(例えば、処理能力、メモリ、I/Oリソース、ネットワーク帯域幅など)を提示するように構成される試験VM324、326、及び328に関する構成を選択することができる。リソース監視ツール100は、試験VM324、326、及び328を構成することができる。同様に、リソース監視ツール100は、試験VM324、326、及び328のために予め構成された試験VMを選択して、コンピュータシステム上で始動することができる。
【0065】
414では、リソース監視ツール100は、試験仮想マシンの性能を監視することができる。リソース監視ツール100は、ネットワーク接続を介して性能メトリックを遠隔で監視することができる。同様に、リソース監視ツール100は、試験仮想マシンのうちの1つ以上に性能監視エージェントをインストールし、監視エージェントから性能メトリックを受信するかまたは取り出すことができる。リソース監視ツール100は、種々の時間における性能メトリックを決定するために、性能メトリックを経時的に監視することができる。
【0066】
リソース監視ツール100及び/または監視エージェントは、試験VM324、326、及び328上で種々のベンチマーク試験を起動することができる。ベンチマーク試験としては、プロセッサ性能(例えば、ソフトウェアの実行、命令の実行に基づくスコアなど)、メモリ性能(例えば、待ち時間、読み取り速度、書き込み速度など)、入力/出力(I/O)性能(例えば、1秒当りのI/O、I/O帯域幅など)、ネットワーク性能(例えば、ネットワーク帯域幅、1秒当りのネットワークパケットなど)などを測定する、任意の種類の従来の試験を挙げることができる。
【0067】
416では、リソース監視ツール100は、試験仮想マシン内で監視された性能メトリックを記憶することができる。リソース監視ツール100は、性能メトリックを、性能データ記憶114などの1つ以上のデータ構造内に記憶することができる。リソース監視ツール100は、性能メトリック及び他の情報を記憶することができる。他の情報としては、例えば、204において収集された情報を挙げることができる。
【0068】
例えば、図5は、試験VMから監視された性能メトリックを記憶することができるデータ構造の例を例示する。図5は、データ構造の例を例示するが、例示される構造は一例であり、任意の種類のデータ構造が、性能メトリックを記憶するために利用することができる。同様に、図5は、記憶され得る性能メトリックの例を例示するが、例示される性能メトリックは一例であり、任意の種類の性能メトリックまたは他の情報を、リソース監視ツール100によって監視及び記憶することができる。
【0069】
例示される通り、リソース監視ツール100は、性能メトリックを表500に記憶することができる。表500は、いくつかの行及び列を含むことができる。各行は、特定の試験VMに関する性能メトリック及びその他のデータを記憶することができる。各列は、試験VMに関する特定の種類の情報を記憶することができる。表500は、各試験VMの識別子を記憶する列502を含むことができる。識別子は、試験VMを一意的に識別する任意の値であり得る。例えば、識別子は、「00001」などの数値であり得る。
【0070】
表500はまた試験VMに割り当てられるコンピューティングリソースを説明する構成情報を記憶する、列504を含むこともできる。構成情報としては、試験VMに割り当てられるメモリ、試験VMに割り当てられる処理能力、試験VMに割り当てられる記憶装置、試験VMに割り当てられるネットワークリソース、試験VMのデータ処理アーキテクチャなどの、試験VMに割り当てられるコンピューティングリソースを説明する任意の情報を挙げることができる。例えば、例示される通り、列504は、以下の情報を含むことができる:「割り当てられるメモリ(バイト数);処理能力(計算ユニット);記憶装置(バイト数);アーキテクチャ(ビット数)」。例えば、試験VM「00001」に関して、列504は、「1.7GB」の割り当てられるメモリ、「5CU」の処理能力、「320GB」の記憶装置、及び「32ビット」のアーキテクチャを含むことができる。
【0071】
表500はまた、試験VMをホストするコンピュータシステムの場所情報を記憶する列506及び508を含むこともできる。列506は、地域的または地理的識別及び説明などの試験VMの地域的または地理的情報を含むことができる。例えば、試験VM「00001」に関して、列506は、(図3Aで参照される通り)「地理的場所1」の場所を含むことができる。列508は、試験VMをホストするコンピュータシステムを含む小地域またはデータセンタなどの特定の場所に関する追加の場所情報を含むことができる。例えば、試験VM「00001」に関して、列508は、試験VM「00001」をホストするコンピュータシステムを示す、「データセンタA」を含むことができる。
【0072】
表500はまた、試験VMをホストしているコンピュータシステムの識別子を記憶する列510を含むこともできる。識別子は、コンピューティングシステムを一意的に識別する任意の値であり得る。例えば、識別子は、コンピュータシステムの媒体アクセス制御(MAC)アドレスであり得る。例えば、試験VM「00001」に関して、列510は、16進数のMACアドレス、値「00:A0:C9:14:C8:29」を含むことができる。
【0073】
表500はまた、試験VMによって実施された試験の時間及び日付情報を記憶する列512を含むこともできる。時間及び日付情報は、いつ試験が実施されたか、いつ性能メトリックが収集されたかなどを識別する任意の情報を含むことができる。例えば、例示される通り、列512は、日付を「日月年」として、また時間を「時間:分:秒」として含むことができる。例えば、試験VM「00001」に関して、列512は「2013年5月1日」の日付及び「12:15:06」の時間を含むことができる。
【0074】
表500はまた、試験VMによって収集される性能メトリックを記憶する列514、516、518、及び520を含むことができる。列514は、プロセッサ性能に関連付けられる性能メトリックを記憶することができる。プロセッサ性能は、特定のベンチマーク試験によって生成される任意の値であり得る。例えば、試験VM「00001」に関して、列514は、値「1025」を含むことができ、それは、特定のベンチマーク試験のスコアに対応する。列516は、メモリ性能試験に関連付けられる性能メトリックを記憶することができる。例えば、例示される通り、列516は、性能メトリック:「ページ更新速度(秒);待ち時間(秒)」を含むことができる。例えば、試験VM「00001」に関して、列516は、「5」秒のページ更新速度及び「3」秒の待ち時間を含むことができる。
【0075】
列518は、I/O性能試験に関連付けられる性能メトリックを記憶することができる。例えば、例示される通り、列518は、性能メトリック:「1秒当りの入力/出力:待ち時間(秒)」を含むことができる。例えば、試験VM「00001」に関して、列518は、「100,000」のIOPS及び「10」秒の待ち時間を含むことができる。列520は、ネットワーク性能試験に関連付けられる性能メトリックを記憶することができる。例えば、例示される通り、列520は、性能メトリック:「ネットワーク帯域幅(1秒当りのMビット数);破棄パケットの数;待ち時間(秒)」を含むことができる。例えば、試験VM「00001」に関して、列520は、「9.8」Mビット/秒のネットワーク帯域幅、「10」の数の破棄パケット、及び「3」秒の待ち時間を含むことができる。
【0076】
表500はまた、任意の追加の情報を記憶することができる列522を含むことができる。例えば、該列は、試験の間隔、実施されるベンチマーク試験の識別、リソース監視ツール100を実行するシステムの識別などの情報を含むことができる。
【0077】
418では、リソース監視ツール100は、追加の仮想マシン構成を試験するかどうかを決定することができる。コンピュータリソースサービス302のコンピュータリソースの全体像を取得するために、リソース監視ツール100は、例えば、特定のコンピュータリソース(例えば、処理能力、メモリ、I/Oリソース、ネットワーク帯域幅など)の様々な提供などの試験VM324、326、及び328の様々な構成に関する性能メトリックの試験及び監視を実施することができる。
【0078】
420では、リソース監視ツール100は、その地理的場所内に追加のデータセンタが存在するかどうかを決定することができる。例えば、リソース監視ツール100は、データセンタB、310も試験される必要があることを決定することができる。リソース監視ツール100は、上記のプロセスをデータセンタB、310に関して繰り返すことができる。したがって、リソース監視ツール100は、地理的場所1、304内のすべてのデータセンタに関する性能メトリックを決定及び監視することができる。
【0079】
422では、リソース監視ツール100は、追加の地理的場所が存在するかどうかを決定することができる。例えば、リソース監視ツール100は、地理的場所2、306が試験される必要があることを決定することができる。リソース監視ツール100は、上記のプロセスを地理的場所306のデータセンタC312、データセンタD314、及びデータセンタE316に関して繰り返すことができる。したがって、リソース監視ツール100は、地理的場所1、304及び地理的場所2、306の両方のすべてのデータセンタに関する性能メトリックを決定及び監視することができる。
【0080】
リソース監視ツール100は、性能メトリックを経時的に監視し続けることができる。したがって、リソース監視ツール100は、性能メトリックを経時的に決定し、性能メトリックが経時的にどのように変化するかを決定することができる。
【0081】
422の後、プロセスは、終了するか、繰り返すか、または任意の点に戻ることができる。
【0082】
上記に説明される実装形態では、リソース監視ツール100によって収集される性能メトリックは、コンピュータリソースサービスに関連付けられる多様なプロセスに利用することができる。実装形態では、上に説明される通り、性能メトリックは、コンピュータリソースサービス302内のどのコンピュータシステムがMIを支持するべきかの決定、コンピュータリソースサービス302のコンピュータリソースの価格設定、コンピュータリソースサービス302のコンピュータシステムの更新に関する決定などに利用することができる。
【0083】
上記に説明される実装形態では、リソース監視ツール100は、性能メトリックを経時的に監視し続けることができる。したがって、リソース監視ツール100は、性能メトリックを経時的に決定し、性能メトリックが経時的にどのように変化するかを決定することができる。加えて、一定の期間後、リソース監視ツール100は、試験VMを終了して、コンピューティングリソースがコンピュータリソースサービスのユーザによって利用されることを可能にすることができる。
【0084】
図6は、上記に説明されるプロセスのうちの1つ以上を実施するために使用することができる、リソース監視ツール100を実装するコンピューティングデバイス600のためのハードウェア構成の例を例示する。図6はコンピューティングデバイス600に含まれる種々の構成要素を例示するが、図6は、コンピューティングデバイスの一例を例示するものであり、追加の構成要素が追加され得、既存の構成要素が除去され得る。
【0085】
図6に例示される通り、コンピューティングデバイス600は、種々のコア構成及びクロック周波数の1つ以上のプロセッサ602を含むことができる。コンピューティングデバイス600はまた、コンピューティングデバイス600の動作中にメインメモリとして機能する1つ以上のメモリデバイス604も含むことができる。例えば、動作中、リソース監視ツール100のコピーを、1つ以上のメモリデバイス604に記憶することができる。コンピューティングデバイス600はまた、コンピューティングデバイス600との人の対話及びその操作を可能にするための、キーボード、マウス、タッチパッド、コンピュータスクリーン、タッチスクリーンなどの、1つ以上の周辺インターフェース606も含むことができる。
【0086】
コンピューティングデバイス600はまた、プロトコルを使用して有線または無線媒体と通信するための、Ethernetアダプタ、無線トランシーバ、またはシリアルネットワーク構成要素などの、1つ以上のネットワークを介して通信するための1つ以上のネットワークインターフェース608も含むことができる。コンピューティングデバイス600はまた、画像、ファイル、及び1つ以上のプロセッサ602による実行のためのプログラム命令などのデータを記憶するための、フラッシュドライブ、ハードドライブ、ランダムアクセスメモリなどの、種々の物理的寸法及び記憶装置容量の1つ以上の記憶デバイス610を含むこともできる。
【0087】
加えて、コンピューティングデバイス600は、リソース監視ツール100などの1つ以上のソフトウェアプログラム612を含むことができる。1つ以上のソフトウェアプログラム612は、1つ以上のプロセッサ602に本明細書に説明されるプロセスを実施させる命令を含むことができる。1つ以上のソフトウェアプログラム612のコピーを、1つ以上のメモリデバイス604及び/または1つ以上の記憶デバイス610に記憶することができる。同様に、例えば、性能データ記憶114などの1つ以上のソフトウェアプログラム612によって利用されるデータを、1つ以上のメモリデバイス604及び/または1つ以上の記憶デバイス610に記憶することができる。
【0088】
実装形態では、コンピューティングデバイス600は、ネットワーク616を介して1つ以上の遠隔ユーザデバイス614及びコンピュータリソースサービス618と通信することができる。1つ以上の遠隔ユーザデバイス614は、任意の種類の従来のコンピューティングデバイスであり得る。例えば、1つ以上のユーザデバイス614は、デスクトップ、ラップトップ、サーバなど、またはスマートフォン、タブレットコンピュータ、携帯電話、携帯情報端末などの携帯デバイスであり得る。ネットワーク616は、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、及びそれらの任意の組み合わせなどの、任意の種類のネットワークであり得る。ネットワーク616は、TCP/IP、OSI、FTP、UPnP、NFS、CIFS、及びAppleTalkなどの多様な市販のプロトコルのいずれかを使用して、通信を支持することができる。ネットワーク616は、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、及びそれらの任意の組み合わせであり得る。
【0089】
実装形態では、コンピューティングデバイス600は、1つ以上のユーザデバイス614及びコンピュータリソースサービス618とネットワーク616上でデータを交換することができる。例えば、コンピューティングデバイス600は、性能メトリックのうちの1つ以上に関する要求を1つ以上のユーザデバイス614から受信することができる。
【0090】
コンピューティングデバイス600及びリソース監視ツール100は、少なくとも1つのサービスまたはウェブサービスの一部として実装することができ、例えば、サービス指向アーキテクチャの一部であってもよい。上に説明される通り、リソース監視ツール100は、インターフェース、例えば、ウェブサービスAPIを実装することができる。コンピューティングデバイス600は、少なくとも1つのサービスまたはウェブサービスの動作中に、ウェブサービスAPIを介して1つ以上のユーザデバイス614とデータを交換することができる。ウェブサービスなどのサービスは、任意の適切な種類のメッセージングを使用して、例えば、エクステンシブルマークアップ言語(XML)フォーマットのメッセージを使用して通信することができ、またSOAP(「簡易オブジェクトアクセスプロトコル」から抽出)などの適切なプロトコルを使用して交換することができる。かかるサービスによって提供または実行されるプロセスは、ウェブサービス記述言語(WSDL)などの任意の適切な言語で記述することができる。WSDLなどの言語の使用は、種々のSOAPフレームワークにおけるクライアント側コードの自動生成などの機能性を可能にする。
【0091】
実装形態では、コンピューティングデバイス600は、ウェブサーバアーキテクチャの一部として利用することができる。ウェブサーバアーキテクチャでは、コンピューティングデバイス600は、HTTPサーバ、FTPサーバ、CGIサーバ、データサーバ、Javaサーバ、及びビジネスアプリケーションサーバを含む、多様なサーバまたはミッドティアアプリケーションのいずれかを起動することができる。コンピューティングデバイス600はまた、1つ以上の遠隔ユーザデバイス614からの要求に応答して、例えば、Java(登録商標)、C、C#、もしくはC++、または任意のスクリプト言語、例えば、Perl、Python、もしくはTCLなど、及びそれらの組み合わせなどの任意のプログラム言語で記述される1つ以上のスクリプトまたはプログラムとして実装され得る1つ以上のウェブアプリケーションを実行することによって、プログラムまたはスクリプトを実行することも可能である。コンピューティングデバイス600はまた、データベースサーバも含むことができ、限定するものではないが、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、及びIBM(登録商標)から市販されているものが挙げられる。
【0092】
コンピューティングデバイス600は、上述の多様なデータ記憶ならびに他のメモリ及び記憶媒体を含むことができる。これらは、多様な場所、例えば、コンピュータのうちの1つ以上にローカルな(及び/もしくはその中に存在する)記憶媒体上に、またはネットワーク上のコンピュータのいずれかもしくはすべてから遠隔に存在することができる。いくつかの実装形態では、情報は、当業者に周知であるストレージエリアネットワーク(「SAN」)内に存在することができる。同様に、コンピュータ、サーバ、または他のネットワークデバイスに起因する機能を実施するための任意の必要なファイルが、必要に応じてローカルに及び/または遠隔に記憶されてもよい。
【0093】
実装形態では、上に説明されるコンピューティングデバイス600の構成要素は、単一の筐体内に封入される必要はなく、または互いに接近して位置する必要さえない。当業者は、コンピューティングデバイス600は、開示される実装形態を実施するための任意の必要な付随ファームウェアまたはソフトウェアを含む、任意の種類のハードウェア構成部品を含むことができるので、上記に説明される構成部品は例に過ぎないことを理解するであろう。コンピューティングデバイス600はまた、特定用途向け集積(ASIC)またはフィールドプログラム可能ゲートアレイ(FPGA)など、電子回路素子またはプロセッサによって部分的にまたは全体的に実装することもできる。
【0094】
本開示の実施形態は、以下の条項を考慮して説明することができる。
1.1つ以上のプロセッサにコンピュータリソースサービスの性能を決定するための方法を実施させるための命令を記憶する非一時的コンピュータ可読記憶媒体であって、該方法は、
該コンピュータリソースサービスの該性能を試験する基になるコンピュータシステムのセットを決定することであって、コンピュータシステムの該セットは、第1のコンピュータシステムのうちの少なくとも1つ及び第2のコンピュータシステムのうちの少なくとも1つを含み、該第1のコンピュータシステムは、第1の場所に位置し、該第2のコンピュータシステムは、第2の場所に位置する、決定することと、
コンピュータシステムの該セット内の各コンピュータシステム上で、少なくとも1つの仮想マシンを始動することであって、各コンピュータシステム上の該少なくとも1つの仮想マシンは、第1の構成に従って構成される、始動することと、
コンピュータシステムの該セット内の各コンピュータシステム上で実行している該少なくとも1つの仮想マシンの性能メトリックを決定することと、
該少なくとも1つの仮想マシンに関して、性能メトリック、該少なくとも1つの仮想マシンの第1の構成、及び該少なくとも1つの仮想マシン上で実行している各コンピュータシステムの場所情報を含む記録を記憶することと、を含む、非一時的コンピュータ可読記憶媒体。
2.コンピュータシステムの該セットを決定することは、
該第1のコンピュータシステムが、第1のハードウェア構成を有する少なくとも1つのコンピュータシステム及び第2のハードウェア構成を有する少なくとも1つのコンピュータシステムを備えることを決定することと、
コンピュータシステムの該セット内に含まれるために、該第1のハードウェア構成を有する該少なくとも1つのコンピュータシステム及び該第2のハードウェア構成を有する該少なくとも1つのコンピュータシステムを選択することと、を含む、条項1の非一時的コンピュータ可読記憶媒体。
3.該方法は、
コンピュータシステムの該セット内の各コンピュータシステム上で、少なくとも1つの追加の仮想マシンを始動することであって、該少なくとも1つの追加の仮想マシンは、該第1の構成とは異なる構成を有する、始動することと、
コンピュータシステムの該セット内の各コンピュータシステム上で実行している該少なくとも1つの追加の仮想マシンの追加の性能メトリックを監視することと
該追加の性能メトリックを記憶することと、をさらに含む、条項1の非一時的コンピュータ可読記憶媒体。
4.該方法は、
コンピュータシステムの該セット内の各コンピュータシステム上の該少なくとも1つの仮想マシン上に、監視エージェントをインストールすることであって、該監視エージェントは、該性能メトリックの一部を収集する、インストールすることをさらに含む、条項1の非一時的コンピュータ可読記憶媒体。
5.コンピュータリソースサービスの性能を決定するためのコンピュータ実装方法であって、
該コンピュータリソースサービスの該性能を試験する基になるコンピュータシステムのセットを決定することであって、該コンピュータシステムの該セット内の各コンピュータシステムは、該コンピュータシステムの場所分布及び該コンピュータシステムの該コンピュータリソースの差異のうちの少なくとも1つを代表して表す、決定することと、
該コンピュータシステムの該セット内の各コンピュータシステム上で、少なくとも1つの仮想マシンを始動することと、
プロセッサによって、コンピュータシステムの該セット内の各コンピュータシステム上で実行している該少なくとも1つの仮想マシンの性能メトリックを監視することと、
コンピュータ可読記憶媒体に該性能メトリックを記憶することと、を含む、コンピュータ実装方法。
6.該コンピュータシステムの該セット内の各コンピュータシステム上の該少なくとも1つの仮想マシン上に、監視エージェントをインストールすることであって、該監視エージェントは、該性能メトリックの一部を収集する、インストールすることをさらに含む、条項5のコンピュータ実装方法。
7.該性能メトリックを監視することは、
該監視エージェントから性能メトリックの該一部を受信することを含む、条項6のコンピュータ実装方法。
8.該性能メトリックは、プロセッサ性能、メモリ性能、入力/出力性能、及びネットワーク通信性能のうちの少なくとも1つを含む、条項5のコンピュータ実装方法。
9.該性能メトリックに少なくとも部分的に基づいて、利用可能なコンピュータリソースを有する該コンピュータシステムのうちの1つを決定することと、
既存の仮想マシンを該コンピュータシステムのうちの該1つに移行することと、をさらに含む、条項5のコンピュータ実装方法。
10.該性能メトリックに少なくとも部分的に基づいて、アップグレードを必要とする該コンピュータシステムのうちの1つを決定することと、
該必要とされるアップグレードの通知を提供することと、をさらに含む、条項5のコンピュータ実装方法。
11.ウェブサービスプロトコルを介して、該性能メトリックのセットを提供する要求を受信することと、
該要求に少なくとも部分的に基づいて、該コンピュータ可読記憶媒体に記憶された該性能メトリックから該性能メトリックの該セットを取り出すことと、
性能メトリックの該セットを該要求の発信元に提供することと、をさらに含む、条項5のコンピュータ実装方法。
12.該コンピュータリソースサービス内に仮想マシンを始動する要求を受信することと、
該性能メトリックに少なくとも部分的に基づいて、該仮想マシンを始動する基になる少なくとも1つのコンピュータシステムを該コンピュータシステムから決定することと、をさらに含む、条項5のコンピュータ実装方法。
13.該コンピュータシステムの第1の部分は、第1の地理的場所に位置し、該コンピュータシステムの第2の部分は、第2の地理的場所に位置し、
該コンピュータシステムの該セットは、第1の部分からの少なくとも1つのコンピュータシステムと、該第2の部分からの少なくとも1つのコンピュータシステムとを含む、条項5のコンピュータ実装方法。
14.該コンピュータシステムの該セット内の各コンピュータシステム上で、少なくとも1つの追加の仮想マシンを始動することであって、該少なくとも1つの追加の仮想マシンは、該少なくとも1つの仮想マシンとは異なる構成を有する、始動することと、
該プロセッサによって、コンピュータシステムの該セット内の各コンピュータシステム上で実行している該少なくとも1つの追加の仮想マシンの追加の性能メトリックを監視し、
該コンピュータ可読記憶媒体に、該追加の性能メトリック記憶することと、をさらに含む、条項5のコンピュータ実装方法。
15.コンピュータリソースサービスの性能を決定するためのシステムであって、
命令を含む少なくとも1つのメモリデバイスと、
該コンピュータリソースサービスと通信するように構成されるネットワークインターフェースであって、該コンピュータリソースサービスはコンピュータシステムを備える、ネットワークインターフェースと、
少なくとも1つのメモリデバイス及びネットワークインターフェースに連結され、
該コンピュータリソースサービスの該性能を試験する基になるコンピュータシステムのセットを決定することであって、該コンピュータシステムの該セット内の各コンピュータシステムは、該コンピュータシステムの場所分布及び該コンピュータシステムのコンピュータリソースの差異のうちの少なくとも1つを代表して表す、決定することと、
該コンピュータシステムの該セット内の各コンピュータシステム上で、少なくとも1つの仮想マシンを始動することと、
該ネットワークインターフェースを介して、コンピュータシステムの該セット内の各コンピュータシステム上で実行している該少なくとも1つの仮想マシンの性能メトリックを監視することと、
コンピュータ可読記憶媒体に該性能メトリックを記憶することと、を含む方法を実施する命令を実行するように構成される、少なくとも1つのプロセッサと、を備える、システム。
16.該少なくとも1つのプロセッサは、
該コンピュータシステムの該セット内の各コンピュータシステム上の該少なくとも1つの仮想マシン上に、監視エージェントをインストールすることと、
該ネットワークインターフェースを介して、該監視エージェントから該性能メトリックの一部を受信することと、をさらに含む該方法を実施する該命令を実行するようにさらに構成される、条項15のシステム。
17.該監視エージェントは、該少なくとも1つの仮想マシン上で実行して、プロセッサ性能、メモリ性能、入力/出力性能、及びネットワーク通信性能のうちの少なくとも1つを含む該性能メトリックを収集する命令を含む、条項16のシステム。
18.該少なくとも1つのプロセッサは、
該性能メトリックに少なくとも部分的に基づいて、利用可能なコンピュータリソースを有する該コンピュータシステムのうちの1つを決定することと、
既存の仮想マシンを該コンピュータシステムのうちの該1つに移行することと、をさらに含む該方法を実施する該命令を実行するようにさらに構成される、条項15のシステム。
19.該少なくとも1つのプロセッサは、
該性能メトリックに少なくとも部分的に基づいて、アップグレードを必要とする該コンピュータシステムのうちの1つを決定することと、
該必要とされるアップグレードの通知を提供することと、をさらに含む該方法を実施する該命令を実行するようにさらに構成される、条項15のシステム。
20.該少なくとも1つのプロセッサは、
該ネットワークインターフェースを介して、該性能メトリックのセットを提供する要求を受信することと、
該要求に少なくとも部分的に基づいて、該コンピュータ可読記憶媒体に記憶された該性能メトリックから該性能メトリックの該セットを取り出すことと、
該ネットワークインターフェースを介して、性能メトリックの該セットを該要求の発信元に提供することと、をさらに含む該方法を実施する該命令を実行するようにさらに構成される、条項15のシステム。
21.該少なくとも1つのプロセッサは、
該コンピュータリソースサービス内で仮想マシンを始動する要求を受信することと、
該性能メトリックに少なくとも部分的に基づいて、該仮想マシンを始動する基になる少なくとも1つのコンピュータシステムを該コンピュータシステムから決定することと、をさらに含む該方法を実施する該命令を実行するようにさらに構成される、条項15のシステム。
22.該コンピュータシステムの第1の部分は、第1の地理的場所に位置し、該コンピュータシステムの第2の部分は、第2の地理的場所に位置し、
該コンピュータシステムの該セットは、第1の部分からの少なくとも1つのコンピュータシステムと、該第2の部分からの少なくとも1つのコンピュータシステムとを含む、条項15のシステム。
23.該少なくとも1つのプロセッサは、
該コンピュータシステムの該セット内の各コンピュータシステム上で、少なくとも1つの追加の仮想マシンを始動することであって、該少なくとも1つの追加の仮想マシンは、該少なくとも1つの仮想マシンとは異なる構成を有する、始動することと、
コンピュータシステムの該セット内の各コンピュータシステム上で実行している該少なくとも1つの追加の仮想マシンの追加の性能メトリックを監視することと、
該追加の性能メトリックの記録を記憶することと、をさらに含む該方法を実施する該命令を実行するようにさらに構成される、条項15のシステム。
本開示の実施形態はまた、以下の条項を考慮して説明することもできる。
1.1つ以上のプロセッサにコンピュータリソースサービスの性能を評価させるための方法を実施させるための命令を記憶する非一時的コンピュータ可読記憶媒体であって、該方法は、
該コンピュータリソースサービスに関連付けられる性能メトリックに関する要求に含まれるための1つ以上のフィルタを受信することであって、該1つ以上のフィルタは、該要求に応答して性能メトリックのうちのどれを提供すべきかを決定するために使用される1つ以上のパラメータを含む、受信することと
ネットワークを介して、該コンピュータリソースサービスのコンピュータシステム上で実行している試験仮想マシンの該性能メトリックを監視しているシステムに、該要求を送信することと、
該ネットワークを介して、該1つ以上のフィルタによって決定される該性能メトリックのセットを含む応答を受信することであって、性能メトリックの該セットは、該試験仮想マシンの構成に関連付けられる性能メトリックを含む、受信することと、
性能メトリックの該セットに少なくとも部分的に基づいて、該試験仮想マシンの該構成から構成を決定することと、
該構成に従って、該コンピュータリソースサービス内で仮想マシンを始動することと、を含む、非一時的コンピュータ可読記憶媒体。
2.該1つ以上のパラメータは、該コンピュータリソースサービスの該コンピュータシステムの場所、該コンピュータリソースサービスの該コンピュータシステムの構成、該試験仮想マシンの該構成、該試験仮想マシンによって実施されるベンチマーク試験、性能メトリックの種類、日付、時間、該性能メトリックに関連付けられる統計値のうちの少なくとも1つを含む、条項1の非一時的コンピュータ可読記憶媒体。
3.該試験仮想マシンの該構成から該構成を決定することは、
該仮想マシンの所望の性能を決定することと、
該所望の性能を、性能メトリックの該セットと比較することと、
該比較に少なくとも部分的に基づいて、該試験仮想マシンの該構成を決定することと、を含む、条項1の非一時的コンピュータ可読記憶媒体。
4.該方法は、
性能メトリックの該セットに少なくとも部分的に基づいて、該仮想マシンを始動する基になる少なくとも1つのコンピュータシステムを該コンピュータシステムから決定することをさらに含む、条項1の非一時的コンピュータ可読記憶媒体。
5.該方法は、
性能メトリックの該セットに少なくとも部分的に基づいて、該仮想マシンを始動するための該コンピュータシステムの少なくとも1つの場所を決定することをさらに含む、条項1の非一時的コンピュータ可読記憶媒体。
6.コンピュータリソースサービスの性能評価するためのコンピュータ実装方法であって、
ネットワークインターフェースを介して、該コンピュータリソースサービスの性能に関する要求を受信することであって、該要求は、該要求に応答して提供するための性能メトリックを決定するために使用される1つ以上のパラメータを含む、受信することと、
該1つ以上のパラメータに少なくとも部分的に基づいて、該性能メトリックのセットを決定することであって、該性能メトリックの該セットは、該コンピュータリソースサービス内のコンピュータシステムの場所分布及び該コンピュータシステムの該コンピュータリソースの差異のうちの少なくとも1つを代表して表す、決定することと、
該ネットワークインターフェースを介して、該性能メトリックの該セットを含む応答を送信することと、を含む、コンピュータ実装方法。
7.該コンピュータリソースサービスの該コンピュータシステム上で実行している試験仮想マシンから該性能メトリックを決定することをさらに含む、条項6のコンピュータ実装方法。
8.該応答の送信に応答して、性能メトリックの該セットに関連付けられる少なくとも1つのコンピュータシステム上で少なくとも1つの仮想マシンを始動する要求を受信することをさらに含む、条項6のコンピュータ実装方法。
9.該ネットワークインターフェースは、ウェブサービスインターフェースである、条項6のコンピュータ実装方法。
10.該1つ以上のパラメータは、該コンピュータリソースサービスの該コンピュータシステムの場所、該コンピュータリソースサービスの該コンピュータシステムの構成、該試験仮想マシンの該構成、該試験仮想マシンによって実施されるベンチマーク試験、性能メトリックの種類、日付、時間、該性能メトリックに関連付けられる統計値のうちの少なくとも1つを含む、条項6のコンピュータ実装方法。
11.コンピュータリソースサービスの性能を評価するためのコンピュータ実装方法であって、
ネットワークインターフェースを介して、該コンピュータリソースサービスの性能に関する要求を提供することであって、該要求は、該要求に応答して提供するための性能メトリックを決定するために使用される1つ以上のパラメータを含む、受信することと、
該性能メトリックのセットを受信することであって、該性能メトリックの該セットは、該コンピュータリソースサービス内のコンピュータシステムの場所分布及び該コンピュータシステムの該コンピュータリソースの差異のうちの少なくとも1つを代表して表す、受信することと、
性能メトリックの該セットに少なくとも部分的に基づいて、該コンピュータリソースサービスに関連付けられる動作を実施することと、を含む、コンピュータ実装方法。
12.該動作を実施することは、
該コンピュータリソースサービスの該コンピュータシステムから第1のコンピュータシステム及び第2のコンピュータシステムを決定することであって、該第1のコンピュータシステムは、第1の場所に位置し、該第2のコンピュータシステムは、第2の場所に位置する、決定することと、
性能メトリックの該セットに少なくとも部分的に基づいて、該第1のコンピュータシステムが所望の性能で動作していることを決定することと、
該第1のコンピュータシステムのうちの少なくとも1つ上で少なくとも1つの仮想マシンを始動することと、を含む、条項11のコンピュータ実装方法。
13.該動作を実施することは、
該コンピュータリソースサービスの該コンピュータシステムから第1のコンピュータシステム及び第2のコンピュータシステムを決定することであって、該第1のコンピュータシステムは、第1の構成を含み、該第2のコンピュータシステムは、第2の構成を含む、決定することと、
性能メトリックの該セットに少なくとも部分的に基づいて、該第1のコンピュータシステムが所望の性能で動作していることを決定することと、
該第1のコンピュータシステムのうちの少なくとも1つ上で少なくとも1つの仮想マシンを始動することと、を含む、条項11のコンピュータ実装方法。
14.該動作を実施することは、
該試験仮想マシンの第1の構成及び該試験仮想マシンの第2の構成を決定することと、
性能メトリックの該セットに少なくとも部分的に基づいて、該第1の構成が所望の性能で動作していることを決定することと、
該第1の構成に従って、該コンピュータシステム上で少なくとも1つの仮想マシンを始動することと、を含む、条項11のコンピュータ実装方法。
15.該動作を実施することは、
該性能メトリックの該セットに少なくとも部分的に基づいて、利用可能なコンピュータリソースを有する該コンピュータシステムのうちの1つを決定することと、
既存の仮想マシンを該コンピュータシステムのうちの該1つに移行することと、を含む、条項11のコンピュータ実装方法。
16.コンピュータリソースサービスの性能を評価するためのシステムであって、
命令を含む少なくとも1つのメモリデバイスと、
表示デバイスと、
少なくとも1つのメモリデバイス及び該表示デバイスに連結され、
該コンピュータリソースサービスの性能に関する要求を送信することであって、該要求は、該要求に応答して性能メトリックのうちのどれを提供すべきかを決定するために使用される1つ以上のパラメータを含む、送信することと、
該1つ以上のパラメータによって決定される該性能メトリックのセットを含む応答を受信することと、
該表示デバイスを介して、性能メトリックの該セットの一部を出力することと、を含む方法を実施する該命令を実行するように構成される、少なくとも1つのプロセッサと、を備える、該システム。
17.該少なくとも1つのプロセッサに連結される入力デバイスをさらに備え、該入力デバイスは、該1つ以上のパラメータを受信する、条項16のシステム。
18.該性能メトリックを監視しているシステムと通信するように構成されるネットワークデバイスをさらに備え、該要求は、ウェブサービスプロトコルを介して、該システムに送信される、条項16のシステム。
19.該コンピュータリソースサービスのコンピュータシステムと通信するように構成されるネットワークデバイスをさらに備え、該少なくとも1つのプロセッサは、該性能メトリックを監視するように構成される、条項16のシステム。
20.該コンピュータリソースサービスのコンピュータシステムと通信するように構成されるネットワークデバイスをさらに備え、該少なくとも1つのプロセッサは、監視エージェントと通信し、該ネットワークデバイスを介して、該監視エージェントから該性能メトリックの一部を収集するように構成される、条項16のシステム。
21.該少なくとも1つのプロセッサは、
該試験仮想マシンの第1の構成及び該試験仮想マシンの第2の構成を決定することと、
性能メトリックの該セットに少なくとも部分的に基づいて、該第1の構成が所望の性能で動作していることを決定することと、
該第1の構成に従って、該コンピュータシステム上で少なくとも1つの仮想マシンを始動することと、をさらに含む該方法を実施する命令を実行するように構成される、条項16のシステム。
【0095】
上に説明される特定の実装形態は、コンピュータアプリケーションまたはプログラムとして実施することができる。コンピュータプログラムは、アクティブ及び非アクティブの両方の種々の形式で存在することができる。例えば、コンピュータプログラムは、ソースコード、オブジェクトコード、実行可能なコードもしくは他のフォーマットのプログラム命令から成り得る、1つ以上のソフトウェアプログラム、ソフトウェアモジュール、もしくはその両方、ファームウェアプログラム(単数または複数)、またはハードウェア記述言語(HDL)ファイルとして存在することができる。上記のいずれも、コンピュータ可読記憶デバイス及び媒体を含むコンピュータ可読媒体ならびに信号上に、圧縮または非圧縮形式で具現化することができる。コンピュータ可読記憶デバイス及び媒体の例としては、従来のコンピュータシステムRAM(ランダムアクセスメモリ)、ROM(読み取り専用メモリ)、EPROM(消去可能なプログラム可能ROM)、EEPROM(電気的に消去可能なプログラム可能ROM)、及び磁気または光ディスクまたはテープが挙げられる。コンピュータ可読信号の例は、キャリアを使用して変調されているかいないかにかかわらず、本教示をホストまたは起動しているコンピュータシステムが、アクセスするように構成され得る信号であり、インターネットまたは他のネットワークを通じてダウンロードされる信号を含む。前述のものの具体的な例としては、CD−ROM上での、またはインターネットでのダウンロードを介した、コンピュータプログラムの実行可能なソフトウェアプログラム(単数または複数)の配布が挙げられる。ある意味では、インターネットはそれ自体、抽象的実体としてコンピュータ可読媒体である。コンピュータネットワークに関しても、概して同じことが言える。
【0096】
本教示を、それらの実装形態の実施例を参照して説明してきたが、当業者は、その真の趣旨及び範囲から逸脱することなく、説明される実装形態に種々の修正を行うことができるであろう。本明細書で使用される用語及び説明は、単に例示のために記載され、限定を意味するものではない。具体的には、本方法は実施例によって説明されているが、本方法のステップは、例示される順序とは異なる順序で、または同時に実施することができる。さらに、「含む」、「含む」、「有する」、「有する」、「を伴う」という用語、またはそれらの変形語が、発明を実施するための形態か特許請求の範囲かのいずれかで使用される範囲において、かかる用語は、「備える」という用語と同様の様式で、包含的であることを意図される。本明細書で使用されるとき、例えば、A及びBなどの項目の列挙に関して、「のうちの1つ以上」及び「のうちの少なくとも1つ」という用語は、A単独、B単独、またはA及びBを意味する。さらに、別段に指定のない限り、「セット」という用語は、「1つ以上」として解釈されるべきである。また、「連結する(couple)」または「連結する(couples)」という用語は、間接的接続かまたは直接的接続かのいずれかを意味することが意図される。したがって、第1のデバイスが第2のデバイスに連結する場合、その接続は、直接的接続を通じてもよく、または他のデバイス、構成要素、及び接続を介した間接的接続を通じてもよい。
【0097】
単純化及び例示の目的のために、本教示の原理は、主にその種々の実装形態の実施例を参照することによって上記に説明される。しかしながら、当業者は、同一の原理が多数の異なる種類の情報及びシステムに等しく適用可能であり、また多数の異なる種類の情報及びシステムに実装され得ること、及び任意のかかる変形は本教示の真の趣旨及び範囲から逸脱しないことを容易に認識するであろう。さらに、前述の発明を実施するための形態では、添付の図面への参照がなされており、それは、種々の実装形態の特定の実施例を例示する。電気的、機械的、論理的、及び構造的変更を、本教示の趣旨及び範囲から逸脱することなく、種々の実装形態の実施例に行うことができる。したがって、前述の発明を実施するための形態は限定的な意味で解釈されるべきではなく、本教示の範囲は、添付の特許請求の範囲及びそれらの均等物によって定義される。
図1
図2
図3A
図3B
図4
図5
図6