JP2019008454A - 情報処理システムおよびリソース割り当て方法 - Google Patents

情報処理システムおよびリソース割り当て方法 Download PDF

Info

Publication number
JP2019008454A
JP2019008454A JP2017122235A JP2017122235A JP2019008454A JP 2019008454 A JP2019008454 A JP 2019008454A JP 2017122235 A JP2017122235 A JP 2017122235A JP 2017122235 A JP2017122235 A JP 2017122235A JP 2019008454 A JP2019008454 A JP 2019008454A
Authority
JP
Japan
Prior art keywords
application
time
cluster
management server
execution
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.)
Granted
Application number
JP2017122235A
Other languages
English (en)
Other versions
JP6924083B2 (ja
Inventor
芳樹 松浦
Yoshiki Matsuura
芳樹 松浦
衣津美 水谷
Itsumi Mizutani
衣津美 水谷
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2017122235A priority Critical patent/JP6924083B2/ja
Priority to US16/493,319 priority patent/US11068317B2/en
Priority to PCT/JP2018/022941 priority patent/WO2018235739A1/ja
Publication of JP2019008454A publication Critical patent/JP2019008454A/ja
Application granted granted Critical
Publication of JP6924083B2 publication Critical patent/JP6924083B2/ja
Active 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/5083Techniques for rebalancing the load in a distributed system
    • 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
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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]
    • 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
    • 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
    • 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/5061Partitioning or combining of resources
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】計算機リソースプールが枯渇しても、アプリケーションプログラム(以下、アプリケーション)を迅速に開始でき、短時間で終了するアプリケーションでもサービス品質を低下させること無く、処理が完了する情報処理システムを提供する。【解決手段】本発明の情報処理システムは、管理サーバと、アプリケーションを実行するための1以上のプロセッサを備えた処理サーバを複数有する。管理サーバは、処理サーバとして実行可能な計算機リソースと、前記計算機リソースの使用状態を管理し、ユーザからアプリケーションの並列度と予想実行時間を受領した際に、計算機リソースに空きが無く、かつアプリケーションの予想実行時間が基準値以下である場合に、一時的にアプリケーションを複数同時に実行しても、当初の予想実行時間からの変動割合が相対的に小さいアプリケーションが実行されている計算機リソースを選定して、アプリケーションを配置して、実行する。【選択図】図5

Description

