JP6613763B2 - 情報処理装置、情報処理方法、及び、プログラム - Google Patents

情報処理装置、情報処理方法、及び、プログラム Download PDF

Info

Publication number
JP6613763B2
JP6613763B2 JP2015190598A JP2015190598A JP6613763B2 JP 6613763 B2 JP6613763 B2 JP 6613763B2 JP 2015190598 A JP2015190598 A JP 2015190598A JP 2015190598 A JP2015190598 A JP 2015190598A JP 6613763 B2 JP6613763 B2 JP 6613763B2
Authority
JP
Japan
Prior art keywords
processing
predetermined
data
time
node
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
JP2015190598A
Other languages
English (en)
Other versions
JP2017068393A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2015190598A priority Critical patent/JP6613763B2/ja
Publication of JP2017068393A publication Critical patent/JP2017068393A/ja
Application granted granted Critical
Publication of JP6613763B2 publication Critical patent/JP6613763B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理装置、情報処理方法、及び、プログラムに関し、特に、分析処理等の所定の処理を複数の処理装置で分散して実行するための、情報処理装置、情報処理方法、及び、プログラムに関する。
近年、業務処理において扱われるデータが大規模化しており、これらのデータに対する処理は複数のサーバに分散して行われている。例えば、ビッグデータ等の大規模データを扱う分析システムにおいては、分析処理層を分散して構成することにより、負荷を分散する。しかし、データ分析においては、分析対象のデータの大きさや構成は様々であり、これらデータの大きさや構成によって分析処理の所要時間やリソース消費量が異なる。また、処理単位あたりの所要時間も、一般的なWebアプリケーションサーバにおける業務処理の所要時間と比べて長い傾向がある。そのため、分析処理における負荷の度合いや兆候を想定することは困難であり、処理量等を事前に見積もった上でのスケーリングの最適化が行われていない。その結果、サーバ等のリソースの配置が適切に行われていない。特に、従量課金制のクラウドサービス上でこのような分析システムを構築する場合、リソースの配置が過剰だと、サービス利用に伴う費用が増大してしまう。
また、データ分析では、最新の予測モデルや分類モデルを生成する必要があるため、定期的な分析処理が発生する。この場合、分析対象によっては、短期間でのモデル更新が求められるため、分析処理に時間的な制約が伴うことが多い。そのような制約の下で、多くのモデルを更新するためには、リソースと負荷の平準化を十分考慮してリソースプランニングをする必要がある。リソースプランニングは、一般に、一定の経験やスキルが必要であるため、システム運用者等への負担も大きい。
このような負荷分散に係る技術の一例が、特許文献1に記載されている。特許文献1に記載の技術では、入力データの値に係る条件ごとに、各サーバで動作するビジネスプロセスの平均応答時間が算出され、入力データの値に対して、平均応答時間が最も短いビジネスプロセスが動作するサーバが選択される。
特開2007−004414号公報
上述の特許文献1に記載された技術では、入力データの値によりプロセスの応答時間が決まる場合には、応答時間が短いサーバを選択できる。しかしながら、データ分析のように、データの大きさや構成によって分析処理の所要時間やリソース消費量が異なる場合には、適切なサーバを選択することが難しい。
本発明の目的は、上述の課題を解決し、様々な大きさや構成を有するデータに対して所定の処理を分散して実行する場合に、リソースの配置を最適化する、情報処理装置、情報処理方法、及び、プログラムを提供することである。
本発明の情報処理装置は、第1のデータの属性と当該第1のデータに対して所定の処理を処理装置で実行したときの当該所定の処理に係る処理性能との関係を用いて、第2のデータの属性に対する前記所定の処理に係る処理性能を予測する、予測手段と、前記予測された処理性能をもとに、複数の前記処理装置の内、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置を選定する、選定手段と、を備える。
本発明の情報処理方法は、第1のデータの属性と当該第1のデータに対して所定の処理を処理装置で実行したときの当該所定の処理に係る処理性能との関係を用いて、第2のデータの属性に対する前記所定の処理に係る処理性能を予測し、前記予測された処理性能をもとに、複数の前記処理装置の内、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置を選定する。
本発明のプログラムは、コンピュータに、第1のデータの属性と当該第1のデータに対して所定の処理を処理装置で実行したときの当該所定の処理に係る処理性能との関係を用いて、第2のデータの属性に対する前記所定の処理に係る処理性能を予測し、前記予測された処理性能をもとに、複数の前記処理装置の内、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置を選定する、処理を実行させる。
本発明の効果は、様々な大きさや構成を有するデータに対して所定の処理を分散して実行する場合に、リソースの配置を最適化できることである。
本発明の実施の形態の特徴的な構成を示すブロック図である。 本発明の実施の形態における、分析システム1の構成を示すブロック図である。 本発明の実施の形態における、コンピュータにより実現された負荷分散装置200の構成を示すブロック図である。 本発明の実施の形態における、分析実行処理を示すフローチャートである。 本発明の実施の形態における、モデル生成処理を示すフローチャートである。 本発明の実施の形態における、ノード選定処理を示すフローチャートである。 本発明の実施の形態における、リクエスト転送/ノード再選定処理を示すフローチャートである。 本発明の実施の形態における、性能情報の例を示す図である。 本発明の実施の形態における、学習用性能情報221の例を示す図である。 本発明の実施の形態における、モデル情報222の例を示す図である。 本発明の実施の形態における、ノード情報226の例を示す図である。 本発明の実施の形態における、処理性能の予測結果を示す図である。 本発明の実施の形態における、ノード300、ワーカー310の選定の例を示す図である。 本発明の実施の形態における、ノード300、ワーカー310の選定の他の例を示す図である。 本発明の実施の形態における、ノード300、ワーカー310の選定の他の例を示す図である。 本発明の実施の形態における、ノード300、ワーカー310の選定の他の例を示す図である。 本発明の実施の形態における、選定結果225の例を示す図である。 本発明の実施の形態における、表示画面500の例を示す図である。 本発明の実施の形態における、ノード300、ワーカー310の再選定の例を示す図である。
以下、入力されたデータに対して分析処理を行う、分析システム1を例に、本発明の実施の形態を説明する。
はじめに、本発明の実施の形態の構成を説明する。
図2は、本発明の実施の形態における、分析システム1の構成を示すブロック図である。図2を参照すると、分析システム1は、1以上のクライアント装置100、負荷分散装置200、1以上のノード300、及び、データ記憶装置400を含む。クライアント装置100と負荷分散装置200、負荷分散装置200とノード300、負荷分散装置200とデータ記憶装置400、及び、ノード300とデータ記憶装置400は、ネットワーク等により接続される。
クライアント装置100は、分析リクエストを、負荷分散装置200を介して、ノード300に送信する。
ノード300(以下、処理装置、または、サーバマシンとも記載)は、クライアント装置100から負荷分散装置200を介して受信した分析リクエストに対して、分析処理を実行する。ノード300は、例えば、CPU(Central Processing Unit)とプログラムを記憶した記憶媒体を含み、プログラムにもとづく制御によって動作するコンピュータである。ノード300は、物理的なコンピュータ(物理マシン)でも仮想的なコンピュータ(仮想マシン)でもよい。
ノード300上では、分析処理を実行するためのプログラム(プロセス)である、1以上のワーカー310(以下、サーバプロセスとも記載)が稼働する。各ノード300で同時に稼働可能なワーカー310の数は、最大ワーカー数により定義される。ノード300のリソース(メモリ、ディスク)は、当該ノード300で稼働するワーカー310により共有される。ノード300で利用可能なリソース量の最大値は、最大リソース量により定義される。
なお、本発明の実施の形態では、リソースとしてメモリ、及び、ディスク(リソース量としてメモリ量、及び、ディスク量)を用いる。しかしながら、これに限らず、リソースとしてCPUやネットワーク(リソース量としてCPU使用率やネットワーク使用率)等、他のリソースを用いてもよい。
各ワーカー310は、分析実行部311、性能情報記憶部312、及び、性能情報送信部313を含む。分析実行部311は、分析リクエストで指定されたデータに対して所定の分析処理を実行する。所定の分析処理は、例えば、指定されたデータをもとに、所定のアルゴリズムに従って、データの予測や分類を行うための予測モデルや分類モデルを学習するための処理である。性能情報記憶部312は、各分析リクエストに対して実行した分析処理の処理性能に係る、性能情報を記憶する。性能情報送信部313は、負荷分散装置200に性能情報を送信する。
なお、本発明の実施の形態では、分析処理の処理性能として、分析処理の処理時間、及び、リソース消費量を用いる。しかしながら、これに限らず、分析処理を実行すべきノード300やワーカー310の選定に用いることができれば、処理性能として、他の指標の値を用いてもよい。
データ記憶装置400は、分析対象のデータを記憶する。データ記憶装置400は、1以上のノード300に共有される。
負荷分散装置200は、1以上のノード300を監視するとともに、クライアント装置100から分析リクエストを受信したときに、分析処理を実行すべきノード300、及び、当該ノード300上のワーカー310を選定し、分析リクエストを振り分ける。負荷分散装置200は、本発明の情報処理装置の一実施形態である。
負荷分散装置200は、性能情報収集部201、モデル生成部202、リクエスト制御部203、性能予測部204、ノード選定部205、及び、ノード制御部206を含む。負荷分散装置200は、さらに、性能情報記憶部211、モデル情報記憶部212、選定結果記憶部215、及び、ノード情報記憶部216を含む。
性能情報収集部201は、ノード300から性能情報を収集し、学習用性能情報221を生成する。
性能情報記憶部211は、性能情報収集部201により生成された学習用性能情報221を記憶する。
モデル生成部202(以下、単に生成部とも記載)は、性能情報記憶部211に記憶されている学習用性能情報221をもとに、ノード300における分析処理の処理性能を予測するためのモデルを生成する。
モデル情報記憶部212は、モデル生成部202によって生成されたモデルを含むモデル情報222を記憶する。
リクエスト制御部203は、クライアント装置100から受信した分析リクエストを、ノード選定部205により選定されたノード300上のワーカー310に転送する。
性能予測部204(以下、単に予測部とも記載)は、モデル情報222に含まれるモデルを用いて、分析リクエストで指定されたデータに対する分析処理の処理性能を予測する。
ノード選定部205(以下、単に選定部とも記載)は、性能予測部204で予測された処理性能をもとに、分析リクエストに対する分析処理を実行すべきノード300とワーカー310を選定する。
選定結果記憶部215は、ノード選定部205による、各分析リクエストに対するノード300の選定結果225を記憶する。
ノード制御部206は、ノード300におけるワーカー310の追加、削除や、スケールアウトに伴うノード300の起動や停止を制御する。
ノード情報記憶部216は、ノード300の状態や最大リソース量を示す、ノード情報226を記憶する。
なお、負荷分散装置200は、CPU(Central Processing Unit)とプログラムを記憶した記憶媒体を含み、プログラムにもとづく制御によって動作するコンピュータであってもよい。
図3は、本発明の実施の形態における、コンピュータにより実現された負荷分散装置200の構成を示すブロック図である。
図3を参照すると、負荷分散装置200は、CPU251、ハードディスクやメモリ等の記憶デバイス252(記憶媒体)、キーボード、ディスプレイ等の入出力デバイス253、及び、他の装置等と通信を行う通信デバイス254を含む。CPU251は、性能情報収集部201、モデル生成部202、リクエスト制御部203、性能予測部204、ノード選定部205、及び、ノード制御部206を実現するためのプログラムを実行する。記憶デバイス252は、性能情報記憶部211、モデル情報記憶部212、選定結果記憶部215、及び、ノード情報記憶部216のデータを記憶する。通信デバイス254は、クライアント装置100から分析リクエストを受信し、ノード300に分析リクエストを送信する。また、通信デバイス254は、ノード300から性能情報を受信する。入出力デバイス253は、選定結果225をシステム運用者等に出力する。また、入出力デバイス253が、クライアント装置100から分析リクエストの入力を受け付けてもよい。
また、負荷分散装置200の各構成要素は、論理回路で実現されていてもよい。この場合、複数の構成要素が、1つの論理回路で実現されていてもよいし、それぞれ、複数の独立した論理回路で実現されていてもよい。
また、負荷分散装置200の各構成要素は、有線または無線で接続された複数の物理的な装置に分散的に配置されていてもよい。この場合、負荷分散装置200は、複数のコンピュータによる分散処理により実現されていてもよい。
次に、本発明の実施の形態の動作について説明する。
<分析実行処理>
はじめに、ノード300における分析実行処理の動作を説明する。
図4は、本発明の実施の形態における、分析実行処理を示すフローチャートである。
ノード300のワーカー310は、負荷分散装置200から転送された分析リクエストを受信する(ステップS101)。クライアント装置100から送信される分析リクエストには、分析対象のデータID(Identifier)、及び、分析処理の終了要求時刻が含まれる。負荷分散装置200は、処理IDとともに分析リクエストを転送する。
ワーカー310の分析実行部311は、データ記憶装置400から、分析リクエストで指定されたデータを取得する。そして、分析実行部311は、取得したデータに対して、所定の分析処理を実行する(ステップS102)。
分析実行部311は、所定の計測間隔で、実行中の分析処理によるリソース消費量(メモリ消費量、ディスク消費量)の計測値を、性能情報として、性能情報記憶部312に保存する(ステップS103)。ここで、計測値は、処理IDと関連付けて保存される。
図8は、本発明の実施の形態における、性能情報の例を示す図である。例えば、分析実行部311は、図8のような性能情報を保存する。
分析実行部311は、分析処理が終了すると、処理結果を、分析リクエストに対する応答として、負荷分散装置200へ送信する(ステップS104)。
以降、分析リクエストを受信するたびに、ステップS101からの処理が繰り返される。
性能情報送信部313は、性能情報記憶部312に記憶された性能情報を、負荷分散装置200からの要求に応じて、負荷分散装置200に送信する。
<モデル生成処理>
次に、負荷分散装置200におけるモデル生成処理を説明する。
図5は、本発明の実施の形態における、モデル生成処理を示すフローチャートである。
負荷分散装置200の性能情報収集部201は、所定のモデル生成間隔で、各ノード300の各ワーカー310から性能情報を収集する(ステップS201)。
性能情報収集部201は、収集した性能情報を解析して、学習用性能情報221を生成し、性能情報記憶部211に保存する(ステップS202)。ここで、性能情報収集部201は、例えば、リソース消費量(メモリ消費量、ディスク消費量)の増減をもとに、性能情報を、各分析処理に対応する区間に分割し、その区間の長さ(処理時間)、及び、その区間におけるリソース消費量のピーク値を取得する。そして、性能情報収集部201は、処理IDをもとに、後述するリクエスト制御部203により取得されるデータの種別、サンプル数、項目数と、取得した処理時間、リソース消費量のピーク値とを関連付けることにより、学習用性能情報221を生成する。
図9は、本発明の実施の形態における、学習用性能情報221の例を示す図である。例えば、性能情報収集部201は、図8の性能情報をもとに、図9のような学習用性能情報221を生成する。
モデル生成部202は、性能情報記憶部211に記憶されている学習用性能情報221をもとに、モデルを生成する(ステップS203)。モデル生成部202は、生成したモデルを含むモデル情報222を、モデル情報記憶部212に保存する。ここで、モデル生成部202は、モデルとして、データの種別ごとに、データの属性(property)と処理時間やリソース消費量(メモリ消費量、ディスク消費量)との間の関係(relationship)を表す関係式(相関関数)を生成する。本発明の実施の形態では、データは、1以上の項目(item)の値の組(サンプル)のサンプル数分の集合により構成され、データの属性として、例えば、データのサイズ(サンプル数と項目数とを乗じた値)を用いる。なお、データの属性として、例えば、データの密度(単位量当たりのサンプル数)を用いてもよいし、データの特徴量(分散、平均値、その他統計的に得られる値)を用いてもよい。また、データの属性として、これらの組み合わせから得られる値を用いてもよい。相関関数は、例えば、回帰分析により算出される。これらの相関関数により、データの属性から、当該データに対する処理性能(処理時間、リソース消費量)を予測できる。
図10は、本発明の実施の形態における、モデル情報222の例を示す図である。図10の例では、データ種別「D1」、「D2」、…に対して、それぞれ、モデルID「M1」、「M2」、…のモデルが生成されている。各モデルは、データの属性と処理時間の相関関数(処理時間算出式)、データの属性とメモリ消費量の相関関数(メモリ消費量算出式)、及び、データの属性とディスク消費量の相関関数(ディスク消費量算出式)を含む。各式において、変数xは、データの属性(サンプル数と項目数とを乗じた値)を示す。
例えば、モデル生成部202は、図9の学習用性能情報221をもとに、図10のようなモデルを生成する。
なお、モデル生成部202は、データの属性から当該データに対する分析処理の処理性能を予測できれば、モデルとして、相関関数以外のモデルを生成してもよい。
<ノード選定処理>
次に、負荷分散装置200における、ノード選定処理を説明する。
図11は、本発明の実施の形態における、ノード情報226の例を示す図である。図11の例では、ノード情報226は、ノード状態(起動中/停止中)、最大リソース量(最大メモリ量、最大ディスク量)、最大ワーカー数、及び、稼働中ワーカー数を含む。ここでは、図11のような最大メモリ量、最大ディスク量、及び、最大ワーカー数が、予め、システム運用者等によりノード情報226に設定され、ノード情報記憶部216に記憶されていると仮定する。
また、初期状態では、ノードID「N1」のノード300(以下、ノード300「N1」と記載)のみが起動し、当該ノード300「N1」上でワーカーID「W1」のワーカー310(以下、ワーカー310「W1」と記載)が稼働していると仮定する。
また、モデル情報記憶部212には、モデル生成部202により生成された、図10のモデル情報222のモデルが記憶されていると仮定する。
図6は、本発明の実施の形態における、ノード選定処理を示すフローチャートである。
リクエスト制御部203は、クライアント装置100から、データID、及び、終了要求時刻を含む、分析リクエスト(選定対象リクエスト)を受信する(ステップS301)。終了要求時刻は、その時刻以前に分析処理が終了すべきことを示す。リクエスト制御部203は、選定対象リクエストのデータIDで指定されたデータをデータ記憶装置400から取得し、当該データから、当該データの種別、サンプル数、項目数を取得する。なお、分析リクエストがデータの種別、サンプル数、項目数を含む場合、リクエスト制御部203は、これらの情報を、分析リクエストから取得してもよい。
リクエスト制御部203は、選定対象リクエストに対する分析処理(選定対象処理)に、処理IDを付与する(ステップS302)。
性能予測部204は、モデル情報記憶部212に記憶されているモデルを用いて、選定対象処理の処理性能(処理時間、リソース消費量)を予測する(ステップS303)。
ノード選定部205は、処理性能の予測結果(予測処理時間、予測リソース消費量)と選定結果記憶部215に記憶されている選定結果225とをもとに、選定対象処理を実行すべきノード300、ワーカー310、開始予定時刻を、以下のように決定する。
ノード選定部205は、起動中のノード300で稼働中のいずれかのワーカー310において、選定対象処理を実行可能かどうか判定する(ステップS304)。ここで、ノード選定部205は、稼働中のワーカー310が利用可能な時間帯(分析処理の実行予定のない時間帯)において、その時刻を開始時刻とした場合に、予測終了時刻(開始時刻+予測処理時間)が終了要求時刻以前となる時刻(開始候補時刻)を抽出する。そして、ノード選定部205は、選定対象処理の予測リソース消費量が、抽出された開始候補時刻から予測終了時刻までの間のノード300の予測利用可能リソース量以下であれば、当該開始候補時刻から選定対象処理を実行可能と判定する。各時刻のノード300の予測利用可能リソース量は、ノード300の最大リソース量から、選定結果225において、当該時刻において実行が予定されている分析処理の予測リソース消費量の合計値を減じることにより算出できる。
ステップS304で実行可能な場合(ステップS304/Y)、ノード選定部205は、以下の処理を行う。すなわち、ノード選定部205は、実行可能と判定されたノード300、ワーカー310、開始候補時刻を、選定対象処理を実行すべきノード300、ワーカー310、開始予定時刻に決定する(ステップS305)。実行可能と判定された開始候補時刻が複数ある場合、ノード選定部205は、例えば、最も早い開始候補時刻を開始予定時刻に決定する。
図12は、本発明の実施の形態における、処理性能の予測結果を示す図である。また、図13、図14、図15、図16は、本発明の実施の形態における、ノード300、ワーカー310の選定の例を示す図である。
例えば、初期状態の時刻「0:00」にデータID「d101」を指定した分析リクエスト(処理ID「P101」)を受信したと仮定する。性能予測部204は、モデルID「M1」のモデルを用いて、図12のように、分析処理「P101」の予測処理性能を算出する。
この場合、図13において、算出した予測処理性能(予測処理時間「360秒」、予測メモリ消費量「1486MB」)の分析処理は、起動中のノード300「N1」上の稼働中のワーカー310「W1」で、時刻「0:00」から実行可能である。したがって、ノード選定部205は、図13に示すように、ノード300「N1」、ワーカー310「W1」、時刻「0:00」を、分析処理「P101」を実行すべきノード300、ワーカー310、開始予定時刻に決定する。
また、時刻「0:01」にデータID「d102」を指定した分析リクエスト(処理ID「P102」)を受信したと仮定する。性能予測部204は、モデルID「M2」のモデルを用いて、図12のように、分析処理「P102」の予測処理性能を算出する。
この場合、図13において、算出した予測処理性能(予測処理時間「120秒」、予測メモリ消費量「229MB」)の分析処理は、ノード300「N1」上で稼働中のワーカー310「W1」で、時刻「0:06」から実行可能である。したがって、ノード選定部205は、図14に示すように、ノード300「N1」、ワーカー310「W1」、時刻「0:06」を、分析処理「P102」を実行すべきノード300、ワーカー310、開始予定時刻に決定する。
ステップS304で実行可能でない場合(ステップS304/N)、ノード選定部205は、起動中のノード300の内、稼働中のワーカー310の数が最大ワーカー数未満のノード300があるかどうかを判定する(ステップS306)。
ステップS306でノード300がある場合(ステップS306/Y)、ノード選定部205は、以下の処理を行う。すなわち、ノード選定部205は、稼働中のワーカー310の数が最大ワーカー数以下のノード300において、ワーカー310を追加することで、選定対象処理を実行可能かどうか判定する(ステップS307)。ここで、ノード選定部205は、現在時刻以降に、その時刻を開始時刻とした場合に、予測終了時刻(開始時刻+予測処理時間)が終了要求時刻以前となる時刻(開始候補時刻)を抽出する。そして、ノード選定部205は、選定対象処理の予測リソース消費量が、抽出された開始候補時刻から予測終了時刻までの間のノード300の予測利用可能リソース量以下であれば、当該開始候補時刻から選定対象処理を実行可能と判定する。
ステップS307で実行可能な場合(ステップS307/Y)、ノード選定部205は、ノード制御部206を介して、実行可能と判定されたノード300に新たなワーカー310を追加して稼働させる(ステップS308)。ノード制御部206は、ノード情報226の稼働中ワーカー数を更新する。ノード選定部205は、実行可能と判定されたノード300、追加したワーカー310、実行可能と判定された開始候補時刻を、選定対象処理を実行すべきノード300、ワーカー310、開始予定時刻に決定する(ステップS309)。実行可能と判定された開始候補時刻が複数ある場合、ノード選定部205は、例えば、最も早い開始候補時刻を開始予定時刻に決定する。
例えば、時刻「0:02」にデータID「d103」を指定した分析リクエスト(処理ID「P103」)を受信したと仮定する。性能予測部204は、モデルID「M2」のモデルを用いて、図12のように、分析処理「P103」の予測処理性能を算出する。
この場合、図14において、算出した予測処理性能(予測処理時間「180秒」、予測メモリ消費量「319MB」)の分析処理は、ノード300「N1」上で稼働中のワーカー310「W1」では実行できない。しかしながら、ノード300「N1」で稼働中のワーカー310の数は最大ワーカー数「3」未満であり、当該分析処理は、ノード300「N1」にワーカー310を追加することで、時刻「0:02」から実行可能である。ノード選定部205は、図15に示すように、ノード300「N1」にワーカー310「W2」を追加する。そして、ノード選定部205は、ノード300「N1」、ワーカー310「W2」、時刻「0:02」を、分析処理「P103」を実行すべきノード300、ワーカー310、開始予定時刻に決定する。
さらに、時刻「0:03」、「0:04」、「0:05」にデータID「d104」、「d105」、「d106」を指定した分析リクエスト(処理ID「P104」、「P105」、「P106」)を受信したと仮定する。この場合、図15に示すように、ノード選定部205は、ノード300「N1」、ワーカー310「W1」、時刻「0:08」を、分析処理「P104」を実行すべきノード300、ワーカー310、開始予定時刻に決定する。また、ノード選定部205は、ノード300「N1」、ワーカー310「W2」、時刻「0:06」を、分析処理「P105」を実行すべきノード300、ワーカー310、開始予定時刻に決定する。さらに、ノード選定部205は、ノード300「N1」にワーカー310「W3」を追加し、ノード300「N1」、ワーカー310「W3」、時刻「0:05」を、分析処理「P106」を実行すべきノード300、ワーカー310、開始予定時刻に決定する。
ステップS306でノード300がない場合(ステップS306/N))、または、ステップS307で実行可能でない場合(ステップS307/N)、ノード選定部205は、以下の処理を行う。すなわち、ノード選定部205は、ノード制御部206を介して、新たなノード300を起動(スケールアウト)し、当該新たなノード300上でワーカー310を稼働させる(ステップS310)。ノード制御部206は、ノード情報226のノード状態、稼働中ワーカー数を更新する。ノード選定部205は、当該起動したノード300、当該稼働させたワーカー310、現在時刻を、選定対象処理を実行すべきノード300、ワーカー310、開始予定時刻に決定する(ステップS311)。
例えば、時刻「0:06」にデータID「d107」を指定した分析リクエスト(処理ID「P107」)を受信したと仮定する。性能予測部204は、モデルID「M1」のモデルを用いて、図12のように、分析処理「P107」の予測処理性能を算出する。
この場合、図15において、算出した予測処理性能(予測処理時間「240秒」、予測メモリ消費量「1006MB」)の分析処理は、ノード300「N1」上で稼働中のワーカー310では実行できない。また、ノード300「N1」で稼働中のワーカー310の数は最大ワーカー数「3」に達している。したがって、ノード選定部205は、図16に示すように、ノード300「N2」を起動し、当該ノード300「N2」上でワーカー310「W1」を稼働させる。そして、ノード選定部205は、ノード300「N2」、ワーカー310「W1」、時刻「0:06」を、分析処理「P107」を実行すべきノード300、ワーカー310、開始予定時刻に決定する。
ノード選定部205は、ステップS305や、S309、S311で決定した、選定対象処理を実行すべきノード300、ワーカー310、開始予定時刻を、処理IDに関連付けて、選定結果225に登録する(ステップS312)。
図17は、本発明の実施の形態における、選定結果225の例を示す図である。図17の例では、処理IDに関連付けて、当該処理IDの分析処理を実行すべきノード300のノードID、ワーカー310のワーカーID、及び、開始予定時刻が関連付けられている。
例えば、ノード選定部205は、クライアント装置100から受信した各分析リクエストに対して決定したノード300、ワーカー310、開始予定時刻を、図17のように選定結果225に登録する。
なお、上述の説明では、リソース消費量としてメモリ消費量のみを示したが、ディスク消費量についても、同様に、予測ディスク消費量の算出、予測利用可能ディスク量との比較が行われる。
また、ノード制御部206は、分析処理が終了したことにより、分析処理の実行予定が無くなったワーカー310を終了(削除)してもよい。さらに、ノード制御部206は、ワーカー310を停止したことにより稼働しているワーカー310が無くなったノード300を停止してもよい。
また、ノード選定部205は、モデル生成部202によるモデルの生成が完了するまでの間は、システム運用者等により予めノード300や分析処理の仕様をもとに設定されたモデルを用いて、上述のノード選定処理を行ってもよい。
また、ステップS310のような分析リクエストをトリガとしたスケールアウトに加えて、ノード制御部206が、例えば、CPU使用率が所定値を超えた場合等、システム運用者等により予め設定された条件にもとづくスケールアウトを実行してもよい。
また、上述の説明では、分析処理の予測リソース消費量は、分析処理の開始から終了まで一定であることを前提として、予測リソース消費量を予測利用可能リソース量と比較した。しかしながら、これに限らず、分析処理が複数のジョブにより構成され、各ジョブの切り替えタイミングと予測リソース消費量を消費するジョブを特定できる場合、当該ジョブが実行される時間帯の予測リソース消費量を予測利用可能リソース量と比較してもよい。これにより、分析処理で予測リソース消費量がピークになるタイミングに合わせて、さらに効率的なノード300、ワーカー310、及び、開始予定時刻の決定が行われる。
また、ノード選定部205は、各分析リクエストに対する処理性能の予測結果と、予測処理性能にもとづくノード300、ワーカー310の選定結果とを関連付けて、システム運用者等に表示してもよい。
図18は、本発明の実施の形態における、表示画面500の例を示す図である。図18の例では、表示画面500は、予測処理性能表示エリア501、選定結果表示エリア502を含む。予測処理性能表示エリア501では、各分析リクエストに対して、処理性能を予測するために使用したモデルのモデルIDや、処理性能(処理時間、リソース消費量)の予測結果、選定されたノード300、ワーカー310、及び、開始予定時刻が表示されている。また、選定結果表示エリア502には、各分析リクエストに対する分析処理について、選定されたノード300、ワーカー310上での、実行が予定されている時間帯が示されている。
システム運用者等は、図18のような表示画面500により、ノード300、ワーカー310の選定結果を容易に把握できる。
<リクエスト転送/ノード再選定処理>
次に、負荷分散装置200における、リクエスト転送/ノード再選定処理を説明する。
図7は、本発明の実施の形態における、リクエスト転送/ノード再選定処理を示すフローチャートである。
リクエスト制御部203は、所定の判定間隔で、選定結果225を参照し、開始予定時刻が現在時刻以前である分析処理(実行対象処理)があるか判定する(ステップS401)。
ステップS201で実行対象処理がある場合、リクエスト制御部203は、当該実行対象処理を実行すべきノード300のワーカー310において、当該実行対象処理の前の分析処理が終了しているかを判定する(ステップS402)。
ステップS402で前の分析処理が終了している場合(ステップS402/Y)、リクエスト制御部203は、実行対象処理に係る分析リクエストを処理IDとともに当該実行対象処理を実行すべきノード300のワーカー310に転送する(ステップS403)。ノード300から当該分析リクエストに対する応答を受信した場合、リクエスト制御部203は、当該応答を当該分析リクエストの送信元のクライアント装置100へ転送する(ステップS404)。
例えば、リクエスト制御部203は、図17の選定結果225をもとに、時刻「0:00」に分析処理「P101」、時刻「0:02」に分析処理「P103」、時刻「0:05」に分析処理「P106」に対する分析リクエストを転送する。
一方、ステップS402で前の分析処理が終了していない場合(ステップS402/N)、リクエスト制御部203は、以下の処理を行う。すなわち、リクエスト制御部203は、実行対象処理、及び、実行対象処理と同じワーカー310が選定されている他の分析処理の内、終了予定時刻が終了要求時刻より後になる分析処理(リカバリ対象処理)があるか判定する(ステップS405)。終了予定時刻は、開始予定時刻に遅延時間(現在時刻−実行対象処理の開始予定時刻)と予測処理時間とを加えることにより算出される。
ステップS405でリカバリ対象処理がある場合(ステップS405/Y)、ノード選定部205は、当該リカバリ対象処理を選定対象処理として、上述のノード選定処理を行い、ノード300、及び、ワーカー310の再選定を行う(ステップS406)。
図19は、本発明の実施の形態における、ノード300、ワーカー310の再選定の例を示す図である。
例えば、時刻「0:06」において、分析処理「P102」の前の分析処理「P101」が遅延し、終了していない場合、分析処理「P102」の後の分析処理「P104」の終了予定時刻は終了要求時刻(時刻「0:10」)より後になる。リクエスト制御部203は、分析処理「P104」について再選定を行い、図19のように、ノード300「N1」、ワーカー310「W3」、時刻「0:07」を、分析処理「P104」を実行すべきノード300、ワーカー310、開始予定時刻に決定する。
以降、ステップS401からの処理が繰り返し実行される。
以上により、本発明の実施の形態の動作が完了する。
なお、本発明の指示の形態では、ノード300のワーカー310が、入力データに対する分析処理を行う場合(ノード300上で稼働するプロセスが分析サーバの場合)を例に説明した。しかしながら、これに限らず、入力データの属性に応じて異なる処理性能が得られるのであれば、ワーカー310が行う処理は、分析処理以外の他の処理でもよい。例えば、ワーカー310が行う処理は、画像データや映像データの解析処理や、所定のバッチ処理、データベースの検索処理でもよい。すなわち、ノード300上で稼働するプロセスは、画像処理サーバや、バッチサーバ、データベースサーバでもよい。
次に、本発明の実施の形態の特徴的な構成を説明する。図1は、本発明の実施の形態の特徴的な構成を示すブロック図である。
図1を参照すると、負荷分散装置200(情報処理装置)は、性能予測部204(予測部)、及び、ノード選定部205(選定部)を含む。性能予測部204は、第1のデータの属性と当該第1のデータに対して分析処理(所定の処理)をノード300(処理装置)で実行したときの当該分析処理に係る処理性能との関係を用いて、第2のデータの属性に対する分析処理に係る処理性能を予測する。ノード選定部205は、予測された処理性能をもとに、複数のノード300の内、第2のデータに対する分析処理を実行すべきノード300を選定する。
次に、本発明の実施の形態の効果を説明する。
本発明の実施の形態によれば、様々な大きさや構成を有するデータに対して所定の処理を分散して実行する場合に、リソースの配置を最適化できる。その理由は、ノード選定部205が、データの属性と分析処理に係る処理性能との関係を用いて、入力データに対して予測された処理性能をもとに、複数のノード300の内、当該入力データに対する分析処理を実行すべきノード300を選定するためである。
また、本発明の実施の形態によれば、所定の処理を分散して実行する場合に、リソースプランニングに伴うシステム運用者等への負担を低減できる。その理由は、ノード選定部205が、新たなデータに対して予測された処理性能をもとに、新たなノード300を起動(スケールアウト)するかどうかを判定するためである。これにより、システム運用者等は、処理性能の見積もりや、スケールアウトの判定条件を定義する必要はなく、システム運用者等の負担が低減する。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
1 分析システム
100 クライアント装置
200 負荷分散装置
201 性能情報収集部
202 モデル生成部
203 リクエスト制御部
204 性能予測部
205 ノード選定部
206 ノード制御部
211 性能情報記憶部
212 モデル情報記憶部
215 選定結果記憶部
216 ノード情報記憶部
221 学習用性能情報
222 モデル情報
225 選定結果
226 ノード情報
251 CPU
252 記憶デバイス
253 入出力デバイス
254 通信デバイス
300 ノード
310 ワーカー
311 分析実行部
312 性能情報記憶部
313 性能情報送信部
400 データ記憶装置
500 表示画面
501 予測処理性能表示エリア
502 選定結果表示エリア

