JP2020126498A - サーバシステム及びサーバ資源割り当てプログラム - Google Patents

サーバシステム及びサーバ資源割り当てプログラム Download PDF

Info

Publication number
JP2020126498A
JP2020126498A JP2019019208A JP2019019208A JP2020126498A JP 2020126498 A JP2020126498 A JP 2020126498A JP 2019019208 A JP2019019208 A JP 2019019208A JP 2019019208 A JP2019019208 A JP 2019019208A JP 2020126498 A JP2020126498 A JP 2020126498A
Authority
JP
Japan
Prior art keywords
scale
processing
processes
processing number
management device
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.)
Pending
Application number
JP2019019208A
Other languages
English (en)
Inventor
健一郎 下川
Kenichiro Shimokawa
健一郎 下川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019019208A priority Critical patent/JP2020126498A/ja
Publication of JP2020126498A publication Critical patent/JP2020126498A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】スケールアウトとスケールアップの最適な選択を行うこと。【解決手段】管理装置3は、集計テーブル30と、スケールアップ処理部33と、スケールアウト処理部34と、選択部38とを有する。選択部38は、集計テーブル30に基づいて、現状のスケール回数に1を加えた回数のスケールアウトの処理数とスケールアップの処理数を比較し、処理数が多い増強方法を選択する。そして、選択部38は、スケールアウトを選択すると、スケールアウト処理部34にスケールアウトを指示し、スケールアップを選択すると、スケールアップ処理部33にスケールアップを指示する。【選択図】図7

Description