本発明は、リソース割り当て方法およびその情報処理システムに関するものである。
近年、コンテナと呼ばれる仮想化技術の発展により、様々なアプリケーションプログラム(以下、アプリケーション)の実行環境を迅速に立ち上げることができるようになった。これにより、クラウドサービス提供者は、クラウド上で提供する様々なアプリケーションの実行環境向けに、それぞれ専用のリソースを確保することなく、アプリケーション共通のリソースプールを確保し、ユーザのアプリケーション実行要求毎に、リソースプールにアプリケーションに対応したコンテナをデプロイするだけで、アプリケーションの実行環境を構築できるようになり、リソースプールとして確保しておくべきリソース量を削減することができる。
しかし、リソースプールのリソース量を削減しすぎると、多数のユーザのアプリケーション実行要求がタイミング悪く重なった場合に、リソースが枯渇する可能性がある。リソースが枯渇すると、空きリソース待ちやクラウドからの新規のリソース取得等の待機時間が発生し、応答性が悪化する。特に、ユーザのアプリケーション実行要求が、本来、短時間で終了するような要求であった場合、要求に対する待機時間の割合が相対的に非常に大きくなり、高速応答を期待したユーザに対して、サービス品質を大きく低下させる要因となる。
このような分野の背景技術として、特許文献1では、サービス義務を果たすのに必要なリソースのフリープール・サイズを推定するモデル化方法を開示している。
特表2009−524135号公報
特許文献1に記載されたモデル化方法は、顧客のリソース利用率をベータ分布としてモデル化し(段落[0009])、ベータ分布シミュレーションを用いて利用率目標を達成するのに必要なフリープール・サイズを予測する(段落[0015])。これにより、リソースプールが枯渇しそうなタイミングを予測して、リソースを増加させることができる。
しかしながら、特許文献1に記載されているモデル化方法では、リソース利用量が徐々に変化する場合は有効であるが、突発的に発生した多数のユーザからのアプリケーション実行要求には対応できない。この予想が外れたアプリケーション実行要求が、短時間で終了する要求であった場合、サービス品質を低下させる問題は解決されない。
そこで、本発明は、計算機リソースプールが枯渇している場合でも、アプリケーションプログラムを迅速に開始することができ、短時間で終了するアプリケーションでもサービス品質を低下させること無く、処理を完了させる情報処理システムを提供することを目的とする。
本発明の情報処理システムの好ましい例では、管理サーバと、複数の処理サーバを有し、ユーザからの要求に応じてネットワークを介してアプリケーションプログラムの実行を提供する情報処理システムであって、前記処理サーバはそれぞれ、アプリケーションプログラムを実行するための1以上のプロセッサを有し、前記管理サーバは、それぞれの前記処理サーバとして実行可能な計算機リソースと、前記計算機リソースの使用状態、及び1つのアプリケーションプログラムを実行しているクラスタごとに、クラスタ利用状況やユーザからの要求情報、アプリケーションプログラムの実行時間に関する情報を管理しており、前記管理サーバのクラスタ生成部は、ユーザから前記アプリケーションプログラムの実行要求と共に、その実行の並列度と予想実行時間を受領した際に、前記管理サーバが管理していた計算機リソースに空きがない場合で無く、かつ実行要求の対象である前記アプリケーションプログラムの予想実行時間が基準時間値以下である場合に、前記管理サーバで管理している使用中の計算機リソースの中から、一時的にアプリケーションプログラムを複数同時に実行しても、当初の予想実行時間からの変動割合が相対的に小さいアプリケーションプログラムが実行されている計算機リソースを選定して、前記選定した計算機リソースに対して、実行要求の対象である前記アプリケーションプログラムを配置して、実行するように構成する。
また、本発明の他の特徴として、前記情報処理システムにおいて、前記管理サーバのクラスタ生成部は、一時的にアプリケーションプログラムを複数同時に実行しても、当初の予想実行時間からの変動割合が相対的に小さいアプリケーションプログラムが実行されている計算機リソースを選定する際に、残り時間が大きく、かつ共存数が小さく、かつ共存時間が小さく、かつPool利用数が多いクラスタに属する計算機リソースを優先的に選定する。
また、本発明の更に他の特徴として、前記情報処理システムにおいて、前記管理サーバのクラスタ生成部は、一時的にアプリケーションプログラムを複数同時に実行しても、当初の予想実行時間からの変動割合が相対的に小さいアプリケーションプログラムが実行されている計算機リソースを選定する際に、残り時間、共存数、共存時間、およびPool利用数の各情報の大小の値に重み係数を掛けて優先度を設定したクラスタに属する計算機リソースを優先的に選定する。
また、本発明のリソース割り当て方法の好ましい例では、管理サーバと、複数の処理サーバを有し、ユーザからの要求に応じてネットワークを介してアプリケーションプログラムの実行を提供する情報処理システムにおいて、前記処理サーバはそれぞれ、アプリケーションプログラムを実行するための1以上のプロセッサを有し、前記管理サーバは、それぞれの前記処理サーバとして実行可能な計算機リソースと、前記計算機リソースの使用状態、及び1つのアプリケーションプログラムを実行しているクラスタごとに、クラスタ利用状況やユーザからの要求情報、アプリケーションプログラムの実行時間に関する情報を管理しており、前記管理サーバが、ユーザからアプリケーションプログラムの実行要求と共に、その実行の並列度と予想実行時間を受領した際に、前記管理サーバが管理していた計算機リソースに空きが無く、かつ実行要求の対象である前記アプリケーションプログラムの予想実行時間が基準値以下である場合に、前記管理サーバで管理している使用中の計算機リソースの中から、一時的にアプリケーションプログラムを複数同時に実行しても、当初の予想実行時間からの変動割合が相対的に小さいアプリケーションプログラムが実行されている計算機リソースを選定して、前記選定した計算機リソースに対して、実行要求の対象である前記アプリケーションプログラムを配置して、実行するように構成する。
本発明によれば、リソースプールが枯渇している場合でも、アプリケーションプログラムを迅速に開始することができ、短時間で終了するアプリケーションでもサービス品質を低下させること無く、処理を完了させることができる。
情報処理システムの全体構成の例を示す図である。 各種サーバの物理的な構成の例を示す図である。 リソース割り当て情報記憶部が管理するデータテーブルの例を示す図である。 アプリ進捗情報記憶部が管理するデータテーブルの例を示す図である。 アプリケーション実行依頼からリソースを割り当ててアプリケーションを実行するまでの動作フローの例を示す図である。 リソース割り当て処理の動作フローの例を示す図である。 クラスタ監視処理の動作フローの例を示す図である。 アプリケーション実行完了後にクラスタ破棄するまでの動作シーケンスの例を示す図である。 アプリケーション利用者が実行要求毎にアプリケーションや入力データや並列度や保障レベルを決定するための設定画面の例を示す図である。
以下、各実施例における実施形態について図面を参照して説明する。なお、以下の実施例に用いる図において、同一の符号を付した部分は同一物を表し、それらの構造および動作は同じである。
図1は、実施例1に係る情報処理システムの全体構成の例である。実施例1に係る情報システムは、クライアント端末101と、クライアント端末101とネットワーク102を介して接続されるリクエスト生成サーバ103、そしてネットワーク106を介してリクエスト生成サーバ103と接続されるデータ管理サーバ104、アプリ管理サーバ105、リソース管理サーバ120、複数の処理サーバ130を有する。図1ではクライアント端末101とそれ以外のサーバ(リクエスト生成サーバ103、データ管理サーバ104、アプリ管理サーバ105、リソース管理サーバ120、処理サーバ130)が異なるネットワーク(102,106)に接続されているが、クライアント端末101とそれ以外のサーバが同一ネットワークに接続されるように、情報処理システムが構成されていてもよい。
クライアント端末101は、アプリケーション利用者が使用する端末であり、アプリケーション利用者が、アプリケーションプログラム(以下、「アプリケーション」と略記する)に処理させるための入力データを作成して、リクエスト生成サーバ103にアプリケーションの処理要求を入力データとともに送信するために用いられる。クライアント端末101はたとえば、会社や工場内の、または一般の個人のパーソナルコンピュータやサーバであり、複数台存在する。あるいはクライアント端末101は、スマートフォンやタブレット端末などの、通信機能を有する通信デバイスであってもよい。
ネットワーク102は、通信キャリアなどによって提供される無線ネットワークまたは有線ネットワークである。ネットワーク102は、個別の会社などが所有するネットワークを、ネットワーク102の一部に含んでもよく、複数種類のプロトコルを通過させるネットワークであってもよい。
リクエスト生成サーバ103は、クライアント端末101からアプリケーション実行要求などの処理要求を受け付け、受け付けた処理要求に基づき、データ管理サーバ104、アプリ管理サーバ105、リソース管理サーバ120、処理サーバ130に処理依頼を行い、処理結果をクライアント端末101に返信する処理を実行するサーバである。
データ管理サーバ104は、処理要求を受け付けたアプリケーションの実行時に処理対象となるデータ(入力データ)を格納するサーバであり、入力データがファイルの場合は共有ファイルサーバ、レコードとして格納しておく場合は構造データベースサーバ、jsonなどの形式で格納しておく場合はキーバリューストアなどの非構造データベースなどのデータを格納するサーバである。
アプリ管理サーバ105は、処理サーバ130で実行されるアプリケーションの情報を管理するとともに、入力データや計算機リソースを設定することでアプリケーションの実行処理時間の見積もり値を計算するサーバである。
アプリケーションの実行処理時間の見積もり方法は、アプリケーションが処理するデータ量やパラメータなどから算出され、アプリケーションごとにそれぞれ計算ロジックを予め設計時に作成して有するか、もしくは過去のアプリケーションの実行処理時間の履歴から統計的に算出する方法がある。
リソース管理サーバ120は、各処理サーバ130の利用状態を管理して、クラスタの生成や監視や破棄を動的に行うサーバであり、リソース割り当て情報記憶部121、アプリ進捗情報記憶部122、クラスタ生成部123、クラスタ監視部124、クラスタ破棄部125、を有する。本実施例では、1つのアプリケーションを実行する際に使用される計算機リソースの集合(あるいはこの計算機リソースを有する処理サーバ130の集合)を「クラスタ」と呼ぶ。
処理サーバ130は、アプリ管理サーバ105が管理しているアプリケーションを実行するためのサーバであり、アプリ管理サーバ105からデプロイメントされたアプリケーションの実行コードを記憶するアプリケーション管理部131を有する。アプリケーション管理部131には、複数のアプリケーションが登録されてもよい。複数のアプリケーションが登録されている場合、クラスタはアプリケーションの処理要求ごとに生成されるため、処理サーバ130は複数のクラスタに属していることとなり、それぞれのクラスタ内に属する1つ以上の処理サーバ130へ各アプリケーションの処理が割り振られることとなる。
本実施例では、これらのサーバがそれぞれ物理的に異なる計算機である例を説明する。ただし必ずしもこれらのサーバが、異なる計算機である必要はなく、上で述べたいくつかのサーバが有する機能部が、単一の計算機上に実装されていてもよい。たとえば情報処理システム内に、上で述べたリクエスト生成サーバ103、データ管理サーバ104、アプリ管理サーバ105、リソース管理サーバ120に代えて、1台の計算機(仮に「管理サーバ」と呼ぶ)を設け、上で述べたリクエスト生成サーバ103、データ管理サーバ104、アプリ管理サーバ105、リソース管理サーバ120が有する機能部を、その管理サーバ上に設けてもよい。あるいは、処理サーバの1つ(または複数)が、管理サーバとして用いられてもよい。
さらに別の実施形態として、情報処理システム内に設けられた1台または複数台の計算機上で、いわゆる仮想計算機を提供するためのソフトウェア(一般的にハイパーバイザと呼ばれる)を実行させ、計算機上に、リクエスト生成サーバの役割を果たす仮想計算機、データ管理サーバの役割を果たす仮想計算機、アプリ管理サーバの役割を果たす仮想計算機、リソース管理サーバの役割を果たす仮想計算機を定義することで、情報処理システムが構成されてもよい。
図2は、図1で示したリクエスト生成サーバ103、データ管理サーバ104、アプリ管理サーバ105、リソース管理サーバ120、処理サーバ130、クライアント端末101の物理的な構成を示す図である。本実施例ではこれらのサーバ(またはクライアント端末)には、プロセッサ(CPU)201、メモリ202、補助記憶装置203、及び通信インターフェース(通信I/F)204を有する計算機200が用いられる。この計算機は一例として、パーソナルコンピュータ(PC)等の汎用的な計算機でよい。
プロセッサ201は、メモリ202に格納されたプログラムを実行する。プロセッサ201の数は1とは限らない。計算機200は複数のプロセッサ201を有していてもよい。またプロセッサ201は複数のプロセッサコアを有する、いわゆるマルチコアプロセッサであってもよい。メモリ202は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサ201が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
補助記憶装置203は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置であり、プロセッサ201が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置203から読み出されて、メモリ202にロードされて、プロセッサ201によって実行される。
通信インターフェース204は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。
計算機200はまた、入力インターフェース(入力I/F)205及び出力インターフェース(出力I/F)208を有してもよい。入力インターフェース205は、キーボード206やマウス207などが接続され、オペレータからの入力を受けるインターフェースである。出力インターフェース208は、ディスプレイ装置209やプリンタなどが接続され、プログラムの実行結果をオペレータが視認可能な形式で出力するインターフェースである。
なお、本実施例では、アプリ管理サーバ105、リソース管理サーバ120、処理サーバ130の有する各機能部は、ソフトウェア(プログラム)によって実装されるものとする。たとえばリソース管理サーバ120では、リソース管理サーバ120をリソース割り当て情報記憶部121とアプリ進捗情報記憶部122とクラスタ生成部123とクラスタ監視部124とクラスタ破棄部125として機能させるためのプログラムが、リソース管理サーバ120(計算機200)のメモリ202上にロードされ、プロセッサ201により実行される。これによりリソース管理サーバ120は、リソース割り当て情報記憶部121とアプリ進捗情報記憶部122とクラスタ生成部123とクラスタ監視部124とクラスタ破棄部125を有する装置として動作する。
処理サーバ130でも同様に、計算機200(リソース管理サーバ120や処理サーバ130)のプロセッサ201で、上で述べた各機能部を実現するためのプログラムが実行される。これによって処理サーバ130は、上で述べた各機能部を有する装置として動作する。以下では、アプリ管理サーバ105やリソース管理サーバ120、あるいは処理サーバ130等で実行される処理を説明する際に、リソース割り当て情報記憶部121やクラスタ生成部123等の機能部を主語とした説明を行うことがあるが、それは実際には、機能部を有する計算機200のプロセッサ201が処理を行うことを意味する。
また、プロセッサ201が実行するプログラムは、計算機が読み取り可能な記憶メディア又はネットワークを介して計算機200に提供され、非一時的記憶媒体である補助記憶装置203に格納される。計算機が読み取り可能な記憶メディアとは、非一時的なコンピュータ可読媒体で、たとえばCD−ROMやフラッシュメモリなどの、不揮発性のリムーバブルメディアである。このため計算機200は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
また、別の実施形態として、各機能部の一部またはすべては、FPGAやASICなどのハードウェアを用いて実装されていてもよい。
図3は、リソース管理サーバ120内に保持されているリソース割り当て情報記憶部121が管理するデータテーブル300の例を示す図である。本実施例ではリソース割り当て情報記憶部121が、メモリ202や補助記憶装置203の記憶領域上に形成されたデータテーブル300に、各種情報を記憶させる例を説明する。
リソース割り当て情報記憶部121は、アプリケーションを配置可能な全ての処理サーバ130の情報を管理しており、またこれらの処理サーバ130のうち、同一アプリケーションが配置されて、クラスタを形成している処理サーバ130の情報もデータテーブル300に格納して管理している。
リソース割り当て情報記憶部121が管理するデータテーブル300の各行(レコード)は、図3に示す7つのカラム(欄)を有し、各レコードには情報処理システム内の処理サーバ130についての情報が格納される。ノード名301欄は、処理サーバ130の名称を格納するための欄である。各処理サーバ130は情報処理システム内で一意な名称を有しており、本実施例ではその名称を「ノード名」と呼ぶ。IPアドレス302欄には、ノード名301で特定される処理サーバ130のIPアドレスが格納される。CPU Core303欄には、処理サーバ130の有するプロセッサコア(CPU Core)の数が格納される。
Poolフラグ304欄は、処理サーバ130が情報処理システムとして事前に確保した計算機リソースのノードであるかどうかを表すフラグ情報が格納される。事前に確保しているノード(事前にクラウド等から確保しているノードを含む)の場合は「○」が格納され、アプリケーションの実行要求に対して、必要に応じてクラウド等から一時的に確保したノードの場合は「−」が格納される。
クラスタ名305欄には、処理サーバ130がクラスタに属している場合、所属しているクラスタの名称が格納され、並列数306欄には、クラスタに割り当てられているプロセッサコア数が格納される。そのため、CPU Core303と並列数306の差を算出することで、まだいずれのクラスタにも割り当てられていないプロセッサコア(「未使用コア」と呼ぶ)の数が求められる。またアプリ名307欄には、処理サーバ130に配置されているアプリケーションのアプリ名が格納される。アプリケーションの名称とは、アプリケーション利用者が、アプリケーションの実行を依頼する際に、アプリケーションを特定するために用いる名称である。
なお本実施例では、処理サーバ130がいわゆるマルチコアプロセッサを有することが前提で説明しているが、処理サーバ130の有するプロセッサがシングルコアプロセッサの場合、CPU Core303欄や並列数306欄には、プロセッサコア数に代えてプロセッサ数が格納される。
また本実施例では、リソース割り当て情報記憶部121が管理するデータテーブル300の各レコードのうち、クラスタ名305が同じレコードの集合に含まれる情報、特にこれらのレコードのカラム305〜307の情報を、「クラスタ情報」と呼ぶ。図3において、行310−5と行310−6のカラム305〜307の情報がそれぞれ、クラスタ名“User5-AppB-1”のクラスタ情報、クラスタ名“User6-AppB-1”のクラスタ情報である。クラスタ情報を参照することで、クラスタに所属している処理サーバ130、CPU Core数を知ることができる。
後述するリソース管理サーバ120のクラスタ生成部123がクラスタを生成(定義)するとき、クラスタに所属させる処理サーバ130をデータテーブル300の中から選択する。そして、クラスタ生成部123は、選択された処理サーバ130に対応するレコードのカラム305〜307に、クラスタ名や使用するCPU Core数などの情報を格納する。本実施例ではクラスタ生成部123が、カラム305〜307に、クラスタ名等の情報を格納する処理を「クラスタ情報を作成する」処理と呼ぶ。クラスタ情報が作成されることにより、アプリケーションの実行に使用される計算機リソースが実質的に確保(予約)されることを意味する。
逆に、定義されたクラスタにおけるアプリケーションの実行が終了すると、クラスタ破棄部125がカラム305〜307からクラスタ名等の情報を削除する。この処理は「クラスタ情報を削除する」処理と呼ばれる。クラスタ情報の削除により、アプリケーションの実行のために確保されていた計算機リソースが実質的に解放され、解放された計算機リソースを他の用途に使用することができるようになる。
ここで、処理サーバ130としてクラウド(非図示)上の計算機リソースを使う場合、つまりクラスタ生成の要求ごとにクラウド上の計算機リソースを確保して使用する場合は、計算機リソースが確保されるたびにリソース割り当て情報記憶部121が管理するデータテーブル300にレコードが追加され、アプリケーションの実行が終了してクラスタを削除すると、そのレコードが削除される。
また、処理サーバ130が複数のCPU Coreを保持しており、アプリケーションの並列度が、処理サーバ130の有するCPU Core数より少ない場合は、1つの処理サーバ130に複数のアプリケーションが配置されることもあり得る。その場合は、処理サーバ130は複数のクラスタに所属することになる。
また、本実施例では、処理サーバ130がn個のCPU Coreを有している場合、基本的にはアプリケーションの実行コードをn個並列実行可能という前提で、計算機リソースの確保が行われる。そのため、アプリケーションの並列度が4の場合(アプリケーション利用者がアプリケーションを4並列実行させる要求をした場合)、リソース管理サーバ120のクラスタ生成部123(後述)は、未使用コアを有する処理サーバ130を1または複数選択する。その際、クラスタ生成部123は、選択された処理サーバ130が有する未使用コアの数が4つ(以上)になるように、処理サーバ130を選択する。
ただし、アプリケーションの特性によっては、CPU Coreの数以外に、メモリ量やCPUの処理性能を考慮して、1または複数の処理サーバ130が選択されてもよい。
ここで、アプリケーションの並列度に対して、選択可能なCPU Core数だけでは確保できない場合は、アプリケーションの予想実行時間を加味して、新たにクラウド等から計算機リソースを確保するか、すでに割り当て済みの処理サーバ130の中から、処理時間やユーザ要求に対して最も影響の少ない処理サーバ130を選択するかを判断する。詳細は、図6にて後述する。
図4は、リソース管理サーバ120内に保持されているアプリ進捗情報記憶部122が管理するデータテーブル400の例を示す図である。
アプリ進捗情報記憶部122は、1つのアプリケーションを実行しているクラスタごとに、クラスタ利用状況やユーザからの要求情報、アプリケーションの実行時間に関する情報を格納する機能部で、これらの情報を格納するために、メモリ202や補助記憶装置203の記憶領域を用いる。アプリ進捗情報記憶部122は一例として、公知のファイルシステムプログラムまたはデータベース管理システム(DBMS)のようなプログラムを用いて実装されて良い。
アプリ進捗情報記憶部122が管理するデータテーブル400は、図4に示されるように8つのカラム(欄)を有する。以下、各カラムに格納される情報について説明する。クラスタ名401欄には、ユーザからのアプリケーション実行要求ごとに生成される計算機リソースの集合であるクラスタを一意に表すクラスタ名が格納される。これは、リソース割り当て情報記憶部121が管理するデータテーブル300のクラスタ名305と同じ名称が格納される。
並列数402欄には、クラスタ内で利用されているトータルのCPU Core数が格納され、これは、リソース割り当て情報記憶部121が管理するデータテーブル300の並列数306を同クラスタ内分足し合わせた数となる。
共存数403欄には、並列数402のうち、他のクラスタと共存しているCPU Core数が格納される。
Pool利用数404欄には、並列数402のうち、リソース割り当て情報記憶部121が管理するデータテーブル300のPoolフラグ304が「○」となっている処理サーバ130のCPU Coreを利用している数が格納される。
保障レベル405欄には、ユーザがアプリケーションの実行要求を出す際にユーザが設定する予想実行時間における保障レベルを表す情報が格納される。本実施例では、保障レベルを0,1,2という数値で表現しており、数字が高いほど、予想実行時間に対するブレが大きくなることを表す(予想実行時間よりも実際の実行時間がより長く掛かる許容範囲が大きくなることを表す)。例えば、保障レベル0であれば、予想実行時間とのブレが数分程度であり、保障レベル1であれば、予想実行時間とのブレが数十分程度、保障レベル2であれば、予想実行時間とのブレが数時間程度、ということを表す。すなわち、保障レベルは、ユーザが要求する予想実行時間の変動割合の許容度を表す。
残り時間406欄には、クラスタ内で実行されているアプリケーションの処理の進捗状況から算出された、アプリケーションが完了するまでの残り時間が格納される。アプリケーションの処理の進捗状況は、例えば、アプリケーションが実行する処理全体がN個だとして、そのうちM個まで処理が進んでいるため、現在の進捗はM/Nであり、予想実行時間と掛け合わせて、残り時間を算出する、などの計算を行う。進捗状況の算出方法はアプリケーションごとに異なるため、アプリケーション開発時に進捗状況を測定するロジックを組み込み、ログなどに出力することで、進捗状況を把握できるようにしておく。
当初終了予定時刻407欄には、ユーザからのアプリケーションの実行要求を受け取った際に、アプリケーションの予想実行時間から算出した終了予定時刻が格納される。
共存時間408欄には、クラスタ内のアプリケーションが、他のクラスタ内のアプリケーションとCPU Coreを共存した時間が格納される。
アプリ進捗情報記憶部122が管理するデータテーブル400に格納されている情報を利用して、ユーザからのアプリケーションの実行要求があったが、当該アプリケーションの実行に要求されたCPU Core数が、選択可能なCPU Core数だけでは確保できない場合で、すでに割り当て済みの処理サーバ130の中から処理時間やユーザ要求に対して最も影響の少ない処理サーバ130を選択するかを判断する。詳細は、図6にて後述する。
図5は、アプリケーション利用者が、本実施例に係る情報処理システムを用いてアプリケーションの実行を要求した時に、情報処理システム内の各サーバで行われる処理の流れを表したシーケンス図である。図5では、クライアント端末101がリクエスト生成サーバ103に要求を発行し、アプリケーションを実行するクラスタが生成されるまでの処理の流れが記述されている。
まず、アプリケーション利用者は、クライアント端末101を操作しながら、リクエスト生成サーバ103やアプリ管理サーバ105を利用して、実行要求調整(S520)を行う。実行要求調整(S520)では、アプリケーション利用者は、アプリ管理サーバ105が算出する予想実行時間やそれに掛かるコストを考慮しながら、利用するアプリケーションの選択、入力データの登録、アプリケーションを実行する際の並列度の設定、予想実行時間の保障レベルの設定を行う。
ここで、予想実行時間の算出に、アプリケーションの情報を管理しているアプリ管理サーバ105を利用することを想定している。
アプリケーション利用者が実行要求調整(S520)を行うと、クライアント端末101はアプリケーション利用者から、アプリケーション利用者が利用するアプリケーションのアプリ名と入力データを受け付け、リクエスト生成サーバ103にアプリケーションの実行依頼を送信する(S501)。このアプリケーションの実行依頼には、アプリ名(たとえば“AppA”など)、入力データ、並列度、予想実行時間、保障レベルが含まれる。リクエスト生成サーバ103はこの実行依頼に応じて、まず入力データをデータ管理サーバ104に登録する(S502,S503)。データ管理サーバ104は入力データを受領すると、入力データへのアクセス方法であるアクセスURL(Uniform Resource Locator)をリクエスト生成サーバ103に返送する(S504)。この時、リクエスト生成サーバ103は、入力データへのURLとアプリ名とを対応付けて保持する。
次に、リクエスト生成サーバ103は、アプリケーション名と予想実行時間と並列度と保障レベルとアクセスURLを指定したクラスタ生成依頼をリソース管理サーバ120に送信する(S505)。
リソース管理サーバ120はクラスタ生成依頼(S505)を受け取ると、クラスタ生成部123の処理を実行する。クラスタ生成部123では、まず一意に識別可能なクラスタ名を作成し(S506)、並列度や保障レベルに応じた処理サーバ130の計算機リソース(CPU Core)の確保を行うためのリソース割り当て処理(S600)を実行する。リソース割り当て処理(S600)の詳細は図6にて後述する。
リソース割り当て処理(S600)により、適切な処理サーバ130の割り当てを行い、割り当てられた処理サーバ130に対してアプリケーションを配置するため、まず、アプリ管理サーバ105からアプリケーションの実行コードを取得して(S507,S508)、各処理サーバ130にアプリケーションの配置を依頼する(S509)。
アプリケーションの配置を依頼された処理サーバ130は、アプリケーションをインストールし(S510)、クラスタに属する各処理サーバ130へのアプリケーションの配置が完了すると(S511)、リソース管理サーバ120はリソース割り当て情報記憶部121とアプリ進捗情報記憶部122が管理するデータテーブル情報を更新して(S512)、クラスタに属する1つないしは複数の処理サーバ130に対して、アクセスURLとともに実行要求を送信する(S513)。
処理サーバ130は、実行要求を受け取ると、リソース管理サーバ120にOKを返信して(S514)、アプリケーションを実行する(S517)。
リソース管理サーバ120は、処理サーバ130からのOKを受け取ると、リクエスト生成サーバ103を経由して、クライアント端末101にOKを返信して(S515,S516)、クラスタ生成部123の処理を完了するとともに、クラスタ監視部124を起動して、処理サーバ130のアプリケーションの実行状況を監視する。クラスタ監視部124の処理の詳細は図7で後述する。
図6は、リソース管理サーバ120のクラスタ生成部123の処理の一部であるリソース割り当て処理(S600)の動作フローの例である。
ステップS601において、まず、リクエスト生成サーバ103から受け取ったクラスタ生成依頼(S505)の引数である並列数分の空き計算機リソースがあるかどうかをリソース割り当て情報記憶部121が管理するデータテーブル300から未使用コア数を算出して、判定する。もし空き計算機リソースがあると判定されればS602へ移行し、空き計算機リソースが足りないと判定されればS603へ移行する。
ステップS602において、空き計算機リソースを有する処理サーバ130の中より、割り当てる処理サーバ130を選定して、リソース割り当て処理を終了する。
ステップS603において、クラスタ生成依頼(S505)の引数である該当アプリケーションの予想実行時間が基準値以上であるかどうかを判定する。
ここで、予想実行時間と比較する基準値とは、例えば、短時間の予想実行時間のアプリケーションの実行要求であった場合には、クラウドから不足した分の計算機リソースを確保して立ち上げる時間を待たされたアプリケーション利用者が、待ち時間により予想実行時間が延びたことによってサービス品質が低下していると印象を持つか否かの閾値として予め決めておくものとする。例えば、逆に予想実行時間が長いアプリケーションの実行要求であった場合には、クラウドから不足した分の計算機リソースを確保して立ち上げる時間を待たされたとしても、予想実行時間が延びる時間の比率は相対的に僅かであるので、アプリケーション利用者にとってはサービス品質の低下は感じない。
すなわち、上記の基準値としては、計算機リソースの立ち上げに要する待ち時間が予想実行時間に対して相対的に大きくなくて、アプリケーション利用者にサービス品質が低下していると感じさせないことを目的として、例えば、アプリケーションの予想実行時間が1分以上や、クラウドから計算機リソースを確保して立ち上げるまでに必要な時間(実績値のログを取っておいて、その平均値を求める)と同程度(またはその半分程度)以上、などの基準値を設ける。
S603において、予想実行時間が基準値以上であればS604へ移行し、予想実行時間が基準値未満であればS605へ移行する。
ステップS604において、クラウドから計算機リソースとして不足している分の処理サーバ130を立ち上げて、処理サーバ130を割り当てして、リソース割り当て処理を終了する。
ステップS605において、予想実行時間が基準値を下回る程短いのでクラウドから不足した分の計算機リソースを確保することはせずに、アプリ進捗情報記憶部122が管理しているデータテーブル400に格納された各クラスタ内のアプリケーションの実行状況から、アプリケーションの実行を共存しても影響が少ないであろうクラスタを選択する。
ここで、アプリケーションの実行を共存しても、影響が少ないとは、クラスタ内のアプリケーションを、新たなアプリケーションと共存させて実行することにより、クラスタ内のアプリケーションの当初の予想実行時間は延びることになる。この予想実行時間の変動量が、当初の予想実行時間に対して相対的に小さいほど影響が少ないとする。
アプリケーションの実行を共存しても、影響が少ないであろうクラスタとは、たとえば、残り時間406が大きく、かつ共存数403が小さく、かつ共存時間408が小さく、かつPool利用数404が多いクラスタが該当する。これらの情報に重み係数を掛けるなどして、優先度を設定し、クラスタを選択する。
ステップS606において、選択したクラスタの中から割り当てる処理サーバ130をリソース割り当て情報記憶部121が管理するデータテーブル300から選択して、リソース割り当て処理を終了する。
図7はリソース管理サーバ120のクラスタ監視部124の動作フローの例である。
ステップS701において、アプリ進捗情報記憶部122が管理するデータテーブル400に登録されている各クラスタで実行しているアプリケーションから、現在のアプリケーションの進捗情報を取得する。
ステップS702において、S701で取得した進捗情報を元に、アプリ進捗情報記憶部122が管理するデータテーブル400に登録されている各クラスタごとの残り時間406と共存時間408を更新する。
ステップS703とステップS708に挟まれた処理を、アプリ進捗情報記憶部122が管理するデータテーブル400に登録されている各クラスタ1つずつに対して実行する。
ステップS704において、残り時間406がクラウドから計算機リソースを確保するために必要な時間以上あり、かつ共存時間408に値が書き込まれているかをチェックする。YESであればS705へ移行し、NOであればS708へ移行する。
ステップS705において、残り時間406により想定されるアプリケーションの終了時刻と、当初終了予定時刻407との差が、保障レベル405に設定されている値が表すユーザが要求する許容範囲以上となりそうであるかをチェックする。YESであればS706へ移行し、NOであればS708へ移行する。
ステップS706において、クラウドから新たに計算機リソースを取得して処理サーバ130を追加し、追加した処理サーバ130に、該当クラスタで実行されているアプリケーションをインストールして、クラスタ内のアプリケーションとして実行できるようにする。これらの処理をオートスケール処理と呼ぶ。
ステップS707において、S706でオートスケール処理が実行されると、リソース割り当て情報記憶部121が管理するデータテーブル300に追加した処理サーバ130のレコードを格納し、及びアプリ進捗情報記憶部122が管理するデータテーブル400の該当クラスタの情報を更新する。
ステップS709において、数分待機し、定期的にステップS701から処理を実行する。
クラスタ監視部124の以上の処理により、アプリケーションの実行が共存されて、当初終了予定時刻と残り時間から想定される終了時刻との間に大きく差が開き、アプリケーション利用者が指定した保障レベル(許容時間範囲)以上の実行時間の開きが生じると予測された場合でも、クラウドから計算機リソースを確保するオートスケール処理により、自動的に実行時間の短縮化を図り、保障レベルの範囲内に抑えることができる。
また、本実施例では、クラスタ生成部123により、残り時間が長い順にアプリケーションを共存させることを優先度を高くすることで、クラスタ監視部124のオートスケール処理による実行時間の短縮を効果的に利用することができる。
図8は、処理サーバ130のアプリケーションの実行が終了した時に、情報処理システム内の各サーバで行われる処理の流れを表したシーケンス図である。図8では、処理サーバ130のアプリケーションの実行が終了するところから始まり、クラスタが破棄されるまでの処理の流れが記載されている。
まず、リソース管理サーバ120は、処理サーバ130からクラスタ名が指定されたクラスタ破棄依頼(S801)を受け取ると、クラスタ破棄部125を実行する。クラスタ破棄部125は、リソース割り当て情報記憶部121が管理するデータテーブル300を参照することで、クラスタ内の処理サーバ130とアプリ名を特定する(S802)。次に、特定された各処理サーバ130にアプリケーション破棄依頼(S803)を送信する。
アプリケーション破棄依頼を受領した各処理サーバ130は、アプリケーションのアンインストール(S804)を行い、完了通知(S805)をリソース管理サーバ120に返送する。完了通知(S805)を受け取ると、リソース割り当て情報記憶部121が管理するデータテーブル300とアプリ進捗情報記憶部122が管理するデータテーブル400の該当クラスタに関連する情報を削除する。ここで、リソース割り当て情報記憶部121が管理するデータテーブル300の該当クラスタに関連する情報は、もしPoolフラグが「○」である処理サーバ130であれば、クラスタ情報のみを削除し、Poolフラグが「−」であれば、レコードごと削除する。
図9は、アプリケーション利用者が実行要求毎にアプリケーションや入力データや並列度や保障レベルを決定するための設定画面イメージの例である。本実施例では、リクエスト生成サーバ103がこの設定画面900を作成してクライアント端末101に提供する(クライアント端末101のディスプレイ装置209に表示させる)例を説明する。ただし、リクエスト生成サーバ103以外の計算機が、この設定画面900を作成してもよい。
図9において、901はアプリ名入力ボックス、902はデータ名入力ボックス、903は並列度設定欄、904は(終了)保障レベル設定欄(アプリケーション利用者は、予想実行時間に対する実際の実行時間のブレの許容幅をいずれの保証レベルを要求するのか指定する。例えば、数十分レベルまで実行時間のブレの範囲を許容すると、¥500減額することを示している。)である。アプリケーション利用者がアプリ名入力ボックス901とデータ名入力ボックス902と並列度設定欄903と保障レベル設定欄904のそれぞれを入力することで、リクエスト生成サーバ103を経由してアプリ管理サーバ105に問合せを行い、アプリ管理サーバ105が想定される予想実行時間を算出するとともに、予想実行時間と並列度と保障レベルの設定に基づきコストを算出して、その結果を表示領域905,906に表示した画面を作成し、クライアント端末101に表示させる。
そのためアプリケーション利用者は、表示領域905に表示されるアプリケーションの予想実行時間が、アプリケーション利用者の希望する実行時間以内になるまで、並列度設定欄903に入力する並列度を少しずつ増やすことを繰り返すとよい。
また、使用する計算機リソースの量と計算機リソースの使用時間に応じて、アプリケーション利用者が情報処理システムの管理者(または所有者)に使用料金を支払うように、情報処理システムが運営されている場合、設定画面900にコスト表示欄906を設け、リクエスト生成サーバ103(またはアプリ管理サーバ105)はアプリケーションの並列度とアプリケーションの実行時間(アプリケーションが並列実行される場合の実行時間)と保障レベルの値に応じたコスト(情報処理システムの使用料金)を算出し、算出されたコストの情報をアプリケーション利用者に対して提供してもよい。これによりアプリケーション利用者は、アプリケーションを完了させたい実行時間と並列度に応じて掛かるコストのバランスを見ながら、今回の実行要求を満たす並列度(実行時並列度)を決定することができる。
アプリケーション利用者が実行時の設定を決定した後確定ボタン907を押すと、図5のS501の処理が行われる。
本実施例に係る情報処理システムは、上で述べた機能を備えることにより、計算機リソースプールが枯渇している場合でも、アプリケーションプログラムを迅速に開始することができ、短時間で終了するアプリケーションでもサービス品質を低下させること無く、処理を完了させることができる。
101:クライアント端末、102:ネットワーク、103:リクエスト生成サーバ、104:データ管理サーバ、105:アプリ管理サーバ、120:リソース管理サーバ、
121:リソース割り当て情報記憶部、122:アプリ進捗情報記憶部、123:クラスタ生成部、124:クラスタ監視部、125:クラスタ破棄部、130:処理サーバ、
200:計算機、201:プロセッサ(CPU)、202:メモリ、203:補助記憶装置、204:通信インターフェース(通信I/F)、205:入力インターフェース(入力I/F)、206:キーボード、207:マウス、208:出力インターフェース(出力I/F)、209:ディスプレイ装置、
300:リソース割り当て情報記憶部が管理するデータテーブル、
400:アプリ進捗情報記憶部が管理するデータテーブル、
900:アプリケーション利用者が実行要求毎にアプリケーションや入力データや並列度や保障レベルを決定するための設定画面、901:アプリ名入力ボックス、902:データ名入力ボックス、903:並列度設定欄、904:保障レベル設定欄、905:予想実行時間表示領域、906:コスト表示欄、907:確定ボタン

