"要求側プロセスにサービスを提供するプログラムであるサービス提供プログラムを実行する仮想サーバが複数起動される物理サーバと、要求側プロセスからのサービスの提供要求を受け付け、受け付けた提供要求に応じて該提供要求に対応するサービス提供プログラムをいずれかの前記仮想サーバに実行させてサービス提供プロセスを生成する受付手段と、前記仮想サーバの起動に要した時間を含む稼動サーバ情報を記憶する記憶手段と、現在起動されている前記仮想サーバの利用の状況に関する利用状況情報を収集する収集手段と、前記利用状況情報から得られる前記仮想サーバにおけるサービス提供プロセスの処理時間の平均値及び前記稼動サーバ情報から得られる前記仮想サーバの起動時間の平均値に基づいて、現時点から前記仮想サーバの平均起動時間経過後に受け付けると予測される提供要求数のサービス提供プロセスを、予め設定されている保証期間内に終了させるのに必要な前記仮想サーバの数を算出する算出手段と、前記算出手段における算出結果に基づき前記仮想サーバを起動する起動手段と、を有することを特徴とする仮想サーバ調整システム。前記算出手段は、前記利用状況情報から得られる一定期間内に受け付けたサービスの提供要求数の遷移に基づき、平均起動時間経過後におけるサービスの予測される提供要求数を算出することを特徴とする請求項1に記載の仮想サーバ調整システム。前記算出手段は、現在受け付けて処理が終了していないサービスの提供要求数、前記仮想サーバの起動時間の平均値及び受け付けたサービスの提供要求数の遷移に基づいて、前記仮想サーバの平均起動時間経過後に受け付けると予測されるサービスの提供要求数を算出することを特徴とする請求項1に記載の仮想サーバ調整システム。要求側プロセスにサービスを提供するプログラムであるサービス提供プログラムを実行する仮想サーバが複数起動される物理サーバと、要求側プロセスからのサービスの提供要求を受け付け、受け付けた提供要求に応じて該提供要求に対応するサービス提供プログラムをいずれかの前記仮想サーバに実行させてサービス提供プログラムを生成する受付手段と、前記仮想サーバの起動に要した時間を含む稼動サーバ情報を記憶する記憶手段と、現在起動されている前記仮想サーバの利用の状況に関する利用状況情報を収集する収集手段と、を有する仮想サーバ調整システムにおける仮想サーバ制御装置において、前記利用状況情報から得られる前記仮想サーバにおけるサービス提供プロセスの処理時間の平均値及び前記稼動サーバ情報から得られる前記仮想サーバの起動時間の平均値に基づいて、前記仮想サーバの平均起動時間経過後に受け付けると予測される提供要求数のサービス提供プロセスを、予め設定されている保証期間内に終了させるのに必要な前記仮想サーバの数を算出する算出手段と、前記算出手段における算出結果に基づき前記仮想サーバを起動する起動手段と、を有することを特徴とする仮想サーバ制御装置。要求側プロセスにサービスを提供するプログラムであるサービス提供プログラムを実行する仮想サーバが複数起動される物理サーバと、要求側プロセスからのサービスの提供要求を受け付け、受け付けた提供要求に応じて該提供要求に対応するサービス提供プログラムをいずれかの前記仮想サーバに実行させてサービス提供プロセスを生成する受付手段と、前記仮想サーバの起動に要した時間を含む稼動サーバ情報を記憶する記憶手段と、現在起動されている前記仮想サーバの利用の状況に関する利用状況情報を収集する収集手段と、を有する仮想サーバ調整システムに含まれるコンピュータを、前記利用状況情報から得られる前記仮想サーバにおけるサービス提供プロセスの処理時間の平均値及び前記稼動サーバ情報から得られる前記仮想サーバの起動時間の平均値に基づいて、前記仮想サーバの平均起動時間経過後に受け付けると予測される提供要求数のサービスプロセスを、予め設定されている保証期間内に終了させるのに必要な前記仮想サーバの数を算出する算出手段、前記算出手段における算出結果に基づき前記仮想サーバを起動する起動手段、として機能させるためのプログラム。本発明は、仮想サーバの起動指示が出されてからサービスの提供が可能になるまでの間の資源の不足を解消することを目的とする。本発明に係る仮想サーバ調整システムは、要求側プロセスにサービスを提供するプログラムであるサービス提供プログラムを実行する仮想サーバが複数起動される物理サーバと、要求側プロセスからのサービスの提供要求を受け付け、受け付けた提供要求に応じて該提供要求に対応するサービス提供プログラムをいずれかの前記仮想サーバに実行させてサービス提供プロセスを生成する受付手段と、前記仮想サーバの起動に要した時間を含む稼動サーバ情報を記憶する記憶手段と、現在起動されている前記仮想サーバの利用の状況に関する利用状況情報を収集する収集手段と、前記利用状況情報から得られる前記仮想サーバにおけるサービス提供プロセスの処理時間の平均値及び前記稼動サーバ情報から得られる前記仮想サーバの起動時間の平均値に基づいて、現時点から前記仮想サーバの平均起動時間経過後に受け付けると予測される提供要求数のサービス提供プロセスを、予め設定されている保証期間内に終了させるのに必要な前記仮想サーバの数を算出する算出手段と、前記算出手段における算出結果に基づき前記仮想サーバを起動する起動手段と、を有することを特徴とする。また、前記算出手段は、前記利用状況情報から得られる一定期間内に受け付けたサービスの提供要求数の遷移に基づき、平均起動時間経過後におけるサービスの予測される提供要求数を算出することを特徴とする。また、前記算出手段は、現在受け付けて処理が終了していないサービスの提供要求数、前記仮想サーバの起動時間の平均値及び受け付けたサービスの提供要求数の遷移に基づいて、前記仮想サーバの平均起動時間経過後に受け付けると予測されるサービスの提供要求数を算出することを特徴とする。本発明に係る仮想サーバ制御装置は、要求側プロセスにサービスを提供するプログラムであるサービス提供プログラムを実行する仮想サーバが複数起動される物理サーバと、要求側プロセスからのサービスの提供要求を受け付け、受け付けた提供要求に応じて該提供要求に対応するサービス提供プログラムをいずれかの前記仮想サーバに実行させてサービス提供プログラムを生成する受付手段と、前記仮想サーバの起動に要した時間を含む稼動サーバ情報を記憶する記憶手段と、現在起動されている前記仮想サーバの利用の状況に関する利用状況情報を収集する収集手段と、を有する仮想サーバ調整システムにおける仮想サーバ制御装置において、前記利用状況情報から得られる前記仮想サーバにおけるサービス提供プロセスの処理時間の平均値及び前記稼動サーバ情報から得られる前記仮想サーバの起動時間の平均値に基づいて、前記仮想サーバの平均起動時間経過後に受け付けると予測される提供要求数のサービス提供プロセスを、予め設定されている保証期間内に終了させるのに必要な前記仮想サーバの数を算出する算出手段と、前記算出手段における算出結果に基づき前記仮想サーバを起動する起動手段と、を有することを特徴とする。本発明に係るプログラムは、要求側プロセスにサービスを提供するプログラムであるサービス提供プログラムを実行する仮想サーバが複数起動される物理サーバと、要求側プロセスからのサービスの提供要求を受け付け、受け付けた提供要求に応じて該提供要求に対応するサービス提供プログラムをいずれかの前記仮想サーバに実行させてサービス提供プロセスを生成する受付手段と、前記仮想サーバの起動に要した時間を含む稼動サーバ情報を記憶する記憶手段と、現在起動されている前記仮想サーバの利用の状況に関する利用状況情報を収集する収集手段と、を有する仮想サーバ調整システムに含まれるコンピュータを、前記利用状況情報から得られる前記仮想サーバにおけるサービス提供プロセスの処理時間の平均値及び前記稼動サーバ情報から得られる前記仮想サーバの起動時間の平均値に基づいて、前記仮想サーバの平均起動時間経過後に受け付けると予測される提供要求数のサービスプロセスを、予め設定されている保証期間内に終了させるのに必要な前記仮想サーバの数を算出する算出手段、前記算出手段における算出結果に基づき前記仮想サーバを起動する起動手段、として機能させるためのものである。請求項1記載の発明によれば、仮想サーバの起動指示が出されてからサービスの提供が可能になるまでの間の資源の不足を解消することができる。請求項2記載の発明によれば、サービスの提供要求数の遷移にという過去の実績に基づいて平均起動時間経過後におけるサービスの予測される提供要求数を算出することができる。請求項3記載の発明によれば、仮想サーバの平均起動時間経過後に受け付けると予測されるサービスの提供要求数を算出することができる。請求項4記載の発明によれば、仮想サーバの起動指示が出されてからサービスの提供が可能になるまでの間の資源の不足を解消することができる。請求項5記載の発明によれば、仮想サーバの起動指示が出されてからサービスの提供が可能になるまでの間の資源の不足を解消することができる。以下、図面に基づいて、本発明の好適な実施の形態について説明する。図1は、本発明に係る仮想サーバ調整システムの一実施の形態を示したブロック構成図である。図1には、クラウド基盤12と、クライアント14と、ロードバランサ20と、監視サーバ30と、コントローラ40と、が示されている。クラウド基盤12には、仮想サーバ13が複数起動される物理サーバが複数台含まれている。仮想サーバ13は、物理的なサーバの全部又は一部の資源リソースで構成される仮想的な1台のサーバコンピュータであり、要求側プロセスにサービスを提供するサービス提供プログラムが実行される。クライアント14は、要求側プロセスが動作するコンピュータである。なお、本システムは、複数台のクライアントによって利用可能であるが、各クライアントは同様の構成でよいので、図1には1台のクライアント14のみ図示した。ロードバランサ20は、常時稼動しており、要求側プロセスからのサービスの提供要求を受け付け、受け付けたサービスをいずれかの仮想サーバ13に実行させる受付手段である。図1では、ロードバランサ20をクラウド基盤12の外部に設けたが、内部に設けてもよい。本実施の形態におけるロードバランサ20は、要求受付部21、サービス実行制御部22、稼動状況情報収集部23、稼動状況情報提供部24、仮想サーバ情報取得部25、稼動状況情報記憶部26及び仮想サーバ情報記憶部27を有する。要求受付部21は、クライアント14の要求側プロセスから送られてくるサービスの提供要求を受け付ける。サービス実行制御部22は、受け付けたサービスを提供するサービス提供プログラムを、各記憶部26,27に記憶されている情報を参照して選択したいずれかの仮想サーバ13に実行させてサービス提供プロセスを生成する。稼動状況情報収集部23は、各仮想サーバ13の稼動状況を監視し、その監視により各仮想サーバ13における稼動状況に関する稼動状況情報を収集し、稼動状況情報記憶部26に登録する。稼働状況情報の詳細は後述する。稼動状況情報提供部24は、収集された稼動状況情報を監視サーバ30へ送信することで提供する。仮想サーバ情報取得部25はコントローラ40から送られてくる仮想サーバ情報を受信することで取得し、仮想サーバ情報記憶部27に保存する。監視サーバ30は、常時稼動し、本システム全体を監視する。監視サーバ30は、稼動状況情報取得部31、実績情報提供部32及び稼動状況情報記憶部33を有する。稼動状況情報取得部31は、ロードバランサ20から送られてくる稼動状況情報を受信することで取得すると、稼動状況情報記憶部33に保存する。実績情報提供部32は、稼動状況情報に基づきコントローラ40が起動する仮想サーバ13の数を算出する際に用いるデータを必要により計算し、仮想サーバ13の稼動状況に関する実績情報としてコントローラ40に送信することで提供する。コントローラ40は、常時稼動し、起動されている仮想サーバ13の稼動状況に関する実績を参照に、仮想サーバ13の起動及び停止を行うことで、サービスの提供に必要な仮想サーバ13の最適化を図る仮想サーバ制御装置である。コントローラ40は、実績情報取得部41、算出部42、仮想サーバ起動部43、仮想サーバ情報提供部44及び仮想サーバ情報記憶部45を有する。実績情報取得部41は、監視サーバ30から送られてくる実績情報を受信することで取得する。算出部42は、仮想サーバ13の平均起動時間経過後に受け付けると予測される提供要求数のサービスを、予め設定されている保証期間内に終了させるのに必要な仮想サーバ13の数を算出する算出手段である。仮想サーバ起動部43は、仮想サーバ13を起動する。起動には、仮想サーバ13の新規起動と、既存の仮想サーバ13の機能や仕様の変更に伴う仮想サーバ13の再起動が含まれる。また、仮想サーバ13を起動するというものの、正確には、仮想サーバ13の起動指示をクラウド基盤12に含まれる管理サーバ図示せずへ送信することによって、管理サーバに、指示したリソースで仮想サーバ13を起動させるが、本実施の形態では、便宜的に仮想サーバ起動部43が仮想サーバ13を起動すると表現する場合もある。本実施の形態における仮想サーバ起動部43は、現在起動されている仮想サーバ13の数が算出部42により算出された数に達していない場合に、その数に達するように仮想サーバ13を起動する。仮想サーバ情報提供部44は、現在起動されている稼動サーバに関する稼動サーバ情報をロードバランサ20に送信することで提供する。仮想サーバ情報記憶部45には、起動された仮想サーバ13に関する稼動サーバ情報が記憶される。図2は、本実施の形態における監視サーバ30を形成するサーバコンピュータのハードウェア構成図である。本実施の形態において監視サーバ30を形成するサーバコンピュータは、従前から存在する汎用的なハードウェア構成で実現できる。すなわち、コンピュータは、図2に示したようにCPU1、ROM2、RAM3、ハードディスクドライブHDD4を接続したHDDコントローラ5、入力手段として設けられたマウス6とキーボード7、及び表示装置として設けられたディスプレイ8をそれぞれ接続する入出力コントローラ9、通信手段として設けられたネットワークコントローラ10を内部バス11に接続して構成される。また、コントローラ40及びクライアント14も同じコンピュータであることから、そのハードウェアは、図2に示したように構成してもよい。また、ロードバランサ20は、入力手段を設けなくてもよいかもしれないが、同じコンピュータであることから、そのハードウェアは、図2に示したように構成してもよい。ロードバランサ20における各構成要素21~25は、ロードバランサ20を形成するコンピュータと、コンピュータに搭載されたCPU1で動作するプログラムとの協調動作により実現される。また、各記憶部26,27は、ロードバランサ20に搭載されたHDD4又はRAM3で実現してよい。あるいは、各記憶部26,27を別の装置に設け、その別の装置にアクセスするように構成してもよい。監視サーバ30における各構成要素31~32は、監視サーバ30を形成するコンピュータと、コンピュータに搭載されたCPU1で動作するプログラムとの協調動作により実現される。また、稼動状況情報記憶部33は、監視サーバ30に搭載されたHDD4又はRAM3で実現してよい。あるいは、稼動状況情報記憶部33を別の装置に設け、その別の装置にアクセスするように構成してもよい。コントローラ40における各構成要素41~44は、コントローラ40を形成するコンピュータと、コンピュータに搭載されたCPU1で動作するプログラムとの協調動作により実現される。また、仮想サーバ情報記憶部45は、コントローラ40に搭載されたHDD4又はRAM3で実現してよい。あるいは、仮想サーバ情報記憶部45を別の装置に設け、その別の装置にアクセスするように構成してもよい。また、本実施の形態で用いるプログラムは、通信手段により提供することはもちろん、CD-ROMやDVD-ROM等のコンピュータ読み取り可能な記録媒体に格納して提供することも可能である。通信手段や記録媒体から提供されたプログラムはコンピュータにインストールされ、コンピュータのCPUがインストールプログラムを順次実行することで各種処理が実現される。次に、本実施の形態における動作について説明する。本実施の形態は、コントローラ40が必要な仮想サーバ13の数を決定することを特徴とするが、最初に、仮想サーバ13によりサービスが提供される通常のシステム運用時における動作について説明する。クラウド基盤12が提供しているサービスを利用したいクライアント14の要求側プロセスは、サービスの提供要求をロードバランサ20へ送信する。ロードバランサ20における要求受付部21は、クライアント14の要求側プロセスから送信されてきた提供要求を受け付けると、仮想サーバ情報記憶部27に登録されている仮想サーバ情報及び稼動状況情報記憶部26に記憶されている稼動状況情報を参照に、要求されたサービスを提供する仮想サーバ13を決定し、その仮想サーバ13にサービスの提供を指示する。仮想サーバ情報には、現在起動されている各仮想サーバ13のCPUの種類、コア数、メモリ、ハードディスクの容量等の構成、つまり各仮想サーバ13に割り当てられたハードウェア資源、また実行可能なサービス提供プログラム等のソフトウェア資源等各仮想サーバ13の資源リソースに関する情報が含まれている。また、仮想サーバ情報には、コントローラ40が仮想サーバ13を新規に起動する要求をしてから、クライアント14の要求側プロセスがその仮想サーバ13を利用可能となるまでに要した時間起動時間が含まれている。仮想サーバ情報取得部25は、コントローラ40が仮想サーバ13を新たに起動する度に、また既存の仮想サーバ13の資源を変更して再起動する度に仮想サーバ情報提供部44から送られてくる最新の仮想サーバ情報を取得し、この情報で仮想サーバ情報記憶部27を更新する。また、稼動状況情報には、例えばCPUの使用率、メモリの使用率、ハードディスクの使用量、実行しているサービス提供プロセスの種類、数など起動されている仮想サーバ13の現在におけるリソースの利用状況が含まれている。また、稼動状況情報には、受け付けたサービスの提供要求以下、リクエストとも称するの実行状態に関する情報も含まれており、具体的には、リクエストに割り振られた仮想サーバ13と、リクエストに応じて当該仮想サーバ13においてサービス提供プロセスの実行が開始された日時情報及びサービス提供プロセスの実行が終了した日時情報が含まれる。なお、仮想サーバ13が割り振られていないリクエスト、あるいは仮想サーバ13は割り振られたものの実行開始日時情報が設定されていないリソースは待機中受付中という状態にあり、仮想サーバ13は割り振られ、実行開始日時情報が設定されているが、実行終了日時情報が設定されていないリソースは現在処理中という状態にあることがわかる。稼動状況情報収集部23は、各仮想サーバ13の稼動状況を常時収集しており、稼動状況情報記憶部26に登録されている各仮想サーバ13の稼動状況情報を逐次更新している。要求受付部21は、これらの情報を参照して、仮想サーバ13にかかる負荷が均等になるように、クラウド基盤12の環境下にある仮想サーバ13の中からそのサービスの提供に最適な少なくとも1台の仮想サーバ13を選出し、その仮想サーバ13にサービスの提供を指示する。その指示を受けた仮想サーバ13は、要求側プロセスにより要求されたサービスに対応するサービス提供プログラムを実行してサービス提供プロセスを生成する。このようにして、要求側プロセスにサービスを提供する。また、稼動状況情報提供部24は、収集された稼動状況情報を監視サーバ30へその都度送信することで提供する。もちろん、周期的な処理により、例えば1分という一定期間内に収集された稼動状況情報をまとめて送信するようにしてもよい。監視サーバ30における稼動状況情報取得部31は、このようにして稼動状況情報提供部24から提供される稼動状況情報で稼動状況情報記憶部33を更新することで、稼動状況情報を最新の状態にする。以上のようにして、クラウド基盤12の環境下において起動されている仮想サーバ13は、クライアント14の要求側プロセスから送られてくるリクエストに応じてサービスを提供する。続いて、本実施の形態におけるリソース最適化処理について説明する。ここでいうリソース最適化処理というのは、クライアント14の要求側プロセスからのリクエストに対応するために起動中の仮想サーバ13の数を最適な数とするための処理である。具体的には、リソースが不足していることを検出した場合に仮想サーバ13を起動することで、リソース不足を解消する。本実施の形態は、このリソース最適化処理において仮想サーバ13の平均起動時間経過後に受け付けると予測される提供要求数のサービスを、予め設定されている保証期間内に終了させるのに必要な仮想サーバ13の数を算出することを特徴としている。このリソース最適化処理について図3に示したフローチャートを用いて説明する。この処理は、コントローラ40により定期的、例えば1分間隔で繰り返し実行される。まず、実績情報取得部41は、監視サーバ30から平均処理時間及びリクエスト数を取得するステップ110。平均処理時間というのは、仮想サーバ13におけるサービスの処理時間の平均値のことをいう。サービスの処理時間というのは、より正確には、仮想サーバ13がサービスを提供するために、ロードバランサ20からの指示を受けてからサービス提供プログラムを起動、実行し、その実行結果を返すまでに要した時間である。稼動状況情報に含まれているサービス提供プログラムの実行開始日時情報及び実行終了日時情報からサービスの実行に要した処理時間が得られるので、実績情報提供部32は、稼動状況情報を参照して、ある一定期間内、例えば1分間に提供されたサービスの処理時間の平均値を算出し、この算出した平均処理時間を実績情報としてコントローラ40に提供する。なお、実績情報提供部32は、稼動状況情報を実績情報として提供し、コントローラ40側で平均処理時間を算出してもよい。また、リクエスト数というのは、ロードバランサ20が受け付けたリクエストのうち処理が終了していない現時点におけるリクエストの数である。これは、稼動状況情報を参照し、ある一定期間内、例えば1分間において待機中及び処理中の状態にあるリクエストを積算することで得られる。このリクエスト数は、平均処理時間と同様に実績情報としてコントローラ40に提供される。ここで、クライアント14の要求側プロセスから送られてくる各リクエストを予め設定されている保証期間内に終了させるためには、次の式1を満たす必要がある。ここで、req′は、前述した現時点におけるリクエスト数であり、Seは前述した平均処理時間である。ltは、リクエスト受け付けてから、システム管理者がこの時間までにリクエストに応じたいという時間を示す保証期間である。つまり、保証期間が満たされると、ユーザ要求側プロセスは、リクエストしてから遅くとも保証期間が経過するまでにはサービスが受けられるということである。この保証期間は、システム管理者等によって予め設定される。そして、VM′は、現時点で起動されている仮想サーバ13の数である。これは、仮想サーバ情報記憶部45を参照することで得られる。左辺の第1項では、現在の一定期間内において1台の仮想サーバ13当たり処理しなければならないリクエスト数に平均処理時間を乗算している。つまり、現在到着していてサービスの提供がまだ終了していないリクエストの処理に要する1台当たりの時間である。次の一定期間では、この残りの分のリクエストを処理することになる。左辺の第2項は、次の一定期間内において受け付けるリクエストの処理に要する1台当たりの時間である。これは、この処理時間には、平均処理時間をそのまま利用する。つまり、1台の仮想サーバ13が次の一定期間内において保証期間を保証するためには、式1を満たす必要がある。続いて、算出部42は、平均起動時間を算出するステップ120。平均起動時間というのは、仮想サーバ13の起動に要した時間の平均値のことをいう。平均起動時間は、過去に起動された全起動時間から算出してもよいし、ある一定期間内に起動された仮想サーバ13の起動時間から算出してもよい。起動時間は、仮想サーバ情報記憶部45を参照することで得られる。また、算出部42は、リクエスト増加率を取得するステップ130。リクエスト増加率というのは、ある一定期間内に受け付けたリクエストの数が、その直前の一定期間内に受け付けたリクエストの数に対してどれだけ増加したか、という増加傾向を表す指標値である。リクエスト増加率が1であれば増減無し、1より大きい値となれば増加していることを示している。監視サーバ30における実績情報提供部32は、稼動状況情報から一定期間内に受け付けたリクエストの数の遷移を把握できるので、この遷移が示すリクエストの増加率を算出し、この算出したリクエスト増加率を実績情報としてコントローラ40に提供する。なお、実績情報提供部32は、稼動状況情報を実績情報として提供し、コントローラ40側でリクエスト増加率を算出してもよい。そして、現時点において仮想サーバを起動した場合に、その仮想サーバの起動が終了した時点平均起動時間経過後において到着しているリクエストの予測数を式2を用いて算出するステップ140。ここで、req′′は、仮想サーバ起動終了時点におけるリクエストの予測数である。仮想サーバの起動が終了した時点というのは、現在から平均起動時間経過後の時点で表している。reqは、式1のreq′に相当し、現時点におけるリクエスト数である。従って、reqは、ステップ110においてすでに取得している。Stは平均起動時間であり、ステップ120で算出している。rateは、リクエスト増加率であり、ステップ130で取得している。このようにして、仮想サーバ13が処理すべきリクエストの数の変化、換言すると仮想サーバ13にかかる負荷の変化を予測する。ところで、式2における算出結果は、CPUコアを1つ持つ仮想サーバ13における負荷である。CPUコアを複数持つと、それだけ並列処理が可能となる。従って、式2における算出結果をみかけの仮想サーバ数に換算する。これを式3にて表す。ここで、VM′は、見かけ上の仮想サーバ数であり、式1におけるVM′に相当する。VMは、起動される仮想サーバの数である。coreは、仮想サーバ1台当たりに搭載されているCPUコアの数である。coreは、システム管理者によって指定される。そして、以上の式1~3を統合することによって式4を得る。式4において、左辺のVMは、平均起動時間経過後に受け付けると予測されるリクエストの数のサービスを、保証期間lt内に終了させるのに必要な仮想サーバ13の数である。算出部42は、式4に示したように、平均処理時間及び平均起動時間という仮想サーバ13の稼動状況の実績に用いて平均起動時間経過後に必要な仮想サーバ13の数を算出するステップ150。右辺の値が例えば3.2だとすると、この式4から必要な数は4以上ということになる。ここで、現在起動されている仮想サーバ13の数が1~3台であれば、平均起動時間経過後に必要な仮想サーバ13の数に達していないのでステップ160でN、仮想サーバ起動部43は、起動されている仮想サーバ13の数を4台にするために、3~1台の仮想サーバ13を起動するステップ170。本実施の形態では、このように平均起動時間経過後に必要な仮想サーバ13の数を予測し、その予測した数の仮想サーバ13を確保するために現時点で仮想サーバ13の起動を実行する。一方、平均起動時間経過後に必要な仮想サーバ13の数をすでに起動していればステップ160でY、仮想サーバ13を新たに起動する必要はない。もし、5台以上の仮想サーバ13を起動しているのであれば、4台に減らすために仮想サーバ13を停止させてもよい。本実施の形態では、このようにして仮想サーバ13の数の最適化を図っている。"