本発明は、サーバシステム及びサーバ資源割り当てプログラムに関する。
クラウドシステム等の仮想化環境において、VM(Virtual Machine:仮想マシン)の処理能力が不足すると、スケールアウト又はスケールアップが行われる。ここで、VMは、仮想的なコンピュータである。また、スケールアウトはVMを追加することであり、スケールアップはCPU(Central Processing Unit)、メインメモリ等のVMのリソースを追加することである。
一方、VMの処理負荷が低下すると、スケールイン又はスケールダウンが行われる。ここで、スケールインはVMを削除することであり、スケールダウンはVMのリソースを削除することである。
図20は、スケールアウトとスケールインを説明するための図である。図20において、VMホスト#91及びVMホスト#92で表されるVMホスト91は、VM92が稼働する物理マシンであり、管理装置9は、VMホスト91で稼働するVM92を管理する装置である。
図20に示すように、管理装置9は、VM92から処理量を取り出す(t81)。ここで、処理量には、例えば、VM2が受け取ったリクエスト数と処理数と処理の滞留の有無を示す滞留ありフラグとが含まれる。そして、スケールアウトでは、管理装置9は、滞留ありフラグに基づいて処理数が限界か判断し(t82)、処理数が限界の場合はVM92を追加する(t83)。図20では、VMホスト#91で稼働するVM92が1台追加される。
一方、スケールインでは、管理装置9は、VM92から処理量を取り出し(t84)、例えば、処理数が所定の閾値より小さいか判断し(t85)、所定の閾値より小さい場合、VM92を削除する(t86)。図20では、VMホスト#92で稼働するVM92が1台削除される。
図21は、スケールアップとスケールダウンを説明するための図である。図21に示すように、スケールアップでは、管理装置9は、VM92から処理量を取り出し(t91)、処理数が限界か判断し(t92)、処理数が限界の場合はリソースを追加する(t93)。図21では、VMホスト#91で稼働するVM92の1台にリソースが追加される。
一方、スケールダウンでは、管理装置9は、VM92から処理量を取り出し(t94)、処理数が所定の閾値より小さいか判断し(t95)、所定の閾値より小さい場合、リソースを削除する(t96)。図21では、VMホスト#91で稼働するVM92の1台から一部のリソースが削除される。
なお、仮想サーバが所属する仮想サーバ群にスケールアウト方式又はスケールアップ方式のいずれが採用されているかに基づいて、スケールアウト又はスケールアップを動的に行う従来技術がある。
また、クライアントが、サービスが提供される際のサービス品質を示す品質情報を測定し、測定した品質情報を管理サーバに送信し、管理サーバは、送信された品質情報に基づいて、クライアントへのサービスの提供に適するサーバを選択する従来技術がある。
また、負荷テスト中のVMの稼働状況を解析し、性能が不足している場合にスケールアウトとスケールアップのいずれか一方又は両方をユーザに提示することで、最適化されたVMを提供する従来技術がある。
特開2010−33292号公報 特開2012−22555号公報 特開2018−26059号公報
VMの処理能力が不足した場合、スケールアウトとスケールアップのいずれかを適切に選択することは困難であるという問題がある。一般に、Webサーバにはスケールアウトが適し、DBサーバにはスケールアップが適すると言われている。しかしながら、スケールアウトとスケールアップのいずれが適するかはVMの業務内容等に依存するため、適切な選択は困難である。
本発明は、1つの側面では、スケールアウトとスケールアップの最適な選択を行うことを目的とする。
1つの態様では、サーバシステムは、仮想マシンが動作するサーバと該仮想マシンを管理する管理装置とを有する。前記管理装置は、集計情報記憶部と増強部とを有する。前記集計情報記憶部は、スケールアップしたときの限界の処理数を示す第1処理数とスケールアウトしたときの限界の処理数を示す第2処理数を記憶する。前記増強部は、前記仮想マシンの処理に滞留がある場合、前記集計情報記憶部が記憶する前記第1処理数と前記第2処理数を比較し、前記第1処理数が大きい場合には、スケールアップを行い、前記第2処理数が大きい場合には、スケールアウトを行う。
1つの側面では、本発明は、スケールアウトとスケールアップの最適な選択を行うことができる。
図1は、実施例1に係る管理装置によるスケールアウトとスケールアップの選択方法を説明するための第1の図である。 図2は、実施例1に係る管理装置によるスケールアウトとスケールアップの選択方法を説明するための第2の図である。 図3は、実施例1に係る管理装置によるスケールアウトとスケールアップの選択方法を説明するための第3の図である。 図4は、実施例1に係る管理装置によるスケールアウトとスケールアップの選択方法を説明するための第4の図である。 図5は、増強の回数毎の特定結果の一例を示す図である。 図6は、図5に示した特定結果をツリーによって表した図である。 図7は、VM及び管理装置の機能構成を示す図である。 図8は、処理量テーブルの一例を示す図である。 図9は、集計テーブルの一例を示す図である。 図10は、VMによる処理量テーブルの更新処理のフローを示すフローチャートである。 図11は、管理装置による増強縮小処理のフローを示すフローチャートである。 図12は、集計テーブル更新処理のフローを示すフローチャートである。 図13は、低負荷時処理のフローを示すフローチャートである。 図14Aは、集計テーブルのリセット範囲を説明するための第1の図である。 図14Bは、集計テーブルのリセット範囲を説明するための第2の図である。 図15は、実施例2に係る管理装置の機能構成を示す図である。 図16は、実施例2に係る集計テーブルの一例を示す図である。 図17は、リセット処理のフローを示すフローチャートである。 図18は、経過時間を更新する処理のフローを示すフローチャートである。 図19は、実施例に係る管理プログラムを実行するコンピュータのハードウェア構成を示す図である。 図20は、スケールアウトとスケールインを説明するための図である。 図21は、スケールアップとスケールダウンを説明するための図である。
以下に、本願の開示するサーバシステム及びサーバ資源割り当てプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例1に係る管理装置によるスケールアウトとスケールアップの選択方法について図1〜図6を用いて説明する。図1〜図4は、実施例1に係る管理装置によるスケールアウトとスケールアップの選択方法を説明するための図である。図1〜図4において、実施例1に係るサーバシステム10は、VMホスト#1及びVMホスト#2で表される2台のVMホスト1と管理装置3とを有する。VMホスト1は、VM2が稼働するサーバ(物理マシン)であり、管理装置3は、VMホスト1で稼働するVM2を管理する装置である。なお、サーバシステム10は、1台又は3台以上のVMホスト1を有してもよい。
図1(a)に示すように、管理装置3は、負荷が増加すると、例えば、スケールアウトを試行する。具体的には、管理装置3は、処理数が限界か判断し(t1)、限界の場合、スケールアウトを実施する(t2)。図1(a)では、VMホスト#2で表されるVMホスト1にVM2が追加される。
その後、管理装置3は、負荷がさらに増加すると、処理数が限界か判断し(t3)、限界の場合、限界の処理数を記録する(t4)。すなわち、管理装置3は、スケールアウト実施後に処理数が限界になったときの処理数を記録することで、スケールアウトした場合の処理数を特定する。
その後、負荷が低下すると、管理装置3は、図1(b)に示すように、スケールインを行う。具体的には、管理装置3は、VMホスト#2のVM2の処理数が小さいか判断し(t5)、小さい場合、VMホスト#2からVM2を削除する(t6)。
そして、次に負荷が増加すると、管理装置3は、図2(c)に示すように、スケールアップを試行する。具体的には、管理装置3は、処理数が限界か判断し(t7)、限界の場合、スケールアップを実施する(t8)。図2(c)では、VMホスト#1で表されるVMホスト1のVM2にリソースが追加される。
その後、管理装置3は、負荷がさらに増加すると、処理数が限界か判断し(t9)、限界の場合、限界の処理数を記録する(t10)。すなわち、管理装置3は、スケールアップ実施後に処理数が限界になったときの処理数を記録することで、スケールアップした場合の処理数を特定する。
その後、負荷が低下すると、管理装置3は、図2(d)に示すように、スケールダウンを行う。具体的には、管理装置3は、VMホスト#1のVM2の処理数が小さいか判断し(t11)、小さい場合、VMホスト#1のVM2からリソースを削除する(t12)。
そして、次に負荷が増加すると、管理装置3は、図3(e)に示すように、履歴からスケールアウトを選択する。ここで、履歴とは、スケールアウトした場合にt4で記録された処理数とスケールアップをした場合にt10で記録された処理数である。スケールアウトをした場合の処理数がスケールアップをした場合の処理数より大きい場合には、スケールアウトが選択され、スケールアップをした場合の処理数がスケールアウトをした場合の処理数より大きい場合には、スケールアップが選択される。ここでは、スケールアウトをした場合の処理数がスケールアップをした場合の処理数より大きいと仮定し、管理装置3は、スケールアウトを選択する。具体的には、管理装置3は、処理数が限界か判断し(t13)、限界の場合、履歴に基づきスケールアップを実施する(t14)。
このように、管理装置3は、スケールアウトとスケールアップを行った際の限界の処理数を履歴として記録し、その後負荷が増加した場合に、履歴に基づいて、スケールアウトとスケールアップのいずれかを選択する。
また、1回目のスケールアウト又はスケールアップの実行後、さらに負荷が増加すると、管理装置3は、2回目のスケールアウトとスケールアップを試行し、試行後に処理数が限界になったときの処理数を記録する。
具体的には、管理装置3は、図4(f)に示すように、処理数が限界か判断し(t15)、限界の場合、2回目の増強としてスケールアウトを実施する(t16)。その後、管理装置3は、負荷がさらに増加すると、処理数が限界か判断し(t17)、限界の場合、限界の処理数を記録する(t18)。
その後、負荷が低下し、スケールダウンを行った後、負荷が増加すると、管理装置3は、図4(g)に示すように、処理数が限界か判断し(t19)、限界の場合、2回目の増強としてスケールアップを実施する(t20)。その後、管理装置3は、負荷がさらに増加すると、処理数が限界か判断し(t21)、限界の場合、限界の処理数を記録する(t22)。
そして、管理装置3は、t18で記録した処理数がt22で記録した処理数より大きい場合には、2回目の増強としてスケールアウトを選択し、t22で記録した処理数がt18で記録した処理数より大きい場合には、2回目の増強としてスケールアップを選択する。
このように、管理装置3は、1回目〜n回目の増強を行い、増強後の限界の処理数を記録し、スケールアウト実施後の処理数とスケールアップ実施後の処理数を比較してスケールアウトとスケールアップのいずれを選択するかを増強の回数毎に特定する。ここで、nは2以上の整数である。なお、各回における処理数は、負荷の変動に伴ってVM2の増強と縮小を繰り返す過程で記録されるため、記録される順番は、負荷の変動に依存する。
図5は、増強の回数毎の特定結果の一例を示す図である。図5において、「out」はスケールアウトを示し、「up」はスケールアップを示す。図5に示すように、1回目の増強では、スケールアウトの処理数が「8000」であり、スケールアップの処理数が「9000」である。このため、管理装置3は、1回目の増強ではスケールアップを行うと判定する。
また、2回目の増強では、スケールアウトの処理数が「16000」であり、スケールアップの処理数が「15000」である。このため、管理装置3は、2回目の増強ではスケールアウトを行うと判定する。同様に、管理装置3は、3回目の増強ではスケールアウトを行うと判定し、4回目の増強ではスケールアップを行うと判定する。図5では、○が判定により選択された増強方法を示す。
図6は、図5に示した特定結果をツリーによって表した図である。実線は試行の結果選択されたルートを表し、破線は選択されなかったルートを表し、点線は最適ではないので試行されていないルートを表す。
このように、管理装置3は、増強後の限界の処理数に基づいて増強回数毎にスケールアウト又はスケールアップを選択するので、最適な選択を行うことができる。
次に、VM2及び管理装置3の機能構成について説明する。図7は、VM2及び管理装置3の機能構成を示す図である。図7に示すように、VM2は、処理量テーブル20と、リクエスト処理部21と、リクエスト数集計部22と、処理数集計部23と、処理滞留判断部24とを有する。管理装置3は、集計テーブル30と、VM処理量取得部31と、集計テーブル更新部32と、スケールアップ処理部33と、スケールアウト処理部34と、低負荷時処理部35と、スケールダウン処理部36と、スケールイン処理部37と、選択部38とを有する。
処理量テーブル20は、処理量に関する情報を記憶するテーブルである。図8は、処理量テーブル20の一例を示す図である。図8に示すように、処理量テーブル20には、リクエスト数と、処理数と、滞留ありフラグとが含まれる。
リクエスト数は、VM2が受信したリクエストの数である。処理数は、VM2が処理したリクエストの数である。リクエスト数及び処理数は、例えば、1分毎の集計数である。滞留ありフラグは、リクエストの処理に滞留がある(yes)か否(no)かを示すフラグである。例えば、リクエスト数が処理数より多い場合に、滞留ありフラグに「yes」が設定される。
リクエスト処理部21は、リクエストを処理する。リクエストは、例えば、ネットワークを介してクライアント装置から送信される。リクエスト数集計部22は、VM2が受信したリクエストの数を集計し、処理量テーブル20に格納する。処理数集計部23は、リクエスト処理部21が処理したリクエストの数を集計し、処理量テーブル20に格納する。処理滞留判断部24は、リクエスト数と処理数に基づいて処理が滞留しているか否かを判断し、判断結果を処理量テーブル20に格納する。
集計テーブル30は、現在のユーザ毎の増強状態ととともに、スケールアウト及びスケールアップを行った後の限界の処理数を示す限界処理数をユーザ毎増強回数毎に記憶するテーブルである。図9は、集計テーブル30の一例を示す図である。図9に示すように、集計テーブル30は、ユーザ名と、スケールアウトフラグと、スケール回数と、スケール種別と、リクエスト数と、処理数とを記憶する。
ユーザ名は、VM2のユーザを識別する名前である。スケールアウトフラグは、増強後の限界処理数が同じである場合にスケールアウトを優先する(yes)か否(no)かを示すフラグである。スケールアウトフラグは、VM2が処理を行う業務の特性に応じてユーザにより指定される。ユーザは、例えば、業務停止をできるだけ回避したい場合には、スケールアウトを指定し、ある程度の時間停止しても影響が少ない業務の場合には、スケールアップを指定する。
スケール回数は、増強を行った回数である。スケール回数の初期値は「0」である。スケール種別は、「out」又は「up」である。
リクエスト数は、スケールアウト又はスケールアップを行った後の限界のリクエスト数を示す限界リクエスト数である。処理数は、スケールアウト又はスケールアップを行った後の限界処理数である。リクエスト数及び処理数の初期値は「0」である。
例えば、ユーザ名が「user01」であるユーザのVM2については、スケールアウト優先ではなく、現在の増強回数は「2」であり、2回目の増強としてスケールアップが行われた状態にある。また、1回目の増強につてはスケールアウトが有効であり、2回目の増強につてはスケールアップが有効であり、3回目の増強についてはスケールアウトが未試行のため、スケールアウトとスケールアップのいずれが有効かが特定されていない。
図7に戻って、VM処理量取得部31は、VM2から処理量テーブル20の情報を取得する。集計テーブル更新部32は、VM処理量取得部31により取得された処理量テーブル20の滞留ありフラグが「yes」の場合に、集計テーブル30を更新する。スケールアップ処理部33は、スケールアップを実行する。スケールアウト処理部34は、スケールアウトを実行する。
低負荷時処理部35は、VM2の処理が滞留していない場合に、VM2の縮小が可能か否かを判定し、縮小可能である場合に、スケール状態に基づいてスケールイン又はスケールダウンを行う。ここで、スケール状態は、集計テーブル30の現在の状態のスケール種別である。
また、VM2の縮小が可能か否かを、低負荷時処理部35は、(今回のリクエスト数)/(限界処理数)が(スケール回数)/(スケール回数+1)より小さいか否かに基づいて判定する。スケール回数が1の場合には、(スケール回数)/(スケール回数+1)=1/2であり、スケール回数が2の場合には、(スケール回数)/(スケール回数+1)=2/3である。スケール回数が3の場合には、(スケール回数)/(スケール回数+1)=3/4である。
スケールダウン処理部36は、スケールダウンを実行する。スケールイン処理部37はスケールインを実行する。
選択部38は、集計テーブル30に基づいてスケールアウトかスケールアップかを選択する。具体的には、選択部38は、現状のスケール回数に1を加えた回数のスケールアウトの処理数とスケールアップの処理数を比較し、処理数が多い増強方法を選択する。
処理数が等しい場合には、選択部38は、スケールアウトフラグが「yes」であればスケールアウトを選択し、スケールアウトフラグが「no」であればスケールアップを選択する。
選択部38は、スケールアウトを選択した場合には、スケールアウト処理部34にスケールアウトを指示し、スケールアップを選択した場合には、スケールアップ処理部33にスケールアップを指示する。
次に、VM2による処理量テーブル20の更新処理のフローについて説明する。図10は、VM2による処理量テーブル20の更新処理のフローを示すフローチャートである。なお、図10に示す処理は、例えば1分毎等で定期的に実行される。
図10に示すように、VM2は、リクエスト数を集計し(ステップS1)、処理量テーブル20のリクエスト数を更新する。そして、VM2は、処理数を集計し(ステップS2)、処理量テーブル20の処理数を更新する。そして、VM2は、処理の滞留があるか否かを判定し(ステップS3)、ある場合には、処理量テーブル20の滞留ありフラグを「yes」で更新し(ステップS4)、ない場合には、処理量テーブル20の滞留ありフラグを「no」で更新する(ステップS5)。
このように、VM2が定期的に処理量テーブル20を更新するので、管理装置3は、処理量テーブル20の情報を取得することで、VM2の最新の負荷状態を知ることができる。
次に、管理装置3による増強縮小処理のフローについて説明する。ここで、増強縮小処理とは、VM2の負荷が増加した場合にはVM2を増強し、VM2の負荷が低下した場合にはVM2を縮小する処理である。図11は、管理装置3による増強縮小処理のフローを示すフローチャートである。なお、図11に示す処理は、例えば5分毎等で定期的に実行される。
図11に示すように、管理装置3は、VM2から処理量テーブル20の情報を取得し(ステップS11)、取得した情報の滞留ありフラグが「yes」であるか否かを判定する(ステップS12)。そして、取得した情報の滞留ありフラグが「yes」である場合には、管理装置3は、集計テーブル30を更新する集計テーブル更新処理を実行し(ステップS13)、スケール回数に1を加算する(ステップS14)。
そして、管理装置3は、集計テーブル30のスケール回数のupの処理数が「0」であるか否かを判定し(ステップS15)、「0」である場合には、スケールアップを実行し、スケール状態を「up」に設定する(ステップS16)。
一方、集計テーブル30のスケール回数のupの処理数が「0」でない場合には、管理装置3は、集計テーブル30のスケール回数のoutの処理数が「0」であるか否かを判定する(ステップS17)。そして、集計テーブル30のスケール回数のoutの処理数が「0」である場合には、管理装置3は、スケールアウトを実行し、スケール状態を「out」に設定する(ステップS18)。
一方、集計テーブル30のスケール回数のoutの処理数が「0」でない場合には、管理装置3は、upの処理数がoutの処理数より大きいか否かを判定する(ステップS19)。そして、upの処理数がoutの処理数より大きい場合には、管理装置3は、スケールアップを実行し、スケール状態を「up」に設定する(ステップS20)。
一方、upの処理数がoutの処理数より大きくない場合には、管理装置3は、outの処理数がupの処理数より大きいか否かを判定する(ステップS21)。そして、outの処理数がupの処理数より大きい場合には、管理装置3は、スケールアウトを実行し、スケール状態を「out」に設定する(ステップS22)。
一方、outの処理数がupの処理数より大きくない場合には、outの処理数がupの処理数と等しいので、管理装置3は、集計テーブル30のスケールアウトフラグが「yes」であるか否かを判定する(ステップS23)。そして、スケールアウトフラグが「yes」である場合には、管理装置3は、スケールアウトを実行し、スケール状態を「out」に設定する(ステップS24)。
一方、スケールアウトフラグが「yes」でない場合には、管理装置3は、スケールアップを実行し、スケール状態を「up」に設定する(ステップS25)。
また、ステップS12において、滞留ありフラグが「yes」でない場合には、管理装置3は、低負荷であるか否かを判定して低負荷である場合にVM2を縮小する低負荷時処理を実行する(ステップS26)。
このように、管理装置3は、VM2から取得した情報に基づいてVM2の増強及び縮小を行うので、VM2の負荷変動に対応することができる。
図12は、集計テーブル更新処理のフローを示すフローチャートである。図12に示すように、集計テーブル更新部32は、スケール回数が「0」か否かを判定し(ステップS31)、「0」である場合には、処理を終了する。
一方、スケール回数が「0」でない場合には、集計テーブル更新部32は、スケール状態は「up」か否かを判定する(ステップS32)。そして、「up」の場合には、集計テーブル更新部32は、集計テーブル30内のupのリクエスト数と処理数を処理量テーブル20の情報で更新する(ステップS33)。一方、「up」でない場合には、集計テーブル更新部32は、集計テーブル30内のoutのリクエスト数と処理数を処理量テーブル20の情報で更新する(ステップS34)。
このように、集計テーブル更新部32が集計テーブル30のupとoutのリクエスト数と処理数を更新することで、選択部38は、集計テーブル30に基づいてスケールアウトかスケールアップかを選択することができる。
図13は、低負荷時処理のフローを示すフローチャートである。図13に示すように、低負荷時処理部35は、集計テーブル30の現スケール回数は「1」以上であるか否かを判定する(ステップS41)。すなわち、低負荷時処理部35は、スケールアップ又はスケールアウトをしている状態であるか否かを判定する。そして、集計テーブル30の現スケール回数は「1」以上でない場合には、低負荷時処理部35は、処理を終了する。
一方、集計テーブル30の現スケール回数が「1」以上である場合には、低負荷時処理部35は、限界処理数が格納済であるか否かを判定し(ステップS42)、格納済でない場合には、低負荷時処理部35は、処理を終了する。
一方、限界処理数が格納済である場合には、低負荷時処理部35は、今回のリクエスト数が限界処理数×(スケール回数)/(スケール回数+1)より小さいか否かを判定し(ステップS43)、小さくない場合には、処理を終了する。
一方、今回のリクエスト数が限界処理数×(スケール回数)/(スケール回数+1)より小さい場合には、低負荷時処理部35は、スケール状態が「up」であるか否かを判定する(ステップS44)。そして、スケール状態が「up」である場合には、低負荷時処理部35は、スケールダウン処理部36に指示してスケールダウン処理を実施する(ステップS45)。一方、スケール状態が「up」である場合には、低負荷時処理部35は、スケールイン処理部37に指示してスケールイン処理を実施する(ステップS46)。
そして、低負荷時処理部35は、スケール回数から1を減算し(ステップS47)、スケール回数が「0」であるか否かを判定する(ステップS48)。そして、スケール回数が「0」である場合には、低負荷時処理部35は、スケール状態を「0」とし(ステップS49)、スケール回数が「0」でない場合には、スケール状態をスケール回数のスケール種別とする(ステップS50)。ここで、スケール回数のスケール種別とは、集計テーブル30のスケール回数の処理数が大きい方のスケール種別であり、2つの処理数が等しい場合には、スケールアウトフラグにより決定されるスケール種別である。
このように、低負荷時処理部35が処理数の減少にともなってスケールダウン又はスケールインを行うことで、VM2及びリソースの無駄な使用を防ぐことができる。
上述してきたように、実施例1では、選択部38は、集計テーブル30に基づいて、現状のスケール回数に1を加えた回数のスケールアウトの処理数とスケールアップの処理数を比較し、処理数が多い増強方法を選択する。また、処理数が等しい場合には、選択部38は、スケールアウトフラグが「yes」であればスケールアウトを選択し、スケールアウトフラグが「no」であればスケールアップを選択する。したがって、管理装置3は、スケールアウトとスケールアップの最適な選択を行うことができる。
また、実施例1では、管理装置3は、VM2の処理が滞留し、集計テーブル30のスケール回数のupの処理数が「0」である場合には、スケールアップを実行する。そして、管理装置3は、次にVM2の処理が滞留した際の処理数を、集計テーブル30のスケール回数のupの処理数として格納する。また、管理装置3は、VM2の処理が滞留し、集計テーブル30のスケール回数のoutの処理数が「0」である場合には、スケールアウトを実行する。そして、管理装置3は、次にVM2の処理が滞留した際の処理数を、集計テーブル30のスケール回数のアウトの処理数として格納する。したがって、管理装置3は、集計テーブル30を作成することができる。
また、実施例1では、管理装置3は、実際の負荷変動に応じてスケールアップ、スケールダウン、スケールアウト及びスケールインを行いながら集計テーブル30を作成するので、正確な集計テーブル30を作成することができる。
ところで、業務内容の変更等により、集計テーブルの処理数の更新が必要になる場合がある。そこで、実施例2では、集計テーブルをリセットする管理装置について説明する。ただし、集計テーブルを全てリセットすると、集計テーブルの再作成に時間がかかる。このため、実施例2に係る管理装置は、VM2の増強状態の経過時間に応じてリセット範囲を特定し、特定したリセット範囲で集計テーブルをリセットする。なお、集計テーブルをリセットするとは、集計テーブルのリクエスト数と処理数を0にすることである。
図14A及び図14Bは、集計テーブルのリセット範囲を説明するための図である。図14Aでは、3回目の増強が行われた増強状態と4回目の増強が行われた増強状態でVM2の増強状態が遷移している。このような増強状態の場合、実施例2に係る管理装置は、集計テーブルの4回目の増強の部分だけをリセットする。実施例2に係る管理装置は、一時的にVM2の増強状態が他の増強状態に変わっても、他の増強状態の経過時間が短い場合には、集計テーブルの4回目の部分だけをリセットする。
一方、図14Bでは、過去に4回目までの増強が行われたが、現在は増強なしの増強状態と1回目の増強が行われた増強状態でVM2の増強状態が遷移している。このような増強状態の場合、実施例2に係る管理装置は、集計テーブルを全てリセットする。
図15は、実施例2に係る管理装置の機能構成を示す図である。なお、ここでは説明の便宜上、図7に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。図15に示すように、実施例2に係る管理装置3aは、図7に示した管理装置3と比較して、集計テーブル30の代わりに集計テーブル30aを有し、新たにリセット部39と経過時間更新部40とを有する。
集計テーブル30aは、集計テーブル30が記憶する情報と比較して、新たに増強状態の経過時間を記憶する。図16は、実施例2に係る集計テーブル30aの一例を示す図である。図16に示すように、集計テーブル30aには、集計テーブル30が記憶する情報に経過時間が追加される。
例えば、ユーザ名が「user01」であるユーザは、1回目の増強が行われてから216時間(24h×9day)、2回目の増強が行われてから168時間(24h×7day)、3回目の増強が行われてから120時間(24h×5day)経過している。
また、ユーザ名が「user02」であるユーザは、1回目の増強が行われてから168時間(24h×7day)経過し、2回目の増強が行われてから96時間(24h×4day)経過し、3回目の増強は行われていない。
リセット部39は、集計テーブル30aの経過時間に基づいて、リセット範囲を特定し、特定したリセット範囲で集計テーブル30aをリセットする。リセット部39は、スケール回数について、履歴の最大回数から経過時間が所定の閾値未満でない最大の回数までをリセット範囲として特定する。ここで、履歴の最大回数とは、集計テーブル30aのup及びoutの処理数が0でない最大のスケール回数である。リセット部39は、例えば1週間毎等で全てのユーザについて定期的に実行される。
例えば、図16に示した「user01」の場合、履歴の最大回数は3であり、所定の閾値を1時間とすると、経過時間が1時間未満でない最大の回数は3であるので、スケール回数の3がリセット範囲である。また、「user02」の場合、履歴の最大回数は3であり、経過時間が1時間未満でない最大の回数は2であるので、スケール回数が3と2をリセット範囲とする。
経過時間更新部40は、例えば5分毎に起動され、全てのユーザについて、現在のスケール回数以下のスケール回数の経過時間に5分を加算する。経過時間更新部40は、正の整数mについてm分毎に起動された場合には、m分を加算する。
図17は、リセット処理のフローを示すフローチャートである。図17に示すように、リセット部39は、履歴の最大回数を現在回数とし、現在回数の経過時間を集計テーブル30aから取り出し(ステップS61)、経過時間は所定の閾値未満か否かを判定する(ステップS62)。
そして、経過時間が所定の閾値未満である場合には、リセット部39は、現在回数の範囲をリセットする(ステップS63)。ここで、現在回数の範囲とは、集計テーブル30aのスケール回数が現在回数であるリクエスト数と処理数である。そして、リセット部39は、次に小さいスケール回数はあるか否かを判定し(ステップS64)、ある場合には、現在回数から1を減算し、現在回数の経過時間を集計テーブル30aから取り出す(ステップS65)。そして、リセット部39は、ステップS62へ戻る。
一方、次に小さいスケール回数がない場合には、全スケール回数の経過時間をリセットする(ステップS66)。また、ステップS62において、経過時間が所定の閾値未満でない場合には、現在回数の範囲をリセットし(ステップS67)、全スケール回数の経過時間をリセットする(ステップS66)。
このように、リセット部39は、履歴の最大回数から経過時間が所定の閾値未満でない最大の回数までのリセット回数の範囲をリセットするので、管理装置3aは、業務内容の変更等に効率よく対応することができる。
図18は、経過時間を更新する処理のフローを示すフローチャートである。なお、図18は、5分毎に実行された場合を示す。図18に示すように、経過時間更新部40は、現在のスケール回数を取り出し(ステップS71)、スケール回数以下の経過時間に5分を加算する(ステップS72)。そして、経過時間更新部40は、次のユーザ名の値があるか否かを判定し(ステップS73)、ある場合には、ステップS71に戻り、なお場合には、処理を終了する。
このように、経過時間更新部40が経過時間を更新するので、リセット部39は、経過時間に基づいて集計テーブル30aのリセットを行うことができる。
上述してきたように、実施例2では、経過時間更新部40が経過時間を更新し、リセット部39が経過時間に基づいてリセット範囲と特定し、特定したリセット範囲で集計テーブル30aをリセットする。したがって、管理装置3aは、業務内容の変更等に効率よく対応することができる。
なお、実施例では、管理装置3及び3aについて説明したが、管理装置3及び3aが有する構成をソフトウェアによって実現することで、同様の機能を有する管理プログラムをサーバ資源割り当てプログラムとして得ることができる。そこで、管理プログラムを実行するコンピュータについて説明する。
図19は、実施例に係る管理プログラムを実行するコンピュータのハードウェア構成を示す図である。図19に示すように、コンピュータ50は、メインメモリ51と、CPU52と、LAN(Local Area Network)インタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
メインメモリ51は、プログラムやプログラムの実行途中結果等を記憶するメモリである。CPU52は、メインメモリ51からプログラムを読み出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボード等の入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVDの読み書きを行う装置である。
LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
そして、コンピュータ50において実行される管理プログラムは、コンピュータ50により読み出し可能な記録媒体の一例であるDVDに記憶され、ODD57によってDVDから読み出されてコンピュータ50にインストールされる。あるいは、管理プログラムは、LANインタフェース53を介して接続された他のコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されてコンピュータ50にインストールされる。そして、インストールされた管理プログラムは、HDD54に記憶され、メインメモリ51に読み出されてCPU52によって実行される。
1,91 VMホスト
2,92 VM
3,3a,9 管理装置
10 サーバシステム
20 処理量テーブル
21 リクエスト処理部
22 リクエスト数集計部
23 処理数集計部
24 処理滞留判断部
30,30a 集計テーブル
31 VM処理量取得部
32 集計テーブル更新部
33 スケールアップ処理部
34 スケールアウト処理部
35 低負荷時処理部
36 スケールダウン処理部
37 スケールイン処理部
38 選択部
39 リセット部
40 経過時間更新部
50 コンピュータ
51 メインメモリ
52 CPU
53 LANインタフェース
54 HDD
55 スーパーIO
56 DVI
57 ODD