Claims (9)

  1. 管理サーバと、複数の処理サーバを有し、ユーザからの要求に応じてネットワークを介してアプリケーションプログラムの実行を提供する情報処理システムであって、
    前記処理サーバはそれぞれ、アプリケーションプログラムを実行するための1以上のプロセッサを有し、
    前記管理サーバは、それぞれの前記処理サーバとして実行可能な計算機リソースと、前記計算機リソースの使用状態、及び1つのアプリケーションプログラムを実行しているクラスタごとに、クラスタ利用状況やユーザからの要求情報、アプリケーションプログラムの実行時間に関する情報を管理しており、
    前記管理サーバのクラスタ生成部は、ユーザからアプリケーションプログラムの実行要求と共に、その実行の並列度と予想実行時間を受領した際に、前記管理サーバが管理していた計算機リソースに空きが無く、かつ実行要求の対象である前記アプリケーションプログラムの予想実行時間が基準値以下である場合に、
    前記管理サーバで管理している使用中の計算機リソースの中から、一時的にアプリケーションプログラムを複数同時に実行しても、当初の予想実行時間からの変動割合が相対的に小さいアプリケーションプログラムが実行されている計算機リソースを選定して、
    前記選定した計算機リソースに対して、実行要求の対象である前記アプリケーションプログラムを配置して、実行する、
    ことを特徴とする情報処理システム。
  2. 前記管理サーバのクラスタ生成部は、一時的にアプリケーションプログラムを複数同時に実行しても、当初の予想実行時間からの変動割合が相対的に小さいアプリケーションプログラムが実行されている計算機リソースを選定する際に、残り時間が大きく、かつ共存数が小さく、かつ共存時間が小さく、かつPool利用数が多いクラスタに属する計算機リソースを優先的に選定する、
    ことを特徴とする請求項1に記載の情報処理システム。
  3. 前記管理サーバのクラスタ生成部は、一時的にアプリケーションプログラムを複数同時に実行しても、当初の予想実行時間からの変動割合が相対的に小さいアプリケーションプログラムが実行されている計算機リソースを選定する際に、残り時間、共存数、共存時間、およびPool利用数の各情報の大小の値に重み係数を掛けて優先度を設定したクラスタに属する計算機リソースを優先的に選定する、
    ことを特徴とする請求項2に記載の情報処理システム。
  4. 前記管理サーバは、前記計算機リソースの使用状態、各クラスタ内のアプリケーションプログラムの実行時間に関する情報に加えて、ユーザがアプリケーションプログラムの実行要求と共に要求した予想実行時間の変動割合の許容度を表す保障レベルを管理しており、
    前記管理サーバのクラスタ監視部は、所定時間のサイクル時間ごとに、各クラスタ内のアプリケーションプログラムの進捗情報を取得して、残り時間、および共存時間を更新し、
    前記管理サーバのクラスタ監視部は、管理している全てのクラスタのうち、残り時間がクラウドから計算機リソースを確保するために必要な時間以上あり、かつ共存時間があり、かつ残り時間により想定されるアプリケーションプログラムの終了時刻と、当初終了予定時刻との差が、保障レベルが表すユーザが要求する許容範囲以上となるクラスタに対しては、クラウドから新たに計算機リソースを取得して、当該クラスタで実行されているアプリケーションプログラムをインストールする、
    ことを特徴とする請求項1に記載の情報処理システム。
  5. 前記管理サーバは、ユーザがアプリケーションプログラムの実行要求を検討する際に、クライアント端末に実行要求情報を設定する画面を提示して、
    前記画面には、選定アプリ名、入力データ、および並列度を設定する各欄と共に、予想実行時間の変動割合の許容度を表す保障レベルを選択する欄が配置され、
    前記管理サーバは、ユーザによる選定アプリ名、入力データ、および並列度の設定を受付けて、選定されたアプリケーションプログラムの実行を、入力データ、および並列度に基づいてシミュレーションして、予想実行時間を算出して、前記画面に予想実行時間を提示し、続いて、算出した前記予想実行時間と、ユーザが設定した並列度、および保障レベルを受付けて、コストを算出して、前記画面にコストを提示する、
    ことを特徴とする請求項1に記載の情報処理システム。
  6. 前記複数の処理サーバの一部、または全てが、クラウドから予め取得された計算機リソースであることを特徴とする請求項1に記載の情報処理システム。
  7. 管理サーバと、複数の処理サーバを有し、ユーザからの要求に応じてネットワークを介してアプリケーションプログラムの実行を提供する情報処理システムにおいて、
    前記処理サーバはそれぞれ、アプリケーションプログラムを実行するための1以上のプロセッサを有し、
    前記管理サーバは、それぞれの前記処理サーバとして実行可能な計算機リソースと、前記計算機リソースの使用状態、及び1つのアプリケーションプログラムを実行しているクラスタごとに、クラスタ利用状況やユーザからの要求情報、アプリケーションプログラムの実行時間に関する情報を管理しており、
    前記管理サーバが、ユーザからアプリケーションプログラムの実行要求と共に、その実行の並列度と予想実行時間を受領した際に、前記管理サーバが管理していた計算機リソースに空きが無く、かつ実行要求の対象である前記アプリケーションプログラムの予想実行時間が基準値以下である場合に、
    前記管理サーバで管理している使用中の計算機リソースの中から、一時的にアプリケーションプログラムを複数同時に実行しても、当初の予想実行時間からの変動割合が相対的に小さいアプリケーションプログラムが実行されている計算機リソースを選定して、
    前記選定した計算機リソースに対して、実行要求の対象である前記アプリケーションプログラムを配置して、実行する、
    ことを特徴とするリソース割り当て方法。
  8. 前記管理サーバが、一時的にアプリケーションプログラムを複数同時に実行しても、当初の予想実行時間からの変動割合が相対的に小さいアプリケーションプログラムが実行されている計算機リソースを選定する際に、残り時間が大きく、かつ共存数が小さく、かつ共存時間が小さく、かつPool利用数が多いクラスタに属する計算機リソースを優先的に選定する、
    ことを特徴とする請求項7に記載のリソース割り当て方法。
  9. 前記管理サーバが、一時的にアプリケーションプログラムを複数同時に実行しても、当初の予想実行時間からの変動割合が相対的に小さいアプリケーションプログラムが実行されている計算機リソースを選定する際に、残り時間、共存数、共存時間、およびPool利用数の各情報の大小の値に重み係数を掛けて優先度を設定したクラスタに属する計算機リソースを優先的に選定する、
    ことを特徴とする請求項8に記載のリソース割り当て方法。
