JP2015060279A - Scale control server, scale control method, and scale control program - Google Patents
Scale control server, scale control method, and scale control program Download PDFInfo
- Publication number
- JP2015060279A JP2015060279A JP2013191905A JP2013191905A JP2015060279A JP 2015060279 A JP2015060279 A JP 2015060279A JP 2013191905 A JP2013191905 A JP 2013191905A JP 2013191905 A JP2013191905 A JP 2013191905A JP 2015060279 A JP2015060279 A JP 2015060279A
- Authority
- JP
- Japan
- Prior art keywords
- job
- execution
- time
- buffer
- schedule
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、スケール制御サーバ、スケール制御方法、およびスケール制御プログラムに関する。 The present invention relates to a scale control server, a scale control method, and a scale control program.
昨今、クラウドコンピューティングが盛んである。クラウドコンピューティングとは、一般には、ネットワーク、サーバ、ストレージ等の共用可能なコンピューティングリソースにネットワーク経由でアクセスすることを可能とするモデルである。クラウドコンピューティングによって構築されたクラウド規模の拡大や縮小、コンピューティングリソースの起動時間の延長や短縮等を行うことをスケール制御という。 Recently, cloud computing is prosperous. In general, cloud computing is a model that makes it possible to access sharable computing resources such as a network, a server, and a storage via a network. Scale control refers to expanding or reducing the scale of a cloud constructed by cloud computing and extending or shortening the startup time of computing resources.
クラウドを提供するデータセンタ事業者、通信事業者、プロバイダ等の各種の事業者は、クラウドに割り当てられたサーバの利用状況を監視し、その負荷状況に応じてクラウドをスケール制御することで効率よくリソースを運用することがよく行われている。例えば、特許文献1では、負荷に伴う仮想サーバの起動時間の遅延を過去の実績から予測してスケジュールを生成し、そのスケジュールに従って仮想サーバを起動させることにより、遅延のないサービスを顧客に提供する技術が開示されている。
Various operators such as data center operators, telecommunications carriers, providers, etc. that provide the cloud efficiently monitor the usage status of servers assigned to the cloud and scale the cloud according to the load status. It is common to operate resources. For example, in
上述した特許文献1に記載された技術では、仮想サーバの起動時間の遅延を考慮することにより、その時間だけ早めに仮想サーバを起動させ、目標日時までにサービスを提供可能な状態にしている。しかしながら、特許文献1では、仮想サーバが複数存在する場合、各仮想サーバの負荷状況に応じてどのようにスケール制御して効率よくサービスを提供させるかという具体的な手法については開示されていない。
In the technique described in
また、システムの管理者等は、例えば、月次、週次といったサイクリックな処理を実行する場合、処理の実行タイミングや処理予測時間を見積もってスケジューリングし、その情報をジョブとともにクラウドを管理する管理サーバ上に登録し、処理を実行させることがある。通常、その管理者等は、他の仮想サーバでの処理やネットワークの負荷の影響を考慮し、ある程度の時間的なバッファを設けた上で、実行タイミングや処理予測時間を定める。しかし、仮想サーバが実際に受ける負荷によっては、設定したバッファを超えたり、バッファが余りすぎたりする場合が生じ、その結果、スケジュール通りに処理を実行させることができず、仮想サーバの運用コストに無駄が発生してしまう場合がある。 In addition, for example, when performing cyclic processing such as monthly or weekly, the system administrator etc. estimates and schedules the execution timing of the processing and the predicted processing time, and manages the information together with the job to manage the cloud It may register on the server and execute the process. In general, the administrator or the like determines the execution timing and the predicted processing time after providing a buffer for a certain amount of time in consideration of the effect of processing in other virtual servers and the load on the network. However, depending on the load that the virtual server actually receives, the set buffer may be exceeded or the buffer may be too large. As a result, the processing cannot be executed according to the schedule, which increases the operating cost of the virtual server. Waste may occur.
本発明は、上記に鑑みてなされたものであって、負荷状況に応じてシステムをスケール制御し、仮想サーバの運用コストの無駄を減らすことが可能なスケール制御サーバ、スケール制御方法、およびスケール制御プログラムを提供することを目的とする。 The present invention has been made in view of the above, and has a scale control server, a scale control method, and scale control capable of performing scale control of a system according to a load situation and reducing waste of operating costs of a virtual server. The purpose is to provide a program.
上述した課題を解決し、目的を達成するために、本発明にかかるスケール制御サーバは、ジョブを実行する複数のサーバを有したクラウドをスケール制御するスケール制御サーバであって、前記ジョブと、前記ジョブを実行するサーバの台数と、前記ジョブの実行条件とを対応付けて記憶するジョブ管理データベースと、前記ジョブの実行スケジュールと前記ジョブの処理時間の余裕分を示すバッファとを対応付けて記憶するスケジュール管理データベースと、前記ジョブの実行履歴を記憶する処理履歴データベースと、を記憶する記憶部と、前記複数のサーバのそれぞれの負荷状況を監視するリソース監視部と、クライアント端末から前記ジョブの実行要求を受けた場合に、前記ジョブ管理データベースが記憶するそのジョブの実行条件と、前記リソース監視部が監視する負荷状況とに基づいて、そのジョブを実行させる台数分のサーバを決定してそのジョブを実行させ、その実行時間を実行結果として前記処理履歴データベースに記憶させるジョブ管理部と、前記ジョブ管理部が記憶させた前記ジョブの実行時間と、前記スケジュール管理データベースに記憶されている実行スケジュールおよび前記バッファで管理された時間とに基づいて、前記実行スケジュールまたは前記バッファを前記ジョブの実行時間に更新するスケール制御部と、を備えるスケール制御サーバとして構成される。 In order to solve the above-described problems and achieve the object, a scale control server according to the present invention is a scale control server that controls a cloud having a plurality of servers that execute jobs, the job, A job management database that stores the number of servers that execute jobs and the job execution conditions in association with each other, and stores a job execution schedule and a buffer that indicates a margin of processing time for the job in association with each other. A storage unit for storing a schedule management database, a processing history database for storing the job execution history, a resource monitoring unit for monitoring the load status of each of the plurality of servers, and a job execution request from a client terminal When the job is received, the job management database stores the job execution condition and Based on the load status monitored by the resource monitoring unit, a job management unit that determines the number of servers to execute the job, executes the job, and stores the execution time in the processing history database as an execution result And the execution schedule stored in the job management unit, the execution schedule stored in the schedule management database, and the time managed in the buffer. And a scale control server that is updated at the execution time of the scale control server.
また、本発明は、上記スケール制御サーバで行われるスケール制御方法、およびスケール制御プログラムとして構成される。 Further, the present invention is configured as a scale control method and a scale control program performed by the scale control server.
本発明によれば、負荷状況に応じてシステムをスケール制御し、仮想サーバの運用コストの無駄を減らすことが可能となる。 According to the present invention, it is possible to control the scale of a system in accordance with the load status and reduce the waste of operating costs of virtual servers.
以下に添付図面を参照して、本発明にかかるスケール制御サーバ、スケール制御方法、およびスケール制御プログラムの実施の形態を詳細に説明する。 Exemplary embodiments of a scale control server, a scale control method, and a scale control program according to the present invention will be described below in detail with reference to the accompanying drawings.
図1は、本発明にかかるスケール制御サーバ、スケール制御方法、およびスケール制御プログラムの一実施形態であるスケール制御システム1000の構成例を示す図である。図1に示すように、スケール制御システム1000は、スケール制御サーバ100と、クラウド200と、クライアント端末300とを有して構成されている。また、これらの各装置は、一般的な公衆回線網、LAN(Local Area Network)等のネットワークN1、N2によって互いに接続されている。まず、スケール制御サーバ100について説明する。
FIG. 1 is a diagram showing a configuration example of a
図1に示すように、スケール制御サーバ100は、記憶部101と、スケール制御部102と、リソース制御部103と、ジョブ管理部104とを有して構成されている。また、記憶部101は、HDD(Hard Disk Drive)等の記憶装置から構成され、スケジュールDB1011と、ジョブ管理DB1012と、処理履歴DB1013と、キュー管理DB1014と、カレンダーDB1015と、リソース管理DB1016とを有している。
As shown in FIG. 1, the
スケジュールDB1011は、クラウド200を構成する仮想サーバ210が処理を実行するジョブのスケジュールを管理するデータベースである。図2は、スケジュールDB1011の構成例を示す図である。図2に示すように、スケジュールDB1011は、ジョブを識別するためのジョブIDと、そのジョブ名と、そのジョブを実行するサイクルと、そのジョブの開始時刻および終了時刻と、そのジョブの処理遅延等による処理時間の余裕分を示すバッファと、そのジョブに続く後続ジョブを識別するための後続ジョブIDとを対応付けて記憶している。図2では、例えば、ジョブID「D00001」によって識別されるジョブ「日時売上集計」は、デイリー処理であり、22:00に開始され、23:30に終了するようにスケジュールが設定されていることを示している。また、その後続ジョブにはジョブ「S00001」があることを示している。さらに、処理時間のバッファとして30分が設定され、通常の実行条件(後述)であればそのジョブは60分(22:00〜23:00)で終了するところ、30分の余裕をみて、開始時刻および終了時刻が上述した時刻に設定されていることがわかる。スケジュールDB1011は、システムの管理者等によってあらかじめ設定される。
The
後述するように、本システムでは、あらかじめスケジュールDB1011に登録された処理時間でスケジューリングされたジョブが、仮想サーバ210の負荷や他のジョブとの関係で処理が早く終了する頻度が高い場合には、上述した終了時刻やバッファにより管理される時間が短くなるようにそのジョブのスケジュールを自動的に更新することにより、そのジョブによる仮想サーバ210の使用時間を減らしている。クラウド200を利用するユーザは、スケジュールされたジョブによる仮想サーバ210の使用時間によって料金が課金される利用形態であることが多いが、そのような課金による運用コストの負担を抑制することができる。また、システム側から見て仮想サーバ210の台数が減る場合には、余った仮想サーバ210のCPUを有効活用できる。
As will be described later, in this system, when a job scheduled in advance with the processing time registered in the
また、これとは逆に、あらかじめスケジュールDB1011に登録された処理時間でスケジューリングされたジョブが、仮想サーバ210の負荷や他のジョブとの関係で処理が遅く終了する頻度が高い場合には、上述した終了時刻やバッファにより管理される時間が長くなるようにそのジョブのスケジュールを自動的に更新することにより、そのジョブによる仮想サーバ210の使用時間を増やしている。クラウド200を管理する管理者等は、スケジュールされたジョブによる仮想サーバ210の使用時間によって料金を課金することが多いが、そのような課金のための仮想サーバ210の使用状況の調査やスケジュールの設定変更等による更新コストの負担を抑制することができる。また、システム側から見て仮想サーバ210の台数が増える場合には、その仮想サーバ210の負荷を軽減できるとともに、他の余っている仮想サーバ210のCPUを有効活用できる。
On the other hand, if a job scheduled in advance with the processing time registered in the
ジョブ管理DB1012は、上述したジョブ実行時にクラウド200をスケール制御する範囲を管理するデータベースである。図3は、ジョブ管理DB1012の構成例を示す図である。図3に示すように、ジョブ管理DB1012は、上述したジョブIDおよびジョブ名およびサイクルと、上述したバッファと、そのジョブを実行する優先度と、そのジョブを実行する仮想サーバ210の最大台数を示すサーバ台数と、ジョブの実行する際の仮想サーバ210の条件を示す実行条件とを対応付けて記憶している。図3では、例えば、ジョブID「D000001」によって識別されるジョブは、最大3台の仮想サーバ210を用いて実行されることを示している。また、実行条件として、CPU使用率が70%以下の仮想サーバ210を用いてそのジョブを実行させることを示している。さらにそのジョブは、他のジョブと比べて優先して実行されることを示している。ジョブ管理DB1012は、システムの管理者等によってあらかじめ設定される。
The
処理履歴DB1013は、ジョブの処理結果を履歴形式で管理するデータベースである。図4は、処理履歴DB1013の構成例を示す図である。図4に示すように、処理履歴DB1013は、上述したジョブIDと、そのジョブの実際の処理開始時刻を示す開始実績時刻と、そのジョブの実際の処理終了時刻を示す終了実績時刻と、そのジョブを実行した仮想サーバ210を示す処理サーバとを対応付けて記憶している。また、これらの情報が、1つのレコードにサイクリックに(図4に示す例では、1つのレコードの右側に順次追加して)記憶されている。図4では、例えば、ジョブID「D000001」によって識別されるジョブが直近で実際処理を開始した時刻は「22:00」であり、その終了時刻は「23:10」であったことを示している。また、このときジョブを実行した仮想サーバ210は、「S00001、S00005、S00006」の3台であったことを示している。さらにその後のサイクルでは、そのジョブが「22:05」に開始され、「23:40」に終了し、「S00001、S00002、S00003」の3台の仮想サーバ210によって実行されたことを示している。処理履歴DB1013は、実際にジョブ実行部105がジョブを実行した際に更新される。
The
キュー管理DB1014は、ジョブのキューイングを管理するデータベースである。図5は、キュー管理DB1014の構成例を示す図である。図5に示すように、キュー管理DB1014は、キューを識別するためのキューIDと、そのキューによってキューイングされているジョブを示す待ちジョブIDとを対応付けて記憶している。図5では、例えば、最初の順番にキューイングされているジョブは「D000001」であることを示している。キュー管理DB1014は、ジョブ管理部105がクライアント端末300からジョブの実行要求を受けた場合やスケジュールされた時刻が到来した場合に、そのジョブが待ちジョブIDに追加される。
The
カレンダーDB1015は、一般的な年月日や暦等のカレンダー情報や企業固有の情報を管理するデータベースである。図6は、カレンダーDB1015の構成例を示す図である。図6に示すように、カレンダーDB1015は、一般的なカレンダー情報として、年月日や曜日、さらには企業固有の情報(例えば、特売日等のセール日程)を対応付けて記憶している。図6では、例えば、2013年3月のカレンダー情報に加え、1日、5日、10日等の網かけされた日が特売日であることを示している。カレンダーDB1015は、システムの管理者等によってあらかじめ設定される。
The
リソース管理DB1016は、仮想サーバ210の稼働状況を管理するデータベースである。図7は、リソース管理DB1016の構成例を示す図である。図7に示すように、リソース管理DB1016は、仮想サーバ210を識別するためのサーバIDと、その仮想サーバ210のCPU使用率と、メモリ使用量と、ディスク使用量とを対応付けて記憶している。図7では、例えば、サーバID「S00001」によって識別される仮想サーバ210のCPU使用率およびメモリ使用量およびディスク使用量は、それぞれ30%、50%、50%であることを示している。リソース管理DB1016のCPU使用率およびメモリ使用量およびディスク使用量それぞれの数値は、リソース監視部104によって定期的(例えば、図7に示す例では、5分ごとにn回分。)に更新される。続いて、図1に戻って、スケール制御部102について説明する。
The
スケール制御部102は、図2に示したスケジュールDB1011に登録されたジョブの開始時刻および終了時刻から標準的な処理時間(標準処理時間)を算出し、図4に示した処理履歴DB1013に記憶されている開始実績時刻および終了実績時刻から実際にかかった処理時間(実績処理時間)をサイクルごとに算出する。スケール制御部102は、標準処理時間と平均的な実績処理時間との差分の時間がバッファにより管理される時間よりも長い時間となった場合(すなわち、標準処理時間から実績処理時間を差し引いた時間がバッファにより管理される時間以上となって余裕がある場合)には、その差分の時間でスケジュールDB1011のバッファを更新し、平均的な終了実績時刻でスケジュールDB1011の終了時刻を更新する。スケール制御部102がスケジュールDB1011の終了時刻やバッファを更新することにより、上述したようにクラウド200を利用するユーザおよび管理者にとって、運用コストや更新コストの負担が抑制されるとともに、仮想サーバのCPUを有効活用できる。
The
なお、以下では主に実績処理時間が、標準処理時間からバッファにより管理される時間を差し引いてもさらに余裕がある場合について説明しているが、これとは逆に、スケール制御部102が算出した標準処理時間と平均的な実績処理時間との差分の時間がバッファにより管理される時間を超えた場合(すなわち、標準処理時間から実績処理時間を差し引くとバッファにより管理される時間を使い果たしてマイナスになる場合)、上述した場合と同様に、その差分の時間でスケジュールDB1011のバッファを更新し、平均的な終了実績時刻でスケジュールDB1011の終了時刻を更新することも可能である。スケール制御部102がスケジュールDB1011の終了時刻やバッファを更新することにより、上述したようにクラウド200を利用するユーザおよび管理者にとって、運用コストや更新コストの負担が抑制されるとともに、仮想サーバのCPUを有効活用できる。
In the following description, a case where the actual processing time has a margin even when the time managed by the buffer is subtracted from the standard processing time is described. On the contrary, the
リソース監視部104は、それぞれの仮想サーバ210の稼働状況を監視し、図7に示したリソース管理DB1016のCPU使用率およびメモリ使用量およびディスク使用量を定期的に(例えば、5分ごと)更新する。なお、図7に示した例ではそれぞれの値を更新する場合について示しているが、リソース監視部104が、これらの情報を分、時、日、月、年等のサイクル(例えば、5分ごとにn回分)で、履歴形式でリソース管理DB1016に記憶させることとしてもよい。この場合、リソース監視部104が、過去の同時期における仮想サーバ210の稼働状況から今後の稼働状況を予測してその結果をスケール制御部103に出力し、スケール制御部103がスケジュールDB1011のサーバ台数や実行条件を更新することとしてもよい。例えば、リソース監視部104が、5分ごとに監視したCPU使用率およびメモリ使用量およびディスク使用量を1年分蓄積した場合には、月次処理として登録されているジョブが実行される時間帯において、それぞれの仮想サーバ210のCPU使用率は、ある月では平均して60%でありその翌月や翌々月では平均して30%であった場合には、今後はそのジョブが実行される時間帯では仮想サーバ210のCPU使用率は平均して30%であると判断してその結果をスケール制御部103に出力する。スケール制御部103は、リソース監視部104からその結果を受け取ると、スケジュールDB1011の実行条件を60%から30%に更新したり、あるいはジョブで使用するサーバの台数を集約してサーバ台数を8台から4台に更新することとしてもよい。
The resource monitoring unit 104 monitors the operating status of each
ジョブ管理部105は、クライアント端末300から実行要求されたジョブやスケジュールされた時刻が到来したジョブをキューイングして仮想サーバ210に実行させる。ジョブ管理部105は、図5に示したキュー管理DB1014にキューイングされている待ちジョブを、キューIDが小さい順に(すなわち、早くキューイングされた順序で)仮想サーバ210に実行させる。ジョブ管理部105は、仮想サーバ210にジョブを実行させる際に、図7に示したリソース管理DB1016のCPU使用率および図3に示したジョブ管理DB1012の実行条件を参照し、実行しようとしているジョブの実行条件およびサーバ台数を満たす仮想サーバ210を用いて処理を行う。このとき、ジョブ管理部105は、ジョブの開始時刻と終了時刻を図4に示した処理履歴DB1013に書き込む。
The
なお、ジョブ管理部105は、ジョブの実行条件を満たす仮想サーバ210がサーバ台数以上存在する場合には、その中でも最もCPU使用率が低い仮想サーバを特定し、さらにその仮想サーバ210の次にCPU使用率が低い仮想サーバを特定するというように、CPU使用率が低い順に、そのサーバ台数分の仮想サーバ210を用いてジョブを実行させる。ジョブ管理部105は、新たにジョブを実行させる都度、リソース管理DB1016にアクセスして仮想サーバ210のCPU使用率をチェックし、実行条件を満たす仮想サーバを特定する。以下の説明では、新たにジョブを実行させるタイミングで、使用する仮想サーバ210を特定しているが、ジョブが終了したタイミングで仮想サーバ210のCPU使用率をチェックし、次のジョブを実行する仮想サーバを特定することとしてもよい。このように、ジョブ管理部105が、CPU使用率が低い仮想サーバ210に対してジョブを実行させるので、クラウド200全体のロードバランスを平準化することができる。
If there are more
また、ジョブ管理部105が、ジョブIDをキーとして処理履歴DB1013を参照し、過去にそのジョブが実行されたタイミングで、他のジョブがどの仮想サーバ210(処理サーバ)で実行されていたのかをチェックし、最も少ないジョブが実行されていた仮想サーバ210に、そのジョブを処理させることとしてもよい。この場合も、ジョブ管理部105が、各仮想サーバ210でどの程度の数のジョブが過去に実行されているのかといった処理傾向を把握した上で、実行させるジョブを仮想サーバ210に割り振るので、クラウド200全体のロードバランスを平準化することができる。
Further, the
さらに、ジョブ管理部105が、キューIDをキーとしてキュー管理DB1014を参照し、その時点のキュー待ちのジョブ数をカウントするとともに、さらにそのキューIDに対応する待ちジョブIDをキーとして処理履歴DB1013を参照し、そのジョブの過去の処理時間をチェックする。そして、ジョブ管理部105は、チェックしたそのジョブの過去の処理時間から仮想サーバ210にかかる負荷を予測し、キューIDが1つ前のジョブをある仮想サーバ210に処理させた場合には、次のジョブは別の仮想サーバ210に処理させることとしてもよい。負荷の予測については、例えば、ジョブ管理部105は、ジョブの過去の処理時間が長いほど、あるいは仮想サーバ210の数が多いほど仮想サーバ210にかかる負荷が大きいと判断し、そのような負荷が一定の閾値以上(処理時間が規定時間以上、バッファにより管理される時間を超えた時間が規定時間以上、仮想サーバ210の台数が規定台数以上等)となった場合、その仮想サーバ210以外のサーバに次にキューイングされているジョブを処理させる。この場合も、ジョブ管理部105が、過去のジョブの処理時間を考慮して実行させるジョブを仮想サーバ210に割り振るので、クラウド200全体のロードバランスを平準化することができる。続いて、図1に戻って、クラウド200について説明する。
Further, the
クラウド200は、例えば、ネットワーク、サーバ、ストレージ等の共用可能なコンピューティングリソースの集合体である。図1に示すように、クラウド200は、複数の仮想サーバ210を有して構成されている。仮想サーバ210は、制御部2101と、記憶部2102とを有している。制御部2101は、CPU等の演算装置から構成され、例えば、スケール制御サーバ100からの要求に応じて、ジョブを実行する。また、記憶部2101は、メモリやHDD(Hard Disk Drive)等の記憶媒体から構成され、例えば、ジョブに使用する様々なデータを一時的に記憶したり、あるいはその処理結果を記憶する。
The
クライアント端末300は、例えば、デスクトップ型、ノート型の一般的なコンピュータである。システムの利用者は、このクライアント端末300を操作して所望のジョブを実行させる。図1に示すように、クライアント端末300は、制御部301と、表示部302とを有して構成されている。制御部301は、CPU等の演算装置から構成され、ジョブの実行要求やその結果を取得する。表示部302は、LCD等のディスプレイ装置から構成され、ジョブの実行指示画面やその結果画面(いずれも不図示)を表示させる。
The
なお、本実施の形態では特に説明していないが、例えば、スケール制御部102は、スケジュールDB1011の終了時刻やバッファを更新する際に、カレンダーDB1015を参照し、例えば、週末や月初、月末、あるいは特売日等のセール日にジョブが実行されるスケジュールとなっている場合には、多くのジョブが処理されることによって処理時間が通常よりも多くかかると判断し、さらにその終了時刻に予備の時間を加えた時刻をスケジュールDB1011の終了時刻として設定したり、あるいはバッファにさらに予備のバッファを加えたバッファをスケジュールDB1011のバッファに設定することとしてもよい。この場合、ジョブが実行される状況に合ったスケジュールの設定が可能となる。
Although not specifically described in the present embodiment, for example, the
さらに、キューイングされたジョブの中には他のジョブよりも優先して処理すべきジョブが存在するケースもある。そのような場合、ジョブ管理部105は、キュー管理DB1014にキューイングされているジョブのジョブID(待ちジョブID)をキーとしてジョブ管理DB1012にアクセスし、そのジョブに対応する優先度を参照する。そして、ジョブ管理部105は、参照した優先度と、キューイングされている前後のジョブの優先度とを比較し、参照したジョブの優先度のほうが高いと判定した場合、そのジョブを比較対象としたジョブよりも前にキューイングさせることとしてもよい。この場合、優先度を考慮してジョブを実行させることができる。続いて、本システムで行われるスケール制御処理について説明する。
In addition, there are cases where queued jobs have a job to be processed with priority over other jobs. In such a case, the
図8は、スケール制御処理の処理手順を示すフローチャートである。図8に示すように、スケール制御処理では、まず、ジョブ管理部105は、クライアント端末300からジョブの実行要求があったか否か、あるいはジョブを実行するスケジュールが到来したか否かを判定し(ステップS801)、その実行要求がない、あるいはジョブを実行するスケジュールが到来していないと判定した場合(ステップS801;No)、これらのタイミングが到来するまでそのまま待機する。
FIG. 8 is a flowchart showing the processing procedure of the scale control processing. As shown in FIG. 8, in the scale control process, first, the
一方、ジョブ管理部105は、その実行要求があった、あるいはジョブを実行するスケジュールが到来したと判定した場合(ステップS801;Yes)、そのジョブをキュー管理DB1014にキューイングし(ステップS802)、ジョブを実行する順番になったか否かを判定する(ステップS803)。このとき、ジョブ管理部105は、ジョブを実行する順番になっていないと判定した場合(ステップS803;No)、その順番が到来するまでそのまま待機する。
On the other hand, when the
一方、ジョブ管理部105は、ジョブを実行する順番になったと判定した場合(ステップS803;Yes)、リソース管理DB1016のCPU使用率およびジョブ管理DB1012の実行条件を参照し、実行しようとしているジョブの実行条件およびサーバ台数を満たす仮想サーバ210を決定し(ステップS804)、決定した仮想サーバ210を用いてそのジョブの処理を実行する(ステップS805)。そして、ジョブ管理部105は、ジョブの開始時刻と終了時刻を、実行結果として処理履歴DB1013に書き込む(ステップS806)。
On the other hand, if the
スケール制御部102は、スケジュールDB1011に登録されたジョブの標準処理時間と、処理履歴DB1013に記憶されている実績処理時間とを算出し、現在のバッファ、仮想サーバ台数、実行条件をチェック(確認)し(ステップS807)、これらの内容が現在の内容で妥当か否かを判定する(ステップS808)。具体的には、スケール制御部102は、標準処理時間と平均的な実績処理時間との差分の時間がバッファにより管理される時間よりも長い時間であるか否かを判定する。
The
そして、スケール制御部102は、これらの内容が現在の内容で妥当であると判定した場合(ステップS808;Yes)、何もせずに処理を終了する。一方、スケール制御部102は、これらの内容が現在の内容で妥当でないと判定した場合(ステップS808;No)、すなわち、標準処理時間から実績処理時間を差し引いた時間がバッファにより管理される時間以上となって余裕がある場合には、その差分の時間でジョブ管理DB1011、スケジュールDB1011のバッファを更新し、平均的な終了実績時刻でスケジュールDB1011の終了時刻を更新し、その結果画面(例えば、図2に示したスケジュールDB、図3に示したジョブ管理DBと同様の画面)をクライアント端末300の表示部302に表示させる(ステップS809)。
If the
ここでは、処理の終了時刻についてのみ記載したが、上述したように、CPUの使用率やメモリの使用量、ディスク使用量等のリソースの各値の使用実績値の平均値を算出し、その値が現在の実行条件(例えば、CPU使用率70%)を一定以上下回った場合(例えば、10%下回った60%である場合)、現在の実行条件をその値に更新することとしてもよい。このステップS809の処理が終了すると、図8に示したスケール制御処理が終了する。 Here, only the processing end time is described, but as described above, the average value of the actual use values of each value of the resource such as the CPU usage rate, the memory usage amount, and the disk usage amount is calculated and the value is calculated. When the current execution condition falls below a certain level (for example, 60%, which is 10% lower), the current execution condition may be updated to that value. When the process of step S809 ends, the scale control process shown in FIG. 8 ends.
このように、本実施の形態におけるスケール制御処理を行うことにより、負荷状況に応じてシステムをスケール制御し、仮想サーバの運用コストの無駄を減らすことが可能となる。 As described above, by performing the scale control processing in the present embodiment, it is possible to control the scale of the system according to the load situation and reduce the waste of operating costs of the virtual server.
本実施形態のスケール制御サーバで実行される処理は、実際にはプログラムによって実行されるが、例えば、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供することも可能である。また、そのプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせたり、インターネット等のネットワーク経由で提供または配布するように構成しても良い。さらには、そのプログラムを、ROM等に予め組み込んで提供するように構成してもよい。 The processing executed by the scale control server of the present embodiment is actually executed by a program. For example, a file in an installable format or an executable format is a CD-ROM, a flexible disk (FD), a CD- It can also be provided by being recorded on a computer-readable recording medium such as R or DVD (Digital Versatile Disk). The program may be stored on a computer connected to a network such as the Internet and downloaded via the network, or provided or distributed via a network such as the Internet. Further, the program may be provided by being incorporated in advance in a ROM or the like.
なお、本実施の形態のスケール制御サーバで実行されるプログラムは、上述した各部(スケール制御部102、リソース監視部103、ジョブ管理部104等)を含むモジュール構成となっており、実際のハードウェアとしてはCPUが上記記憶媒体からプログラムを読み出して実行することにより上記各部が不図示の主記憶装置上にロードされ、スケール制御部102、リソース監視部103、ジョブ管理部104等がその主記憶装置上に生成されるようになっている。
The program executed by the scale control server of the present embodiment has a module configuration including the above-described units (
本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、例えば、ジョブの数が多い場合には、ジョブ管理部105の機能を1つのサーバに設け、スケール制御部102、リソース監視部103等の他の機能を別のサーバに設けて負荷を分散させることとしてもよい。
The present invention is not limited to the above-described embodiments, and includes various modifications. For example, the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described. Further, a part of the configuration of one embodiment can be replaced with the configuration of another embodiment. For example, when the number of jobs is large, the function of the
また、スケール制御部102が仮想サーバ台数、実行条件をチェックしてその内容が現在の内容で妥当か否かを判定する場合、標準処理時間から実績処理時間を差し引いた時間がバッファにより管理される時間以上と記載しているが、標準処理時間から実績処理時間を差し引いた時間がバッファにより管理される時間よりも長いか否か、あるいはバッファにより管理される時間よりも短い(あるいは長い)時間を基準時間として設定し、その時間と標準処理時間から実績処理時間を差し引いた時間とを比較して判定することも可能である。すなわち、スケール制御部102は、必ずしも本実施の形態で示したバッファによって仮想サーバ台数、実行条件をチェックしてその内容が現在の内容で妥当か否かを判定するわけではなく、このような様々な基準によって判定することができる。
In addition, when the
1000 スケール制御システム
100 スケール制御サーバ
101 記憶部
1011 スケジュールDB
1012 ジョブ管理DB
1013 処理履歴DB
1014 キュー管理DB
1015 カレンダーDB
1016 リソース管理DB
102 スケール制御部
103 リソース制御部
104 ジョブ管理部
200 クラウド
210 仮想サーバ
2101 制御部
2102 記憶部
300 クライアント端末
301 制御部
302 表示部
N1、N2 ネットワーク。
1000
1012 Job management DB
1013 Processing history DB
1014 Queue management DB
1015 Calendar DB
1016 Resource management DB
102
Claims (11)
前記ジョブと、前記ジョブを実行するサーバの台数と、前記ジョブの実行条件とを対応付けて記憶するジョブ管理データベースと、前記ジョブの実行スケジュールと前記ジョブの処理時間の余裕分を示すバッファとを対応付けて記憶するスケジュール管理データベースと、前記ジョブの実行履歴を記憶する処理履歴データベースと、を記憶する記憶部と、
前記複数のサーバのそれぞれの負荷状況を監視するリソース監視部と、
クライアント端末から前記ジョブの実行要求を受けた場合に、前記ジョブ管理データベースが記憶するそのジョブの実行条件と、前記リソース監視部が監視する負荷状況とに基づいて、そのジョブを実行させる台数分のサーバを決定してそのジョブを実行させ、その実行時間を実行結果として前記処理履歴データベースに記憶させるジョブ管理部と、
前記ジョブ管理部が記憶させた前記ジョブの実行時間と、前記スケジュール管理データベースに記憶されている実行スケジュールおよび前記バッファで管理された時間とに基づいて、前記実行スケジュールまたは前記バッファを前記ジョブの実行時間に更新するスケール制御部と、
を備えることを特徴とするスケール制御サーバ。 A scale control server that scales a cloud having a plurality of servers that execute jobs,
A job management database that stores the job, the number of servers that execute the job, and the execution condition of the job in association with each other; and a buffer that indicates an allowance for the job execution schedule and the job processing time. A storage unit that stores a schedule management database that stores the job in association with each other, a processing history database that stores an execution history of the job, and
A resource monitoring unit for monitoring the load status of each of the plurality of servers;
When a job execution request is received from a client terminal, the job management database stores the job execution conditions stored in the job management database and the load status monitored by the resource monitoring unit. A job management unit that determines a server, executes the job, and stores the execution time in the processing history database as an execution result;
Based on the execution time of the job stored by the job management unit, the execution schedule stored in the schedule management database, and the time managed by the buffer, the execution schedule or the buffer is executed for the job. A scale control that updates in time,
A scale control server comprising:
ことを特徴とする請求項1に記載のスケール制御サーバ。 The scale control unit determines whether or not a difference between the execution time of the job and the time managed by the execution schedule and the buffer is greater than or equal to a certain value, and the execution time of the job, the execution schedule, and the buffer Updating the execution schedule or the buffer to the execution time of the job when it is determined that the difference from the managed time is a certain value or more;
The scale control server according to claim 1.
ことを特徴とする請求項1または2に記載のスケール制御サーバ。 The scale control unit reduces the number of servers stored in the job management database, or executes the job when it determines that the execution time of the job is less than or equal to the execution schedule and the buffer. When it is determined that the time is more than a certain amount than the execution schedule and the buffer, the number of servers stored in the job management database is increased.
The scale control server according to claim 1 or 2, characterized by the above.
前記スケール制御部は、前記ジョブの実行時間が前記実行スケジュールおよび前記バッファよりも一定以上少ないと判定した場合には前記CPU使用率を低くし、または前記ジョブの実行時間が前記実行スケジュールおよび前記バッファよりも一定以上多いと判定した場合には前記CPU使用率を高くする、
ことを特徴とする請求項1〜3のいずれか1項に記載のスケール制御サーバ。 The job management database stores a CPU usage rate as the execution condition,
The scale control unit lowers the CPU usage rate when the execution time of the job is determined to be a certain amount or less than the execution schedule and the buffer, or the execution time of the job is the execution schedule and the buffer. If the CPU usage rate is determined to be more than a certain level, the CPU usage rate is increased.
The scale control server according to any one of claims 1 to 3.
ことを特徴とする請求項4に記載のスケール制御サーバ。 When there are more servers than the number of servers satisfying the CPU usage rate, the job management unit causes the job to be executed using the servers for the number of servers in order of increasing CPU usage rate.
The scale control server according to claim 4.
前記ジョブ管理データベースは、前記ジョブを実行する優先度をさらに記憶し、
前記ジョブ管理部105は、クライアント端末から前記ジョブの実行要求を受けた場合に、そのジョブを前記キュー管理データベースにキューイングし、キューイングしたジョブの優先度が先にキューイングされたジョブよりも高い場合にはそのジョブを先に実行させる、
ことを特徴とする請求項1〜5のいずれか1項に記載のスケール制御サーバ。 The storage unit further stores a queue management database for queuing the job,
The job management database further stores a priority for executing the job,
When the job management unit 105 receives a job execution request from a client terminal, the job management unit 105 queues the job in the queue management database, and the priority of the queued job is higher than that of the job queued first. If it is higher, let the job run first,
The scale control server according to any one of claims 1 to 5, wherein the server is a scale control server.
前記スケール制御部は、前記実行スケジュールおよび前記バッファを更新する際に前記カレンダーデータベースを参照し、前記ジョブが週末、月初、月末を含む特定日に実行された場合には、多くのジョブが処理されることによって処理時間が通常よりも多くかかると判断し、前記バッファにさらに予備の時間を加える、
ことを特徴とする請求項1〜6のいずれか1項に記載のスケール制御サーバ。 The storage unit further stores a calendar database for storing calendars,
The scale control unit refers to the calendar database when updating the execution schedule and the buffer, and when the job is executed on a specific day including a weekend, the beginning of the month, and the end of the month, many jobs are processed. The processing time is longer than usual, and further reserve time is added to the buffer.
The scale control server according to claim 1, wherein:
前記複数のサーバのそれぞれの負荷状況を監視する第1のステップと、
クライアント端末から前記ジョブの実行要求を受けた場合に、前記ジョブと、前記ジョブを実行するサーバの台数と、前記ジョブの実行条件とを対応付けて記憶するジョブ管理データベースが記憶するそのジョブの実行条件と、監視された負荷状況とに基づいて、そのジョブを実行させる台数分のサーバを決定してそのジョブを実行させる第2のステップと、
その実行時間を実行結果として前記ジョブの実行履歴を記憶する処理履歴データベースに記憶させる第3のステップと、
前記ジョブの実行時間と、前記ジョブの実行スケジュールと前記ジョブの処理時間の余裕分を示すバッファとを対応付けて記憶するスケジュール管理データベースに記憶されている実行スケジュールおよびバッファとに基づいて、前記実行スケジュールおよび前記バッファを前記ジョブの実行時間に更新する第4のステップと、
を含むことを特徴とするスケール制御方法。 A scale control method that scales a cloud having a plurality of servers that execute jobs,
A first step of monitoring a load status of each of the plurality of servers;
When a job execution request is received from a client terminal, the job is stored in a job management database that stores the job, the number of servers that execute the job, and the job execution conditions in association with each other. A second step of determining the number of servers to execute the job based on the condition and the monitored load status and executing the job;
A third step of storing the execution time in the processing history database for storing the execution history of the job as an execution result;
The execution based on the execution schedule and the buffer stored in the schedule management database that stores the job execution time, the job execution schedule, and a buffer indicating a margin of the processing time of the job in association with each other A fourth step of updating the schedule and the buffer to the execution time of the job;
A scale control method comprising:
ことを特徴とする請求項8に記載のスケール制御方法。 In the fourth step, the method further includes a step of determining whether or not a difference between the execution time of the job and the execution schedule and the buffer is greater than or equal to a certain value, and the execution time of the job, the execution schedule, and the buffer; The execution schedule and the buffer are updated to the execution time of the job when it is determined that the difference between the two is greater than or equal to a certain value.
The scale control method according to claim 8.
スケール制御するクラウドに含まれ、ジョブを実行する複数のサーバのそれぞれの負荷状況を監視する第1のステップと、
クライアント端末から前記ジョブの実行要求を受けた場合に、前記ジョブと、前記ジョブを実行するサーバの台数と、前記ジョブの実行条件とを対応付けて記憶するジョブ管理データベースが記憶するそのジョブの実行条件と、監視された負荷状況とに基づいて、そのジョブを実行させる台数分のサーバを決定してそのジョブを実行させる第2のステップと、
その実行時間を実行結果として前記ジョブの実行履歴を記憶する処理履歴データベースに記憶させる第3のステップと、
前記ジョブの実行時間と、前記ジョブの実行スケジュールと前記ジョブの処理時間の余裕分を示すバッファとを対応付けて記憶するスケジュール管理データベースに記憶されている実行スケジュールおよびバッファとに基づいて、前記実行スケジュールおよび前記バッファを前記ジョブの実行時間に更新する第4のステップと、
を実行させることを特徴とするスケール制御プログラム。 On the computer,
A first step of monitoring a load status of each of a plurality of servers that are included in a cloud to be scaled and execute jobs;
When a job execution request is received from a client terminal, the job is stored in a job management database that stores the job, the number of servers that execute the job, and the job execution conditions in association with each other. A second step of determining the number of servers to execute the job based on the condition and the monitored load status and executing the job;
A third step of storing the execution time in the processing history database for storing the execution history of the job as an execution result;
The execution based on the execution schedule and the buffer stored in the schedule management database that stores the job execution time, the job execution schedule, and a buffer indicating a margin of the processing time of the job in association with each other A fourth step of updating the schedule and the buffer to the execution time of the job;
A scale control program characterized in that
ことを特徴とするスケール制御プログラム。 In the fourth step, the method further includes a step of determining whether or not a difference between the execution time of the job and the execution schedule and the buffer is greater than or equal to a certain value, and the execution time of the job, the execution schedule, and the buffer; The execution schedule and the buffer are updated to the execution time of the job when it is determined that the difference between the two is greater than or equal to a certain value.
A scale control program characterized by that.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013191905A JP2015060279A (en) | 2013-09-17 | 2013-09-17 | Scale control server, scale control method, and scale control program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013191905A JP2015060279A (en) | 2013-09-17 | 2013-09-17 | Scale control server, scale control method, and scale control program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015060279A true JP2015060279A (en) | 2015-03-30 |
Family
ID=52817785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013191905A Pending JP2015060279A (en) | 2013-09-17 | 2013-09-17 | Scale control server, scale control method, and scale control program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015060279A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021149409A (en) * | 2020-03-18 | 2021-09-27 | 株式会社日立製作所 | Application development support system and application development support method |
WO2022201908A1 (en) * | 2021-03-24 | 2022-09-29 | 富士フイルム株式会社 | System and method for processing medical information, method for providing medical information processing service, and program |
-
2013
- 2013-09-17 JP JP2013191905A patent/JP2015060279A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021149409A (en) * | 2020-03-18 | 2021-09-27 | 株式会社日立製作所 | Application development support system and application development support method |
JP7324165B2 (en) | 2020-03-18 | 2023-08-09 | 株式会社日立製作所 | Application development support system and application development support method |
WO2022201908A1 (en) * | 2021-03-24 | 2022-09-29 | 富士フイルム株式会社 | System and method for processing medical information, method for providing medical information processing service, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8793693B2 (en) | Apparatus and method for predicting a processing time of a computer | |
US10162684B2 (en) | CPU resource management in computer cluster | |
RU2697700C2 (en) | Equitable division of system resources in execution of working process | |
KR20210056430A (en) | Commitment-aware scheduler | |
US20200127938A1 (en) | Systems and methods for provision of a guaranteed batch | |
EP1750200A2 (en) | System and method for executing job step, and computer product | |
US10331481B2 (en) | Automatic reconfiguration of high performance computing job schedulers based on user behavior, user feedback, and job performance monitoring | |
WO2012028213A1 (en) | Re-scheduling workload in a hybrid computing environment | |
US11150999B2 (en) | Method, device, and computer program product for scheduling backup jobs | |
US20150378782A1 (en) | Scheduling of tasks on idle processors without context switching | |
US8539495B2 (en) | Recording medium storing therein a dynamic job scheduling program, job scheduling apparatus, and job scheduling method | |
US10095546B2 (en) | Batch processing of oversubscribed system based on subscriber usage patterns | |
CN113544647A (en) | Capacity management in cloud computing systems using virtual machine family modeling | |
JP4555145B2 (en) | Batch scheduling program, batch scheduling method, and batch scheduling apparatus | |
JP2015060279A (en) | Scale control server, scale control method, and scale control program | |
US11303546B2 (en) | Service system and control method of the same | |
US9612907B2 (en) | Power efficient distribution and execution of tasks upon hardware fault with multiple processors | |
US9195515B1 (en) | Method and system for process load balancing | |
US11513856B2 (en) | Method, devices and computer program products for resource usage | |
CN111949442B (en) | System and method for scalable backup service | |
US10114439B2 (en) | Achieving a consistent computing device battery drain rate | |
US10599479B2 (en) | Resource sharing management of a field programmable device | |
JP5755025B2 (en) | Program update instruction device | |
CN112130979B (en) | Method, device, terminal and medium for scheduling task and training neural network model | |
JP2003223335A (en) | Out-sourcing system, out-sourcing method, and program for out-sourcing |