Claims (7)

  1. 仮想マシンが動作するサーバと該仮想マシンを管理する管理装置とを有するサーバシステムにおいて、
    前記管理装置は、
    スケールアップしたときの限界の処理数を示す第1処理数とスケールアウトしたときの限界の処理数を示す第2処理数を記憶する集計情報記憶部と、
    前記仮想マシンの処理に滞留がある場合、前記集計情報記憶部が記憶する前記第1処理数と前記第2処理数を比較し、前記第1処理数が大きい場合には、スケールアップを行い、前記第2処理数が大きい場合には、スケールアウトを行う増強部と
    を有することを特徴とするサーバシステム。
  2. 前記増強部は、前記第1処理数と前記第2処理数が等しい場合には、スケールアウトとスケールアップのうち前記仮想マシンのユーザにより指定された方で増強を行うことを特徴とする請求項1に記載のサーバシステム。
  3. 前記仮想マシンの処理に滞留があって前記第1処理数が未測定であることを示す値である場合にスケールアップの実行により計測された前記第1処理数と、前記仮想マシンの処理に滞留があって前記第2処理数が未測定であることを示す値である場合にスケールアウトの実行により計測された前記第2処理数を、前記集計情報記憶部に格納する格納部をさらに有することを特徴とする請求項1又は2に記載のサーバシステム。
  4. 前記集計情報記憶部は、スケールアップ又はスケールアウトが実行される回数を示すスケール回数に対応付けて前記第1処理数と前記第2処理数を記憶し、
    前記増強部は、スケールアップ又はスケールアウトを実行する回数に基づいて前記集計情報記憶部が記憶する前記第1処理数と前記第2処理数を比較することを特徴とする請求項1、2又は3に記載のサーバシステム。
  5. 前記格納部は、前記仮想マシンの負荷変動に応じて行われたスケールアップ、スケールダウン、スケールアウト及びスケールインの際に計測された前記第1処理数及び前記第2処理数を前記集計情報記憶部に格納することを特徴とする請求項3に記載のサーバシステム。
  6. 前記スケール回数毎の増強状態の経過時間に基づいてリセットの対象とするスケール回数の範囲を特定し、特定した範囲のスケール回数に対応づけられた前記第1処理数と前記第2処理数を未測定であることを示す値にリセットするリセット部をさらに有することを特徴とする請求項4に記載のサーバシステム。
  7. コンピュータに、
    サーバで動作する仮想マシンをスケールアップしたときの限界の処理数を示す第1処理数とスケールアウトしたときの限界の処理数を示す第2処理数を集計情報記憶部に記憶し、
    前記仮想マシンの処理に滞留がある場合、前記集計情報記憶部が記憶する前記第1処理数と前記第2処理数を比較し、前記第1処理数が大きい場合には、スケールアップを行い、前記第2処理数が大きい場合には、スケールアウトを行う
    処理を実行させることを特徴とするサーバ資源割り当てプログラム。