JP2017122235A 2017-06-22 2017-06-22 情報処理システムおよびリソース割り当て方法 Active JP6924083B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017122235A JP6924083B2 (ja) 2017-06-22 2017-06-22 情報処理システムおよびリソース割り当て方法
US16/493,319 US11068317B2 (en) 2017-06-22 2018-06-15 Information processing system and resource allocation method
PCT/JP2018/022941 WO2018235739A1 (ja) 2017-06-22 2018-06-15 情報処理システムおよびリソース割り当て方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017122235A JP6924083B2 (ja) 2017-06-22 2017-06-22 情報処理システムおよびリソース割り当て方法

Publications (2)

Publication Number Publication Date
JP2019008454A true JP2019008454A (ja) 2019-01-17
JP6924083B2 JP6924083B2 (ja) 2021-08-25

Family

ID=64737095

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017122235A Active JP6924083B2 (ja) 2017-06-22 2017-06-22 情報処理システムおよびリソース割り当て方法

Country Status (3)

Country Link
US (1) US11068317B2 (ja)
JP (1) JP6924083B2 (ja)
WO (1) WO2018235739A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109298936B (zh) * 2018-09-11 2021-05-18 华为技术有限公司 一种资源调度方法及装置
CN112035267B (zh) * 2020-11-03 2021-11-12 北京淇瑀信息科技有限公司 一种基于mpi的集群资源调度方法、装置及系统
CN112423041B (zh) * 2020-11-19 2021-10-29 湖南大学 分布式计算平台下基于QoS约束的视频流处理方法和系统
JP2022144518A (ja) * 2021-03-19 2022-10-03 株式会社日立製作所 演算方法、演算指示システム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007272297A (ja) * 2006-03-30 2007-10-18 Nec Corp オンデマンドクライアントサービスシステム、その管理方法、及びプログラム
WO2012164689A1 (ja) * 2011-05-31 2012-12-06 株式会社日立製作所 ジョブ管理サーバ及びジョブ管理方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685283B2 (en) 2006-01-23 2010-03-23 International Business Machiens Corporation Method for modeling on-demand free pool of resources
US9471390B2 (en) * 2013-01-16 2016-10-18 International Business Machines Corporation Scheduling mapreduce jobs in a cluster of dynamically available servers
US9720732B1 (en) * 2013-02-11 2017-08-01 Amazon Technologies, Inc. Parameter selection for optimization of task execution based on execution history for prior tasks
US9612876B2 (en) * 2013-12-19 2017-04-04 Xerox Corporation Method and apparatus for estimating a completion time for mapreduce jobs
US9442760B2 (en) * 2014-10-03 2016-09-13 Microsoft Technology Licensing, Llc Job scheduling using expected server performance information
WO2016153401A1 (en) * 2015-03-24 2016-09-29 Telefonaktiebolaget Lm Ericsson (Publ) Methods and nodes for scheduling data processing
US10871988B1 (en) * 2016-12-07 2020-12-22 Jpmorgan Chase Bank, N.A. Methods for feedback-based optimal workload scheduling and devices thereof
US10223109B2 (en) * 2016-12-22 2019-03-05 Juniper Networks, Inc. Automatic scaling of microservices applications
US10108458B2 (en) * 2017-02-28 2018-10-23 Huawei Technologies Canada Co., Ltd. System and method for scheduling jobs in distributed datacenters

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007272297A (ja) * 2006-03-30 2007-10-18 Nec Corp オンデマンドクライアントサービスシステム、その管理方法、及びプログラム
WO2012164689A1 (ja) * 2011-05-31 2012-12-06 株式会社日立製作所 ジョブ管理サーバ及びジョブ管理方法