Claims (9)

  1. 第1のデータの属性と当該第1のデータに対して所定の処理を処理装置で実行したときの当該所定の処理に係る処理性能との関係を用いて、第2のデータの属性に対する前記所定の処理に係る処理性能を予測する、予測手段と、
    前記予測された処理性能をもとに、複数の前記処理装置の内、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置を選定する、選定手段と、
    を備え
    前記予測手段は、前記処理性能として、前記所定の処理に係る処理時間を予測し、
    前記選定手段は、
    前記予測された処理時間をもとに、前記所定の処理が終了すべき時刻までに終了するように、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置、及び、前記所定の処理を開始すべき時刻を決定し、
    前記第2のデータに対する前記所定の処理を実行すべき前記処理装置における他のデータに対する前記所定の処理の状況、及び、前記予測された処理時間をもとに、前記第2のデータに対する前記所定の処理を開始する前に、当該所定の処理が前記終了すべき時刻までに終了できるかどうかを判定し、終了できない場合、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置、及び、前記所定の処理を開始すべき時刻を再決定する、
    情報処理装置。
  2. 前記予測手段は、前記処理性能として、前記所定の処理に係る処理時間とリソース量とを予測し、
    前記選定手段は、前記予測された処理時間とリソース量とをもとに、前記所定の処理が終了すべき時刻までに終了し、かつ、前記所定の処理を開始してから終了するまでの間に、前記予測されたリソース量が前記処理装置で利用可能なリソース量以下となるように、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置、及び、前記所定の処理を開始すべき時刻を決定する、
    請求項1に記載の情報処理装置。
  3. 前記選定手段は、前記予測された処理時間とリソース量に、前記決定した、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置、及び、前記所定の処理を開始すべき時刻を関連付けて表示する、
    請求項に記載の情報処理装置。
  4. 前記選定手段は、起動中の複数の前記処理装置から、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置を選定可能かどうか判定し、選定できない場合、新たに前記処理装置を起動し、当該新たに起動した前記処理装置を、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置として選定する、
    請求項1乃至のいずれかに記載の情報処理装置。
  5. さらに、前記処理装置から収集した、前記第1のデータに対して前記所定の処理を実行したときの当該所定の処理に係る処理性能をもとに、前記関係を生成する、生成手段を備える、
    請求項1乃至のいずれかに記載の情報処理装置。
  6. コンピュータに具備された予測手段が、第1のデータの属性と当該第1のデータに対して所定の処理を処理装置で実行したときの当該所定の処理に係る処理性能との関係を用いて、第2のデータの属性に対する前記所定の処理に係る処理性能を予測し、
    前記コンピュータに具備された選定手段が、前記予測された処理性能をもとに、複数の前記処理装置の内、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置を選定する、
    情報処理方法であって、
    前記予測手段は、前記所定の処理に係る処理性能を予測する場合、前記処理性能として、前記所定の処理に係る処理時間を予測し、
    前記選定手段は、前記所定の処理を実行すべき前記処理装置を選定する場合、前記予測された処理時間をもとに、前記所定の処理が終了すべき時刻までに終了するように、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置、及び、前記所定の処理を開始すべき時刻を決定し、
    さらに、前記選定手段は、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置における他のデータに対する前記所定の処理の状況、及び、前記予測された処理時間をもとに、前記第2のデータに対する前記所定の処理を開始する前に、当該所定の処理が前記終了すべき時刻までに終了できるかどうかを判定し、終了できない場合、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置、及び、前記所定の処理を開始すべき時刻を再決定する、
    情報処理方法。
  7. 前記予測手段は、前記所定の処理に係る処理性能を予測する場合、前記処理性能として、前記所定の処理に係る処理時間とリソース量とを予測し、
    前記選定手段は、前記所定の処理を実行すべき前記処理装置を選定する場合、前記予測された処理時間とリソース量とをもとに、前記所定の処理が終了すべき時刻までに終了し、かつ、前記所定の処理を開始してから終了するまでの間に、前記予測されたリソース量が前記処理装置で利用可能なリソース量以下となるように、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置、及び、前記所定の処理を開始すべき時刻を決定する、
    請求項に記載の情報処理方法。
  8. コンピュータに、
    第1のデータの属性と当該第1のデータに対して所定の処理を処理装置で実行したときの当該所定の処理に係る処理性能との関係を用いて、第2のデータの属性に対する前記所定の処理に係る処理性能を予測し、
    前記予測された処理性能をもとに、複数の前記処理装置の内、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置を選定する、
    処理を実行させるプログラムであって、
    前記所定の処理に係る処理性能を予測する場合、前記処理性能として、前記所定の処理に係る処理時間を予測し、
    前記所定の処理を実行すべき前記処理装置を選定する場合、前記予測された処理時間をもとに、前記所定の処理が終了すべき時刻までに終了するように、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置、及び、前記所定の処理を開始すべき時刻を決定し、
    さらに、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置における他のデータに対する前記所定の処理の状況、及び、前記予測された処理時間をもとに、前記第2のデータに対する前記所定の処理を開始する前に、当該所定の処理が前記終了すべき時刻までに終了できるかどうかを判定し、終了できない場合、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置、及び、前記所定の処理を開始すべき時刻を再決定する、
    処理を実行させるプログラム。
  9. 前記所定の処理に係る処理性能を予測する場合、前記処理性能として、前記所定の処理に係る処理時間とリソース量とを予測し、
    前記所定の処理を実行すべき前記処理装置を選定する場合、前記予測された処理時間とリソース量とをもとに、前記所定の処理が終了すべき時刻までに終了し、かつ、前記所定の処理を開始してから終了するまでの間に、前記予測されたリソース量が前記処理装置で利用可能なリソース量以下となるように、前記第2のデータに対する前記所定の処理を実行すべき前記処理装置、及び、前記所定の処理を開始すべき時刻を決定する、
    処理を実行させる、請求項に記載のプログラム。