JP2019019208A 2019-02-05 2019-02-05 サーバシステム及びサーバ資源割り当てプログラム Pending JP2020126498A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019019208A JP2020126498A (ja) 2019-02-05 2019-02-05 サーバシステム及びサーバ資源割り当てプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019019208A JP2020126498A (ja) 2019-02-05 2019-02-05 サーバシステム及びサーバ資源割り当てプログラム

Publications (1)

Publication Number Publication Date
JP2020126498A true JP2020126498A (ja) 2020-08-20

Family

ID=72084070

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019019208A Pending JP2020126498A (ja) 2019-02-05 2019-02-05 サーバシステム及びサーバ資源割り当てプログラム

Country Status (1)

Country Link
JP (1) JP2020126498A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7079998B1 (ja) 2021-12-16 2022-06-03 北京穿楊科技有限公司 クラスタの容量拡張方法及び装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015115059A (ja) * 2013-12-13 2015-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation クラウド・コンピューティング環境を動的に変更する方法、情報処理システム、およびコンピュータ・プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015115059A (ja) * 2013-12-13 2015-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation クラウド・コンピューティング環境を動的に変更する方法、情報処理システム、およびコンピュータ・プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7079998B1 (ja) 2021-12-16 2022-06-03 北京穿楊科技有限公司 クラスタの容量拡張方法及び装置
JP2023089891A (ja) * 2021-12-16 2023-06-28 北京穿楊科技有限公司 クラスタの容量拡張方法及び装置

Similar Documents

Publication Publication Date Title
US9998418B2 (en) Intelligent message queue management
WO2019205371A1 (zh) 服务器、消息分配的方法及存储介质
US9513965B1 (en) Data processing system and scheduling method
US20130060834A1 (en) Distributed messaging system connectivity and resource management
US20060161920A1 (en) Method, system, and computer program for managing a queuing system
US11036558B2 (en) Data processing
US8606905B1 (en) Automated determination of system scalability and scalability constraint factors
JP2012181580A (ja) リソース制御装置、リソース制御方法、及びリソース制御プログラム
CN109542352B (zh) 用于存储数据的方法和装置
US10963984B2 (en) Interaction monitoring for virtualized graphics processing
CN111045782A (zh) 日志处理方法、装置、电子设备和计算机可读存储介质
US20180352020A1 (en) Perfect application capacity analysis for elastic capacity management of cloud-based applications
US8407709B2 (en) Method and apparatus for batch scheduling, and computer product
US9135064B2 (en) Fine grained adaptive throttling of background processes
US10936192B2 (en) System and method for event driven storage management
CN112835740A (zh) 用于管理数据备份的方法、电子设备和计算机程序产品
JP2020126498A (ja) サーバシステム及びサーバ資源割り当てプログラム
US11481140B1 (en) Dynamic base disk mirroring for linked clones
CN110688401A (zh) 动态缓存处理方法、装置、存储介质及电子设备
US10740144B2 (en) Controlling asynchronous tasks
CN108920095B (zh) 一种基于crush的数据存储优化方法和装置
JP5891904B2 (ja) 情報処理装置、縮退方法及びプログラム
JP2020154391A (ja) 情報処理システムおよびプログラム
CN107705089B (zh) 业务处理方法、装置及设备
JP6128202B2 (ja) 制御プログラム、制御装置及び制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220927

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230322