Also Published As

Publication number Publication date
US20200034209A1 (en) 2020-01-30
US11068317B2 (en) 2021-07-20
WO2018235739A1 (ja) 2018-12-27
JP6924083B2 (ja) 2021-08-25

Similar Documents

Publication Publication Date Title
US10942760B2 (en) Predictive rightsizing for virtual machines in cloud computing systems
CN108009016B (zh) 一种资源负载均衡控制方法及集群调度器
CN108431796B (zh) 分布式资源管理系统和方法
JP5332065B2 (ja) クラスタ構成管理方法、管理装置及びプログラム
US8910128B2 (en) Methods and apparatus for application performance and capacity analysis
CN113037794B (zh) 计算资源配置调度方法、装置及系统
JP6924083B2 (ja) 情報処理システムおよびリソース割り当て方法
US20160156567A1 (en) Allocation method of a computer resource and computer system
US10419305B2 (en) Visualization of workload distribution on server resources
CN113382077B (zh) 微服务调度方法、装置、计算机设备和存储介质
JP2017507415A (ja) クラウド環境におけるitインフラ管理のための方法とその装置
WO2018079162A1 (ja) 情報処理システム
JP2016024612A (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
CN111124644B (zh) 任务调度资源的确定方法、装置及系统
JP2017091330A (ja) 計算機システム及び計算機システムのタスク実行方法
JP2011192049A (ja) 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム
JP6279816B2 (ja) ストレージ監視システムおよびその監視方法
US9983888B2 (en) Predictive writing of bootable images to storage nodes in a cloud computing environment
JP6957194B2 (ja) サービスシステム、その制御方法、およびそのプログラム
Nino-Ruiz et al. Elastic scaling of e-infrastructures to support data-intensive research collaborations
Tan et al. Heavy-traffic analysis of cloud provisioning
US20220414577A1 (en) System and method for performance-centric workload placement in a hybrid cloud environment
US11340952B2 (en) Function performance trigger
JP2014206805A (ja) 制御装置
JP6374059B2 (ja) コンピュータ資源配分決定方法、コンピュータ資源配分決定方法プログラムおよび制御用コンピュータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210629

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: 20210713

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210730

R150 Certificate of patent or registration of utility model

Ref document number: 6924083

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150