JP2015190598A 2015-09-29 2015-09-29 情報処理装置、情報処理方法、及び、プログラム Expired - Fee Related JP6613763B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015190598A JP6613763B2 (ja) 2015-09-29 2015-09-29 情報処理装置、情報処理方法、及び、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015190598A JP6613763B2 (ja) 2015-09-29 2015-09-29 情報処理装置、情報処理方法、及び、プログラム

Publications (2)

Publication Number Publication Date
JP2017068393A JP2017068393A (ja) 2017-04-06
JP6613763B2 true JP6613763B2 (ja) 2019-12-04

Family

ID=58494782

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015190598A Expired - Fee Related JP6613763B2 (ja) 2015-09-29 2015-09-29 情報処理装置、情報処理方法、及び、プログラム

Country Status (1)

Country Link
JP (1) JP6613763B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102346109B1 (ko) * 2017-07-31 2022-01-03 한국전자통신연구원 부하분산 장치 및 방법
US20190362016A1 (en) * 2018-05-25 2019-11-28 Salesforce.Com, Inc. Frequent pattern analysis for distributed systems
CN113365557B (zh) 2019-01-30 2024-05-14 富士胶片株式会社 医用图像分析装置、方法及计算机可读存储介质
JP7279401B2 (ja) * 2019-02-21 2023-05-23 日本電気株式会社 アプリケーション実行装置、方法及びプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249491A (ja) * 2006-03-15 2007-09-27 Fujitsu Ltd マルチサーバ環境においてバッチジョブを分散させるプログラム、装置、および方法
JP5867238B2 (ja) * 2012-03-30 2016-02-24 富士通株式会社 オートスケーリング方法,オートスケーリングプログラムおよびコンピュータノード

Also Published As

Publication number Publication date
JP2017068393A (ja) 2017-04-06

Similar Documents

Publication Publication Date Title
CN110597626B (zh) 在分布式系统中资源及任务的分配方法、装置及系统
US10977077B2 (en) Computing node job assignment for distribution of scheduling operations
JP6613763B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
JP5454135B2 (ja) 仮想マシン移動制御装置、仮想マシン移動制御方法および仮想マシン移動制御プログラム
CN109254842B (zh) 分布式流式系统的资源管理方法、装置及可读存储介质
US8572621B2 (en) Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria
Hieu et al. Virtual machine consolidation with usage prediction for energy-efficient cloud data centers
JP2006285316A (ja) サーバ性能計測方法及びサーバ性能計測システム並びにこれらに用いるコンピュータプログラム
US20170161117A1 (en) Apparatus and method to determine a service to be scaled out based on a predicted virtual-machine load and service importance
US20170031354A1 (en) Methods, systems, and apparatus for resource allocation in a manufacturing environment
JP7003874B2 (ja) リソース予約管理装置、リソース予約管理方法およびリソース予約管理プログラム
KR101471749B1 (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
CN104199739A (zh) 一种基于负载均衡的推测式Hadoop调度方法
JP2017211788A (ja) 情報処理装置、ジョブ投入方法、およびジョブ投入プログラム
JP2015152984A (ja) 仮想マシン配置装置及び方法及びプログラム
JP2016115065A (ja) 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム
JP2006344068A5 (ja)
WO2018235739A1 (ja) 情報処理システムおよびリソース割り当て方法
JP5540269B2 (ja) データ負荷分散配置システムおよびデータ負荷分散配置方法
US9195515B1 (en) Method and system for process load balancing
JP5321195B2 (ja) 監視制御システム、監視制御方法、監視制御サーバ及び監視制御プログラム
JP4760875B2 (ja) 負荷制御システム
Wang et al. Remediating overload in over-subscribed computing environments
JP2014219859A (ja) 分散処理システムおよび分散処理方法
KR102316749B1 (ko) 가상 머신 워크로드 예측 방법, 가상 머신 배치 방법 및 이를 구현하는 가상 머신 배치 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190711

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191021

R150 Certificate of patent or registration of utility model

Ref document number: 6613763

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees