[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5939740B2 - 動的にリソースを割り当てる方法、システム及びプログラム - Google Patents

動的にリソースを割り当てる方法、システム及びプログラム Download PDF

Info

Publication number
JP5939740B2
JP5939740B2 JP2011086958A JP2011086958A JP5939740B2 JP 5939740 B2 JP5939740 B2 JP 5939740B2 JP 2011086958 A JP2011086958 A JP 2011086958A JP 2011086958 A JP2011086958 A JP 2011086958A JP 5939740 B2 JP5939740 B2 JP 5939740B2
Authority
JP
Japan
Prior art keywords
request
certainty
compute node
server system
reservation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011086958A
Other languages
English (en)
Other versions
JP2012221273A (ja
Inventor
道昭 立堀
道昭 立堀
陽平 上田
陽平 上田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2011086958A priority Critical patent/JP5939740B2/ja
Priority to US13/443,945 priority patent/US9495214B2/en
Priority to US13/602,932 priority patent/US20120331152A1/en
Publication of JP2012221273A publication Critical patent/JP2012221273A/ja
Application granted granted Critical
Publication of JP5939740B2 publication Critical patent/JP5939740B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5014Reservation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

この発明は、クラウド・コンピューティング・システムなどのサーバ環境における制御に関し、クライアントからのサービス要求の変化に対応して、サーバ環境がクライアントに提供するリソースを動的に変化させる技法に関する。
近年、通信インフラの改善により、コンピュータの間の通信速度が高まるにつれて、ホスト・コンピュータを自社内ではなく、海外など、遠隔の地に配置することが可能となってきた。このため、多数のサーバを配置して、所定のアプリケーション、計算リソース、あるいは、ストレージなどの使用をユーザにレンタルするベンダがあらわれてきた。このような形態のコンピュータ・リソースの使い方は、クラウド・コンピューティングと呼ばれる。
クラウド・コンピューティングは下記のような種類に類別される。
・SaaS(Software as a service):これは、ソフトウェアをサービスとして提供するものである。例えば、給与計算プログラムの使用を、クライアントに提供する。
・PaaS(Platform as a service):これは、プラットフォームをサービスとして提供するものである。一般的に、スケーリングを考慮せずアプリケーションを動かせるという特徴がある。すなわち、クラウド・コンピューティングのベンダは、クライアントからのサービス要求が増大するにつれて、自動的にリソースを追加するので、性能低下をクライアントに体感させない。プラットフォームには、データベース、アプリケーション実行環境、管理ツールなどのミドルウェアが含まれる。
・IaaS(Infrastructure as a service):これは、仮想マシンやストレージなどのインフラストラクチャを提供するものである。そのインフラストラクチャ上で、所望のオペレーティング・システムやミドルウェアを導入できる。この場合、クライアントがスケーリングを考慮する必要がある。
クラウド・コンピューティング、特にPaaSの最大の魅力の1つとして、サービス要求の量の変化に応じて柔軟に、サーバの規模を変化させられるということがある。
このような要求をみたす1つの仕組みとして、ロード・バランサがある。例えば、WebSphere(商標) Virtual Enterpriseなどでは、予め用意しておいた複数のサーバの許容量までの要求の増加に対応できる。ただ、ロード・バランサの仕組みを実現するには、複数のサーバを予め用意して走らせておかなくてはならない。すると、活きているサーバ・インスタンスで課金されると、チャージが高価になる。
別の仕組みとして、クラウドAPIがある。例えば、Amazon(商標) Web Serviceなどでは、クラウドにおけるサーバ・インスタンスの作成・起動などを制御することが可能である。しかし、サーバ・インスタンスの作成や起動に時間がかかりすぎるという問題がある。
この技術分野で、下記のような特許文献がある。
まず、特開平11−282695号公報は、多重システム・クラスタ内のサーバの数を制御する方法及び装置に関し、入来作業要求がサービス・クラスに編成され、それらの各々がクラスタに渡って、サーバによりサービスされるキューを有するようになされる。各サービス・クラスは予め、所定の性能指標を割当てられる。各システムはサービス・クラスがそれらの目標にどれ程良く合致するかにもとづき、あるサービス・クラスを、システム資源を提供するドナー・クラスとして選択し、別のサービス・クラスを、システム資源を受け取るレシーバ・クラスとして選択する。各システムは次に、レシーバ・クラスがその目標を逸する原因となる資源ボトルネックがサーバの数の場合、各システムは、サーバの追加がレシーバ・クラスの性能指標に及ぼすプラスの効果が、ドナー・クラスの性能指標に及ぼすマイナスの効果を上回るか否かにもとづき、幾つのサーバがレシーバ・クラスに追加されるべきかを決定する。
特開2002−163241号公報は、需要変動に応じて、サービス提供側の資源を動的に再構成することに関し、開示されているシステムによれば、各クライアント1からのアクセス要求(サービス要求)は、負荷分散装置により、サーバクラスタで稼働中のいずれかのサーバに振り分けられる。そして、アクセスが増大又は減少すると、管理モジュールは、サーバクラスタの構成変更を指示し、サーバクラスタへのサーバ6の追加又はサーバクラスタからのサーバの削除等を行わせる。サーバクラスタの構成変更は、管理モジュールにより負荷分散装置のアクセス振り分け先リストに反映される。
特開2003−162516号公報は、複数の利用者から発行される大容量データのデータ処理要求に対応するために、ネットワーク、プロセッサ、データストレージなどの資源の動的静的構成と、データ処理業務の動的静的割当てが可能な高速大容量データ処理システムを実現することに関し、複数台の高速データ処理装置と複数台のデータ蓄積装置を超高速ネットワークで接続したネットワーク後置サーバーと、複数の端末装置から発行されるデータ処理要求に対応してデータストレージのネットワーク上の位置とネットワークの負荷、データ処理の負荷を動的静的に勘案して、ネットワークトポロジ、プロセッサトポロジの動的静的構成と複数の高速データ処理装置へのデータ処理業務の動的静的分配を行い、ネットワークの負荷とデータ処理の負荷を動的静的に配分する機能を備えることによって高速大容量データ処理が可能なマルチプロセッサシステムおよびデータ蓄積システムを開示する。
特開2005−141605号公報は、複数のサービス間で余剰のリソースを融通でき、余剰リソースの維持コストが低減できるリソース配分方法に関し、待機系計算機リソースが、少なくともアプリケーションがインストールされていないデッドスタンバイ状態を持ち、このデッドスタンバイ状態の計算機リソースを複数サービスや複数ユーザで共有することで、遊休計算機リソースの使用率の向上やサーバ統合を実現し、計算機リソース維持に必要なコストを削減し、また、個々のサービスに関し過去の稼動履歴を用いて負荷予測を行い、余剰のでるサービスから確保して維持している遊休計算機リソースを予測結果に応じて投入することを開示する。
特開2009−37369号公報は、データ量の増加や複数バッチ処理の同時実行によりバッチ処理が予め設定した要求時間内に終了しないという課題を解決するために、バッチ処理実行中にて既に実行済みSQLの処理時間及びリソース使用量をもとに未実行バッチ処理手順の処理時間及びリソース使用量を算出した後、バッファヒット率等のデータベースサーバの状態を示す情報、I/O回数やCPU負荷などのOSの情報を用いて処理手順及びリソース使用量を再計算し、必要に応じてリソースの割当てを行うことを開示する。
また、この技術分野で、下記のような非特許文献がある。
Donald Kossmann, Tim Kraska, Simon Loesing: An evaluation of alternative architectures for transaction processing in the cloud, SIGMOD 2010, pp.579-590は、クラウド・コンピューティングにおけるトランザクション処理について記述する。
Tim Kraska, Martin Hentschel, Gustavo Alonso, Donald Kossmann: Consistency Rationing in the Cloud: Pay only when it matters. VLDB 2009, pp.253-264は、設計者にデータ上での一貫性保証を定義することを可能ならしめるだけでなく、ランタイムで一貫性保証を切り替えることをも可能にするトランザクション・パラダイムを記述する。
Carsten Binnig, Donald Kossmann, Tim Kraska, Simon Loesing: How is the weather tomorrow?: towards a benchmark for the cloud. DBTest 2009は、クラウド・コンピューティングのシステムのスケーラビリティ、フォールト・トレランスなどのベンチマーキングについて記述する。
これらの従来技術によれば、クラウド・コンピューティング・システムにおいて、サービス要求に対して、必要なだけリソースを割り当る技術は教示される。
一方、特にPaaSにおいて、動的に変化していくサービスの要求の負荷に、求められるスピードや確実性を満たしながら、効率よくリソースを割り当る技術の対する要望があらわれてきている。しかし、上記従来技術では、このような要望に十分応えることはできない。
特開平11−282695号公報 特開2002−163241号公報 特開2003−162516号公報 特開2005−141605号公報 特開2009−37369号公報
Donald Kossmann, Tim Kraska, Simon Loesing: An evaluation of alternative architectures for transaction processing in the cloud, SIGMOD 2010, pp.579-590 Tim Kraska, Martin Hentschel, Gustavo Alonso, Donald Kossmann: Consistency Rationing in the Cloud: Pay only when it matters. VLDB 2009, pp.253-264 Carsten Binnig, Donald Kossmann, Tim Kraska, Simon Loesing: How is the weather tomorrow?: towards a benchmark for the cloud. DBTest 2009
従って、この発明の目的は、クラウド・コンピューティングなどのサービスにおいて、クライアントに、所定の確実度の範囲で動的スケーラビリティの品質要求を可能ならしめることにある。
上記目的は、本発明に従い、動的スケーラビリティの品質要求指標を可変にし、与えられた指標を満たすように、様々な手段からなる事前準備を組み合わせたプラットフォーム・サービスを提供することによって達成される。
すなわち、プラットフォームの許容量拡大の上限と拡大スピードへの要求をもって、一定の確実性を担保された動的スケーラビリティの品質要求の指標とする。この要求を満たすように、本発明に従うクラウド・サーバは、ホット・スタンバイ、スワップ・アウト状態、コールド・スタンバイなどの様々な事前準備状況のプラットフォームを組み合わせて提供する。
本発明に従うクラウド・サーバは、例えば、記憶系リソースを異なる予約間で共用する一方で、複数の実リソースに多重化して割り当てる。そして、すべての利用者のスケールアップの状況を常にモニタし、与えられた確実性を満たすように、共用と多重化を調整する。
動作において、クラウド・コンピューティングなどのサービスのユーザは、予め所定の動的スケーラビリティのサービス品質保証契約(service level agreement = SLA)を、クラウド・コンピューティングのプロバイダと結んでおく。これには限定されないが、ここでは、主としてPaaSを想定する。そして、ユーザは、必要に応じて、クラウド・サーバに対してリクエストを送る。クラウド・サーバは、受け取ったリクエストを一旦キューに入れて、順次処理していく。
リクエストには、ユーザからの仮想マシン(VM)追加要求であるUpイベント処理と、ユーザからの仮想マシン(VM)削除要求であるDownイベント処理が含まれる。
クラウド・サーバは、リクエストがUpイベント処理である場合、リソースの予約テーブルを更新して、該当VMインスタンスを追加し、利用するCPUを、CPUのプール集合から削除し、リソース割当調整処理を行う。
一方、クラウド・サーバは、リクエストがDownイベント処理である場合、該当VMインスタンスを削除し、それによって利用可能になったCPUを、 CPUのプール集合に戻し、確実性が満たされるかどうか判断する。ここで確実性が満たされるとは、予約の現在の確実性が、サービス品質保証契約で要求されている確実性より大きいということである。もしそうでないなら、クラウド・サーバは、CPUのプール集合をみて、CPUが割当可能か判断し、もし割当可能なら、ハードウェア・リソースを追加する。
確実性は、例えば、ポアッソン分布などに従い、確率的に計算することができる。
この発明によれば、クラウド・サービスなどのサーバ提供サービスにおいて、動的スケーラビリティを妥当な価格でユーザに提供することが可能になる。例えば、「100インスタンスを、30分で、80%の確実性で」増強できるように、というリクエストを受けることができ、またそのような条件に適切に価格設定可能である。これにより、従来考えられなかった新しいSLAが提示可能となる。
本発明を実施するための全体構成の概要を示す図である。 クライアント・コンピュータの一例の構成のブロック図である。 サーバ・コンピュータの一例の構成のブロック図である。 仮想化のための構成を示すブロック図である。 仮想化のための管理アプリケーションの構成を示すブロック図である。 キュー処理のフローチャートを示す図である。 Upイベント処理のフローチャートを示す図である。 Downイベント処理のフローチャートを示す図である。 リソース割当調整処理のフローチャートを示す図である。 テーブル更新処理のフローチャートを示す図である。 テーブル更新処理のフローチャートを示す図である。 予約テーブルのエントリの例を示す図である。 予約テーブルのエントリの例を示す図である。 リソースの準備状態とコストの対応を示す図である。 VMインスタンスを立ち上げを示す図である。 本発明の仕組みと、従来技術の仕組みとの、性能及びコストの相違点を図式的に説明する図である。
以下、図面を参照して、本発明の実施例を説明する。特に断わらない限り、同一の参照番号は、図面を通して、同一の対象を指すものとする。また、以下で説明するのは、本発明の一実施形態であり、この発明を、この実施例で説明する内容に限定する意図はないことに留意されたい。
図1は、本発明を実施するためのシステム全体の概要を示す図である。クラウド・サーバのユーザが使うクライアント・コンピュータ102a、102b・・・102zは、詳細には図示しないが、適当なプロキシ・サーバなどを介して、インターネット104に接続されている。
クライアント・コンピュータ102a、102b・・・102zはさらに、インターネット104を介して、クラウド・サービス、特にPaaSサービスのプロバイダのシステム110に接続される。
システム110は、スケジューラ112と、好適にはハードディスクに保存された、スケジューラ112の予約スケジュールのデータ114と、クライアント・コンピュータからのリクエストを入れるためのキュー116と、リソース・アロケータ118と、好適にはハードディスクに保存され、リソース・アロケータ118が参照し更新する予約テーブルのデータ120と、キュー116のデータに基づきユーザの状況を監視するユーザ・モニタ122と、計算資源としての複数のコンピュータ(計算ノード)132、・・・152と、記憶資源としてのストレージ・エリア・ネットワーク(SAN)、ネットワーク接続ストレージ(NAS)、あるいは遠隔ディスク装置であるディスク・ストレージ装置154、156、158・・からなるハードウェア・リソース・プール130を有する。
スケジューラ112は、クライアント・コンピュータ102a、102b・・・102zからのリクエストを受付け、一旦予約スケジュール114に格納する。そして、リクエストによって指定された日時になると、そのリクエストをキュー116に入れ、リソース・アロケータ118の処理に委ねる。
この実施例では、クラウド・コンピューティングなどのサービスのユーザは、予め所定の動的スケーラビリティのサービス品質保証契約(service level agreement = SLA)を、クラウド・コンピューティングのプロバイダと結んでおく。このような契約の内容は、予めプロバイダの所定のシステムに格納され、必要に応じて参照される。このような契約の内容は、例えば、予約スケジュール114に含めてもよい。
リクエストには、動的スケーラビリティのサービス品質保証契約の内容、ユーザからの仮想マシン(VM)追加要求であるUpイベント処理と、ユーザからの仮想マシン(VM)削除要求であるDownイベント処理などが含まれえる。
リソース・アロケータ118は、リクエストがUpイベント処理である場合、予約テーブル120を更新して、VMインスタンスを追加し、利用するハードウェア資源(特にCPU)を、ハードウェア・リソース・プール130から、リソース割当調整する。なおここでCPUとは具体的に、ハードウェア・リソース・プール130におけるコンピュータ(計算ノード)132、134などのことである。
一方、リソース・アロケータ118は、リクエストがDownイベント処理である場合、該当VMインスタンスを削除し、それによって利用可能になったCPUを、CPUのリソース・プールに戻し、確実性が満たされるかどうか判断する。ここで確実性が満たされるとは、サービス品質保証契約に従う予約の要求されている確実性が、予約の現在の確実性より大きいということである。もしそうなら、リソース・アロケータ118は、予約テーブル120をみて、CPUが割当可能か判断し、もしそうなら、CPUを追加する。
リソース・アロケータ118は、クライアントからのリクエストに応じて、ハードウェア・リソース・プール130のリソースを割当あるいは開放するだけではなく、動作状況を監視する役割も果たす。
なお、スケジューラ112、リソース・アロケータ118、及びユーザ・モニタ122の機能は、コンピュータ・ハードウェアのハードディスクに導入されたソフトウェアとして実現することができ、当該コンピュータに導入されたオペレーティング・システムの働きで、当該コンピュータの主記憶にロードされて実行される。
スケジューラ112、リソース・アロケータ118、及びユーザ・モニタ122は、好適には同一のコンピュータ・ハードウェア上で実行され、予約スケジュール114と、予約テーブル120は、当該のコンピュータのハードディスクに保存されてもよく、あるいは、そのうちの一部が、ネットワーク接続された別のコンピュータ・ハードウェア上にあってもよい。
次に、図2を参照して、クライアント・コンピュータ102a、102b・・・102zの例示的な構成を説明する。
次に、図2を参照して、図1で参照番号106a、106b・・・106zのように示されているクライアント・コンピュータのハードウェア・ブロック図について、説明する。図2において、クライアント・コンピュータは、主記憶206、CPU204、IDEコントローラ208をもち、これらは、バス202に接続されている。バス202には更に、ディスプレイ・コントローラ214と、通信インターフェース218と、USBインターフェース220と、オーディオ・インターフェース222と、キーボード・マウス・コントローラ228が接続されている。IDEコントローラ208には、ハードディスク・ドライブ(HDD)210と、DVDドライブ212が接続されている。DVDドライブ212は、必要に応じて、CD−ROMやDVDから、プログラムを導入するために使用する。ディスプレイ・コントローラ214には、好適には、LCD画面をもつディスプレイ装置216が接続されている。ディスプレイ装置216には、Webブラウザを通じて、アプリケーションの画面が表示される。
USBインターフェース220には、必要に応じて、拡張ハードディスクなどのデバイスを接続をすることができる。
キーボード・マウス・コントローラ228には、キーボード230と、マウス232が接続されている。キーボード230とマウス232は、テキスト・エディタなどの所定のプログラムを使って、プロバイダによって定義されたAPIを使用したプログラムを作成したり、使用される。
CPU204は、例えば、32ビット・アーキテクチャまたは64ビット・アーキテクチャに基づく任意のものでよく、インテル社のPentium(インテル・コーポレーションの商標)4、Core(商標)2 Duo、AMD社のAthlon(商標)などを使用することができる。
ハードディスク・ドライブ210には、少なくとも、オペレーティング・システムと、オペレーティング・システム上で動作するWebブラウザ(図示しない)が格納されており、システムの起動時に、オペレーティング・システムは、メインメモリ206にロードされる。さらに、好適には、APIを呼び出すためのプログラムを作成するためのテキスト・エディタ、またはEclipse(Eclipse Foundationの商標)などの開発環境、オペレーティング・システムは、Windows XP(マイクロソフト・コーポレーションの商標)、Windows Vista(マイクロソフト・コーポレーションの商標)、Windows(マイクロソフト・コーポレーションの商標) 7、Linux(Linus Torvaldsの商標)などを使用することができる。また、Webブラウザは、マイクロソフト・コーポレーションのInternet Explorer、Mozilla FoundationのMizilla FireFoxなど、任意のものを使用することができる。
通信インターフェース218は、オペレーティング・システムが提供するTCP/IP通信機能を利用して、イーサネット(商標)・プロトコルなどにより、インターネット104と通信する。
APIを使用したプログラムを作成する1つの方法は、これには限定されないが、開発環境のツールを用いて、例えば、作成するWebページに、JavaScript(R)のタグをつけ、その中で、プロバイダが提供した所定のURLをsrc=" "で指定し、APIで定義された関数を所定の引数とともに呼び出すような書き方をすることである。
図3は、ハードウェア・リソース・プール130における個々のコンピュータ(計算ノード)132、134、・・・、152のハードウェア構成の概要ブロック図である。これらは各々、通信インターフェース302をもつ。通信インターフェース302はさらに、バス304に接続され、バス304には、CPU306、主記憶(RAM)308、及びハードディスク・ドライブ(HDD)310が接続されている。コンピュータ(計算ノード)132、134、・・・、152は、好適には同じサイトに配置され、光ファイバなどの構内高速ネットワーク接続網により互いに接続されるが、あるいは、インターネット回線を介して接続され、遠隔地に配置されていてもよい。コンピュータ132、134、・・・、152としては、IBM(R) System X、IBM(R) Power System(R)などの、目的に応じた任意のコンピュータ・ハードウェア・システムを使用することができる。
スケジューラ112、予約スケジュール114、キュー116、リソース・アロケータ118、予約テーブル120及びユーザ・モニタ122を走らせるコンピュータ・システムは、コンピュータ132、134、・・・、152などと同一タイプのものでよい。
図1のハードウェア・リソース・プール130は、ディスク装置154、156、158などを統合するために、IBM(R) System Storage SANボリューム・コントローラのような、SAN管理ハードウェアを備えていてもよい。
図4は、システム110に導入されているハードウェア仮想化環境を示す図である。リソース・アロケータ118が導入されているコンピュータ・システムには、ハイパーバイザ402が導入され、セットアップされている。ここで使用可能なハイパーバイザ402は、これらには限定されないが、Xen、Microsoft社のHyper-V、VMware社のVMware(R)などが使用可能である。この実施例では、Xenを想定する。
ハイパーバイザ402は、ハードウェア・リソース・プール130にあるコンピュータ132、134・・・152及びディスク装置154、156等を仮想化する。
ハイパーバイザ402としてのXenの下では、ドメイン0とも呼ばれる特権的仮想マシン(VM)404が生成される。特権的仮想マシン404は、仮想マシン(VM)の作成、削除、ハードウェア・リソース・プール130へのアクセス、その他の機能を有する管理アプリケーション・プログラム(APP)404aを含む。図1に示すスケジューラ112、リソース・アロケータ118、及びユーザ・モニタ122も、管理アプリケーション・プログラム404aに含まれる。
管理アプリケーション・プログラム404aは、クライアントからのリクエストに応じて適宜、ドメインUと呼ばれる仮想マシン(VM)406、408、・・・410を生成し、あるいは削除する。
図5は、管理アプリケーション・プログラム404aにおける、本発明に関連する処理モジュールを示す図である。図示されているように、管理アプリケーション・プログラム404aは、キュー処理モジュール502、Upイベント処理モジュール504、Downイベント処理モジュール506、リソース割当調整モジュール508、及びテーブル更新(UpdateTable)モジュール510を含む。
次に、図6のフローチャートを参照して、キュー処理モジュール502の処理について説明する。キュー処理モジュール502の基本的な動作は、システム停止まで、ステップ602からステップ626までのループを回り、キュー116内にあるリクエストを順次処理することである。
キュー処理モジュール502は、ステップ604で、キュー116が空かどうか判断し、空でないなら、ステップ606で、キューの先頭がUp要求かどうか判断する。もしそうなら、キュー処理モジュール502は、ステップ608で、Upイベント処理モジュール504を呼び出す。Upイベント処理モジュール504の処理の詳細は、図7のフローチャートを参照して、後で説明する。
キューの先頭がUp要求でないなら、キュー処理モジュール502は、ステップ610で、キューの先頭がDown要求かどうか判断する。もしそうなら、キュー処理モジュール502は、ステップ612で、Downイベント処理モジュール506を呼び出す。Downイベント処理モジュール506の処理の詳細は、図8のフローチャートを参照して、後で説明する。
キューの先頭がDown要求でないなら、キュー処理モジュール502は、ステップ614で、キューの先頭が、予約追加・削除かどうか判断する。もしそうなら、キュー処理モジュール502は、ステップ616で予約の追加・削除処理をする。予約には、要求する動的スケーリング条件が含まれる。ここでの予約の追加・削除処理は、予約スケジュール114に反映される。
ステップ616の次に、キュー処理モジュール502は、ステップ618でリソース割当調整モジュール508を呼び出す。リソース割当調整モジュール508については、図9のフローチャートを参照して、後で説明する。
ステップ614で、キュー116の先頭が、予約追加・削除でないなら、ステップ620でその他の制御処理を行う。
ステップ608、612、618あるいは620の後、キュー処理モジュール502は、ステップ622でキューの先頭から要求を1つ取り除いて、ステップ626のループに戻る。
ステップ604に戻って、キュー処理モジュール502が、キュー116が空であると判断すると、ステップ624で一定時間待機して、ステップ626のループに戻る。
次に、図7のフローチャートを参照して、Upイベント処理モジュール504について説明する。ステップ702で、Upイベント処理モジュール504は、新規VM追加可能かどうか判断する。それを式で表すと、|{c∈CPUs|Reservation(c,rk)=1}| > 0かどうかの判断となる。ここで、CPUsは、ハードウェア・リソース・プール130におけるCPUのIDの集合であり、rkは予約IDであり、Reservation(c,rk)=1は、予約IDにCPUsの要素cが予約されていることを意味する。すなわち、ステップ702は、当該予約IDに予約されたCPUsの要素が1つ以上あるかどうかの判断である。
そうでないなら、Upイベント処理モジュール504は、直ちに処理を終わる。一方、ステップ702で、当該予約IDに予約されたCPUsの要素が1つ以上あると判断されると、Upイベント処理モジュール504は、ステップ704で、UpdateTable(テーブル更新)モジュール510を呼び出して予約テーブル120を更新する。テーブル更新モジュール510の処理は、図10及び図11のフローチャートを参照して後で説明する。
Upイベント処理モジュール504は、ステップ706で、該当VMインスタンスを追加し、ステップ708で、利用するCPUのIDを、CPUのIDの集合であるCPUsから削除する。
次に、Upイベント処理モジュール504は、ステップ710で、リソース割当調整モジュール508を呼び出す。リソース割当調整モジュール508については、図9のフローチャートを参照して、後で説明する。
次に、図8のフローチャートを参照して、Downイベント処理モジュール506について説明する。
Downイベント処理モジュール506は、ステップ802で、該当VMインスタンスを削除し、ステップ804で、利用可能になったCPUのIDを、CPUのIDの集合であるCPUsへ追加する。
次に、Downイベント処理モジュール506は、ステップ806で、リソース割当調整モジュール508を呼び出す。リソース割当調整モジュール508については、図9のフローチャートを参照して、後で説明する。
次に、図9を参照して、リソース割当調整モジュール508の処理について説明する。リソース割当調整モジュール508は、ステップ902で、変数kに1を格納する。次のステップ904で、リソース割当調整モジュール508は、k < Nかどうか判断する。ここでNは、クライアントによってなされた全体の予約の数である。そこでk < Nでない、すなわち、kがNに達したなら、リソース割当調整モジュール508は、処理を終了する。
一方、k < Nなら、リソース割当調整モジュール508は、下記の式で、確実性が満たされるかどうか判断する。
Pcertainty(rk) < Prequirement(rk)
ここで、Prequirement(rk)は、予約rkの要求されている確実性であり、クラウドユーザが定義したものである。
一般的に、予約ridがn個のインスタンスを作れる確実性は、次の式で与えられる。
Figure 0005939740

ここで、Pcertainty(cid,rid)は下記の式で与えられる。
Figure 0005939740

ここで、Reservationsは、予約の集合であり、Pscaleup(cid,rid)は、CPUのcidで、予約ridのインスタンスが1個作られる確率は、下記の式で与えられる:
Figure 0005939740

但し、Reservation(cid,rid) ∈ {0,1}はCPUのcidの予約をあわらし、
Figure 0005939740

は、多重化数をあわらしている。また、Pscaleup(rid)は、予約ridのUpイベントの平均発生数であり、好適には、過去のUpイベントの履歴データがポアソン分布に従うと想定して、計算される。
以上のような計算の結果、Pcertainty(rk) < Prequirement(rk)でないと判断されると、処理はステップ914に進み、kを1つインクリメントしてステップ904に戻る。
一方、Pcertainty(rk) < Prequirement(rk)であると判断されると、ステップ908に進み、リソース割当調整モジュール508は、下記の式により、割当可能かどうか判断する。
|{c∈CPUs|Reservation(c,rk)=1}| > 0
この式の意味は、ステップ702で説明したとおりである。
そして、リソース割当調整モジュール508は、もし割当可能であると判断すると、ステップ910で、CPUs ← CPUs ∪ {c}により、CPUsにハードウェア・リソースを追加する。
ステップ910の後、あるいはステップ908の判断が否定的である場合、リソース割当調整モジュール508は、ステップ912で、Reservation(c,rk) ← 1により、rkに新規割当の追加を行い、処理はステップ914に進み、kを1つインクリメントしてステップ904に戻る。
次に、図10と図11のフローチャートを参照して、テーブル更新(UpdateTable)モジュール510の処理を説明する。テーブル更新モジュール510が扱うのは、図12に示すようなフォーマットをもつ予約テーブル120である。予約テーブル120において、RIDは拡張予約IDであり、拡張予約の1契約毎のIDである。STEPは、準備予約された仮想的なノードID(例えば30分で10台のうち5台目)で小さい方から段階的に準備完了していく段階である。GRADEは、準備状況の状態で、0が準備完了(running)状態、1がスワップアウト状態、2が要起動(need-to-launch)状態、3が要ブート(need-to-boot)状態、4が要導入/構成状態、5が要購入(ソフトウェア)状態、6が要購入(ハードウェア)状態である。CPUIDは、実際に割当てられた計算ノードのIDである。
図10に示すように、テーブル更新モジュール510であるUpdateTableは、拡張予約IDである引数ridをとる。ステップ1002で、テーブル更新モジュール510は、Promote(rid,1,1)を呼び出す。Promote関数の詳細は、図11のフローチャートを参照して後で説明する。
ステップ1004では、テーブル更新モジュール510は、ridをもつ、準備完了状態に昇格可能な予約テーブル120のレコードを1つ選択する。
ステップ1006では、テーブル更新モジュール510は、当該レコードを準備完了状態にして戻る。
次に、図11のフローチャートを参照して、UpdateTableで呼ばれるPromote関数の処理を説明する。Promote関数は、Promote(rid,step,grade)という引数で呼ばれる。
ステップ1102で、Promote関数は、step > MaxStep(rid) - count(select * where RID = rid and GRADE = 0)であるかどうか判断する。ここでMaxStep(rid)は、予約テーブル120において、予約ridが準備予約した総数を返す。また、count(select * where RID = rid and GRADE = 0)は、ridをもち現在準備完了であるレコードの数である。
もしstep > MaxStep(rid) - count(select * where RID = rid and GRADE = 0)であるなら、Promote関数は、何もしないで戻る。
step > MaxStep(rid) - count(select * where RID = rid and GRADE = 0)でないなら、Promote関数は、ステップ1104で、RID = rid、STEP = step、GRADE = gradeであるレコードがあるかどうか判断し、もしあれば、ステップ1106で、その見つかったレコードを1つ選択する。
Promote関数は、ステップ1108からステップ1120までのループで、ステップ1106でみつかったレコードの同じCPUを共有している、予約テーブル120のレコードを順次検索する。
そこで、ステップ1104で見つかった目下のレコードを(rid',step',grade',cupid')とする。
ステップ1110で、Promote関数は、目下のレコードが、見つかったレコードそのものか判断し、もしそうなら、ステップ1112で、そのレコードのstepとgradeを1つずつデクリメントし、ステップ1114で、Promote(rid,step,grade)を再帰的に呼び出す。これは、STEP=stepのレコードが1個減った分のリソースを確保するために行う。
ステップ1110で、目下のレコードが、見つかったレコードそのものでないなら、Promote関数は、ステップ1116で、目下のレコードを削除し、ステップ1118で、Promote(rid',step',grade')により、削除したレコード分のリソースの確保を行う。
このような処理を予約テーブル120のすべてに亘って行うと、Promote関数は、ステップ1120を抜けて、戻る。
ステップ1104に戻って、RID = rid、STEP = step、GRADE = gradeであるレコードがないなら、Promote関数は、ステップ1122で、利用可能なcpuidを選択し、(rid,step,grade,cupid)のエントリをもつ新しいレコードを挿入して、戻る。
図13は、図10及び図11のフローチャートの処理に従い、図12の予約テーブル120を更新した結果を示す図である。
次に動的スケーラビリティの品質QoDS(toverall,λoverall)について説明する。ここで、toverallは、全体の準備完了までの時間、λoverallは、全体のVMインスタンス数である。
すなわち、QoDS(toveralloverall)と、準備完了までの時間{t1,t2,...,tn}のリスト(ここでt1はほぼ0で、任意のiについてti < ti+1)を与えたとき、最適なスタンバイ状態として、i番目のスタンバイ状態のVMインスタンス数λiは、次の式で得られる。ここで、N0は、0以上の整数の集合である。
Figure 0005939740

すなわち、図1のシステムは、クライアントに対して、このようにして決定された(tii) i = 1,2,...,nでVMインスタンスを立ち上げる。
ここで、各tiの値の標準偏差は、過去のデータに基づき予め推定される。特に、各tiが正規分布に従うと仮定し、その標準偏差をσとすると、下記が成立する。
Figure 0005939740

ここで、Pr()は、括弧の中の条件が成立する確率である。
下記に示すように、ti = taverage + 3σのように、時間的に相対的に高い確実性(99.87%)を実現しようとすると、時間はかかるが、リソース割当は、相対的に楽観的(80.10%)でよい。なおここで、Pr(QoDS)は、動的スケーリング条件QoDSを満たす確率である。
Figure 0005939740
一方、下記に示すように、ti = taverage + 1σのように、時間的に相対的に低い確実性(84.14%)を実現しようとすると、時間は迅速になるが、リソース割当は、相対的に悲観的(95.08%)にする必要がある。
Figure 0005939740
図14は、準備状態、準備時間、確実性、上限、各リソース、及びコスト(値付け)の例を示す図である。示されているように、準備状態は、例として、準備完了、スワップアウト、要起動、要ブート、要導入/構成、要購入(ソフトウェア)、及び要購入(ハートウェア)を含む。
図15は、このようにして用意された、異なる準備状態を組み合わせて、QoDSに対応するVMインスタンスの立ち上げ時間を達成する状態を示す図である。異なる準備状態毎のインスタンス数は、数5のアルゴリズムに従い、管理APP404aが決定する。VMインスタンスの立ち上げは、例えば、管理APP404aが、リソース割当調整処理を完了した直後、開始する。
図16は、本発明の処理の効果を模式的に示す図である。すなわち、あるクライアントが、処理実行のために100クライアントを要するとすると、コールドスタンバイ1602の場合は、起動時に、全く準備できておらずそこから立ち上げるので、コストは安いが、立ち上げ時間がかかる。
一方、ホットスタンバイ1604の場合は、最初からすべてのインスタンスが準備完了なので、立ち上げは迅速だが、コストは高い。
本発明の場合は、事前に一部のインスタンスがある程度まで準備状態が進んでいるので、それらの異なる準備状態にあるインスタンスを組みあわせて順次起動することによって、コストを妥当な範囲に抑えつつ、要求を満たす立ち上げ時間が達成される。
すなわち、従来技術では、100インスタンスをある時間でユーザに提供するなら、100インスタンスを常時走らせておかなくてはならず、それはクラウド・サーバ側でリソースが消耗されており、一方で、ユーザに対して相対的に高い課金となる。
それでは、従来技術で、100インスタンスを非稼動状態にしておくと、ユーザに対して相対的に低い課金で済むが、ユーザの要求する立ち上げ時間を達成できない。
そこで、本発明によれば、実行中を1インスタンス、スワップアウトを2インスタンス、要起動を12インスタンス、要ブートを25インスタンス、要導入/構成を60インスタンスというように用意しておくことで、活動リソースを最小限にしつつ、ユーザが要求する時間内にリソースを用意することが可能になる。このことにより、ユーザの課金と、サーバ側の可用リソースの両面で最適化が図られることになる。
以上、本発明の実施例を、特定のコンピュータ・プラットフォームに従い説明してきたが、このような特定のコンピュータ・プラットフォームに限定されず、複数の計算ノードと、それらの計算ノードを仮想化して複数の仮想マシンを生成できるサーバ環境であるなら、任意のサーバ環境で実施可能であることを、この分野の当業者であるなら理解するであろう。
102a、・・・、102z クライアント・コンピュータ
104 インターネット
110 システム
112 スケジューラ
114 予約スケジュール
116 キュー
118 リソース・アロケータ
120 予約テーブル
122 ユーザ・モニタ
130 ハードウェア・リソース・プール
132、・・・152 コンピュータ(計算ノード)
154、156、158 ディスク装置
202 バス
204 CPU
206 メインメモリ
206 主記憶
208 コントローラ
210 ハードディスク・ドライブ
212 ドライブ
214 ディスプレイ・コントローラ
216 ディスプレイ装置
218 通信インターフェース
222 オーディオ・インターフェース
230 キーボード
232 マウス
302 通信インターフェース
304 バス
306 CPU
402 ハイパーバイザ
404 特権的仮想マシン
502 キュー処理モジュール
504 Upイベント処理モジュール
506 Downイベント処理モジュール
508 リソース割当調整モジュール
510 テーブル更新モジュール

Claims (6)

  1. 複数の計算ノードを含むリソースを有するサーバ・システムにおいて、該サーバ・システムの処理により、クライアント・コンピュータからのリクエストに応じて、動的にリソースを割り当てる方法であって、
    前記サーバ・システムが、異なる準備状態にある複数のインスタンスを用意するステップと、
    前記サーバ・システムが、クライアント・コンピュータから、プラットフォームの許容量拡大の上限及び拡大スピードへの要求である動的スケーリング条件のリクエストを受け取るステップと、
    前記サーバ・システムが、前記動的スケーリング条件を満たすように前記異なる準備状態にある複数のインスタンスを組み合わせて起動するステップと、
    前記サーバ・システムが、前記リクエストのIDと、前記計算ノードのCPUのIDと、準備状態の段階のフィールドを含む予約テーブルを維持するステップと、
    前記サーバ・システムが、前記クライアント・コンピュータからの、計算ノードの使用を要求するリクエストを受領することに応答して、前記予約テーブルに基づき、計算ノードを割当可能かどうか判断し、もし割当可能なら、その割当を反映するように前記予約テーブルを更新して、該計算ノードを前記リクエストに割当てるステップとを有し、
    前記動的スケーリング条件のリクエストが、前記動的スケーリング条件がどの程度満たされるかを示す確実性を含み、前記計算ノードを前記リクエストに割当てるステップが、前記確実性が予約の現在の確実性より大きいかどうかを判断するステップを有し、前記確実性が前記現在の確実性より大きい場合にのみ前記計算ノードを前記リクエストに割当てる、
    動的にリソースを割り当てる方法。
  2. 前記確実性が前記現在の確実性より大きいかどうかを判断するステップが、計算ノードの使用を要求するリクエストを受け取る頻度の統計値に基づき実行される、請求項1に記載の動的にリソースを割り当てる方法。
  3. 前記サーバ・システムが、前記計算ノードを前記リクエストに割当てることに応答して、前記予約テーブルの該当する準備状態の段階のフィールドを、準備完了状態にするステップをさらに有する、請求項1に記載の動的にリソースを割り当てる方法。
  4. 複数の計算ノードを含むリソースを有するサーバ・システムにおいて、該サーバ・システムの処理により、クライアント・コンピュータからのリクエストに応じて、動的にリソースを割り当てるシステムであって、
    異なる準備状態にある複数のインスタンスを用意する手段と、
    クライアント・コンピュータから、プラットフォームの許容量拡大の上限及び拡大スピードへの要求である動的スケーリング条件のリクエストを受け取る手段と、
    前記動的スケーリング条件を満たすように前記異なる準備状態にある複数のインスタンスを組み合わせて起動する手段と、
    前記サーバ・システムの記憶手段に記憶された、前記リクエストのIDと、前記計算ノードのCPUのIDと、準備状態の段階のフィールドを含む予約テーブルと、
    前記クライアント・コンピュータからの、計算ノードの使用を要求するリクエストを受領することに応答して、前記予約テーブルに基づき、計算ノードを割当可能かどうか判断し、もし割り当て可能なら、その割当を反映するように前記予約テーブルを更新して、該計算ノードを前記リクエストに割当てる手段を有し、
    前記動的スケーリング条件のリクエストが、前記動的スケーリング条件が満たされるかどうかの確実性を含み、前記計算ノードを前記リクエストに割当てる手段が、前記確実性が予約の現在の確実性より大きいかどうかを判断する手段を有し、前記確実性が前記現在の確実性より大きい場合にのみ前記計算ノードを前記リクエストに割当てる、
    動的にリソースを割り当てるシステム。
  5. 前記確実性が前記現在の確実性より大きいかどうかを判断する手段が、計算ノードの使用を要求するリクエストを受け取る頻度の統計値に基づく、請求項に記載の動的にリソースを割り当てるシステム。
  6. 前記計算ノードを前記リクエストに割当てることに応答して、前記予約テーブルの該当する準備状態の段階のフィールドを、準備完了状態にする、請求項に記載の動的にリソースを割り当てるシステム。
JP2011086958A 2011-04-11 2011-04-11 動的にリソースを割り当てる方法、システム及びプログラム Expired - Fee Related JP5939740B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011086958A JP5939740B2 (ja) 2011-04-11 2011-04-11 動的にリソースを割り当てる方法、システム及びプログラム
US13/443,945 US9495214B2 (en) 2011-04-11 2012-04-11 Dynamic resource allocations method, systems, and program
US13/602,932 US20120331152A1 (en) 2011-04-11 2012-09-04 Dynamic resource allocation method, system, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011086958A JP5939740B2 (ja) 2011-04-11 2011-04-11 動的にリソースを割り当てる方法、システム及びプログラム

Publications (2)

Publication Number Publication Date
JP2012221273A JP2012221273A (ja) 2012-11-12
JP5939740B2 true JP5939740B2 (ja) 2016-06-22

Family

ID=46966980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011086958A Expired - Fee Related JP5939740B2 (ja) 2011-04-11 2011-04-11 動的にリソースを割り当てる方法、システム及びプログラム

Country Status (2)

Country Link
US (2) US9495214B2 (ja)
JP (1) JP5939740B2 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10963420B2 (en) * 2012-08-10 2021-03-30 Adobe Inc. Systems and methods for providing hot spare nodes
US9292352B2 (en) 2012-08-10 2016-03-22 Adobe Systems Incorporated Systems and methods for cloud management
US9417919B2 (en) * 2012-09-06 2016-08-16 Hewlett Packard Enterprise Development Lp Computer cluster with objective-based resource sharing
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US9002982B2 (en) 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US9158553B2 (en) 2013-04-09 2015-10-13 International Business Machines Corporation System and method for expediting virtual I/O server (VIOS) boot time in a virtual computing environment
US20150019705A1 (en) * 2013-06-26 2015-01-15 Amazon Technologies, Inc. Management of computing sessions
US10623243B2 (en) 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
CN103369041B (zh) * 2013-07-09 2017-10-03 北京奇虎科技有限公司 基于云计算的资源分配方法及装置
US9836330B2 (en) * 2013-07-16 2017-12-05 Hitachi, Ltd. Virtual resource management tool for cloud computing service
US9665633B2 (en) * 2014-02-19 2017-05-30 Snowflake Computing, Inc. Data management systems and methods
US9565129B2 (en) 2014-09-30 2017-02-07 International Business Machines Corporation Resource provisioning planning for enterprise migration and automated application discovery
US10334070B2 (en) 2014-11-11 2019-06-25 Unify Gmbh & Co. Kg Method and system for real-time resource consumption control in a distributed computing environment
CN104468755B (zh) * 2014-11-27 2018-11-02 中国联合网络通信集团有限公司 实现应用性能保障的方法和装置
US10394731B2 (en) * 2014-12-19 2019-08-27 Amazon Technologies, Inc. System on a chip comprising reconfigurable resources for multiple compute sub-systems
US10523585B2 (en) * 2014-12-19 2019-12-31 Amazon Technologies, Inc. System on a chip comprising multiple compute sub-systems
US11200192B2 (en) 2015-02-13 2021-12-14 Amazon Technologies. lac. Multi-mode system on a chip
US20160261599A1 (en) * 2015-03-06 2016-09-08 Sony Computer Entertainment America Llc Digital management of content assets in the cloud
US9697045B2 (en) 2015-03-24 2017-07-04 International Business Machines Corporation Selecting resource allocation policies and resolving resource conflicts
WO2017027649A1 (en) * 2015-08-13 2017-02-16 Alibaba Group Holding Limited Method and system for resource scheduling
CN106452818B (zh) 2015-08-13 2020-01-21 阿里巴巴集团控股有限公司 一种资源调度的方法和系统
US10387204B2 (en) * 2017-05-12 2019-08-20 International Business Machines Corporation Resource pooling in a virtualized cloud container environment
WO2018216139A1 (ja) * 2017-05-24 2018-11-29 三菱電機株式会社 データ処理システム、データ処理装置およびデータ処理プログラム
US9934287B1 (en) * 2017-07-25 2018-04-03 Capital One Services, Llc Systems and methods for expedited large file processing
US20190146847A1 (en) * 2017-11-10 2019-05-16 Mentor Graphics Corporation Dynamic distributed resource management
US10771982B2 (en) 2018-10-24 2020-09-08 Mentor Graphics Corporation Resource utilization of heterogeneous compute units in electronic design automation
CN111435943B (zh) * 2019-01-14 2022-07-19 阿里巴巴集团控股有限公司 数据处理方法、设备、系统及存储介质
US11755372B2 (en) 2019-08-30 2023-09-12 Microstrategy Incorporated Environment monitoring and management
US11714658B2 (en) 2019-08-30 2023-08-01 Microstrategy Incorporated Automated idle environment shutdown
CN110995856B (zh) * 2019-12-16 2022-09-13 上海米哈游天命科技有限公司 一种服务器扩展的方法、装置、设备及存储介质
CN113315700B (zh) * 2020-02-26 2022-06-28 中国电信股份有限公司 算力资源调度方法、装置和存储介质
CN111831436B (zh) * 2020-07-01 2024-07-30 Oppo广东移动通信有限公司 Io请求的调度方法、装置、存储介质及电子设备
CN112156453B (zh) * 2020-10-21 2022-06-03 腾讯科技(深圳)有限公司 实例自适应调整方法、装置、计算机可读存储介质及设备
CN113268344A (zh) * 2021-05-18 2021-08-17 中国联合网络通信集团有限公司 资源均衡方法和系统、第一Pod节点、资源代理服务器
US11687442B2 (en) 2021-08-06 2023-06-27 International Business Machines Corporation Dynamic resource provisioning for use cases
CN113645412B (zh) * 2021-10-15 2021-12-24 北京创米智汇物联科技有限公司 启动方法、装置、摄像机及计算机可读存储介质
CN117076133B (zh) * 2023-10-13 2024-01-26 深圳云天畅想信息科技有限公司 云游戏平台异构资源分配方法、计算机装置及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230183B1 (en) 1998-03-11 2001-05-08 International Business Machines Corporation Method and apparatus for controlling the number of servers in a multisystem cluster
JP2002163241A (ja) 2000-11-29 2002-06-07 Ntt Data Corp クライアントサーバシステム
JP2003162516A (ja) 2001-11-22 2003-06-06 Motoaki Saito ネットワーク環境におけるマルチプロセッサシステム
JP4066932B2 (ja) * 2003-11-10 2008-03-26 株式会社日立製作所 予測に基づいた計算機リソース配分方法
US20080229415A1 (en) * 2005-07-01 2008-09-18 Harsh Kapoor Systems and methods for processing data flows
US20080201414A1 (en) * 2007-02-15 2008-08-21 Amir Husain Syed M Transferring a Virtual Machine from a Remote Server Computer for Local Execution by a Client Computer
JP2009037369A (ja) 2007-08-01 2009-02-19 Hitachi Ltd データベースサーバへのリソース割当て方法
US9600332B2 (en) * 2009-04-28 2017-03-21 Cisco Technology, Inc. Server load balancing based on virtual utilization, physical utilization, and feedback
US8504689B2 (en) * 2010-05-28 2013-08-06 Red Hat, Inc. Methods and systems for cloud deployment analysis featuring relative cloud resource importance

Also Published As

Publication number Publication date
JP2012221273A (ja) 2012-11-12
US20120259982A1 (en) 2012-10-11
US9495214B2 (en) 2016-11-15
US20120331152A1 (en) 2012-12-27

Similar Documents

Publication Publication Date Title
JP5939740B2 (ja) 動的にリソースを割り当てる方法、システム及びプログラム
US11425194B1 (en) Dynamically modifying a cluster of computing nodes used for distributed execution of a program
Praveenchandar et al. Retracted article: dynamic resource allocation with optimized task scheduling and improved power management in cloud computing
US11102287B2 (en) Minimizing service restart by optimally resizing service pools
US9280390B2 (en) Dynamic scaling of a cluster of computing nodes
US8321558B1 (en) Dynamically monitoring and modifying distributed execution of programs
US8260840B1 (en) Dynamic scaling of a cluster of computing nodes used for distributed execution of a program
US9304803B2 (en) Cooperative application workload scheduling for a consolidated virtual environment
US9229764B2 (en) Estimating migration costs for migrating logical partitions within a virtualized computing environment based on a migration cost history
US9929931B2 (en) Efficient provisioning and deployment of virtual machines
JP6254949B2 (ja) 仮想マシンプールにおけるリソースの価格設定
US9021490B2 (en) Optimizing allocation of computer resources by tracking job status and resource availability profiles
US8694996B2 (en) Application initiated negotiations for resources meeting a performance parameter in a virtualized computing environment
US8756599B2 (en) Task prioritization management in a virtualized environment
US20140245298A1 (en) Adaptive Task Scheduling of Hadoop in a Virtualized Environment
US11150951B2 (en) Releasable resource based preemptive scheduling
US20190377596A1 (en) Flexible batch job scheduling in virtualization environments
CN114546587A (zh) 一种在线图像识别服务的扩缩容方法及相关装置
Li et al. PageRankVM: A pagerank based algorithm with anti-collocation constraints for virtual machine placement in cloud datacenters
Gadhavi et al. Efficient resource provisioning through workload prediction in the cloud system
Yu et al. Towards dynamic resource provisioning for traffic mining service cloud
Rao et al. Scheduling data intensive workloads through virtualization on MapReduce based clouds
Pandey et al. MQFURP: An Overprovision Strategy Supporting Performance Interference Management in Cloud
Suzuki et al. Optimizing ICT Equipment via Resource Allocation in Cloud Systems
Roy et al. Minimization of SLA violations in SaaS platform

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150310

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150602

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150703

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20151124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160304

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160311

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160517

R150 Certificate of patent or registration of utility model

Ref document number: 5939740

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees