"複数の仮想計算機を少なくとも1以上の物理計算機に割り当てを行う仮想計算機割り当てシステムであって、前記各仮想計算機の資源使用量を所定時間ごとに計測する資源使用料計測手段と、前記各物理計算機の資源量の情報を記憶する記憶手段と、前記各仮想計算機の資源使用量の時刻ごとの和が前記記憶手段に記憶された前記物理計算機の資源量を超えず、且つ、前記物理計算機の数が最小になるように、前記複数の仮想計算機を前記物理計算機に割り当てる仮想計算機割り当て決定手段と、を備える仮想計算機割り当てシステム。前記複数の仮想計算機を前記物理計算機に割り当てた結果を出力する出力手段を更に備える、請求項1に記載の仮想計算機割り当てシステム。前記仮想計算機の資源使用量は、CPUの使用率、及び記憶装置の使用量を含む、請求項1又は請求項2に記載の仮想計算機割り当てシステム。複数の仮想計算機を少なくとも1以上の物理計算機に割り当てを行う仮想計算機割り当て方法であって、前記各仮想計算機の資源使用量を所定時間ごとに計測する段階と、前記各物理計算機の資源量の情報を記憶する段階と、前記各仮想計算機の資源使用量の時刻ごとの和が前記記憶手段に記憶された前記物理計算機の資源量を超えず、且つ、前記物理計算機の数が最小になるように、前記複数の仮想計算機を前記物理計算機に割り当てを決定する段階と、を備える仮想計算機割り当て方法。しかし、特許文献1に記載の技術では、例えば、仮想計算機A,B,Cのぞれぞれの想定リソース量が、仮想計算機A0時~12時のリソース量50、12時~24時のリソース量0、仮想計算機B0時~12時のリソース量50、12時~24時のリソース量0、及び仮想計算機C0時~12時のリソース量0、12時~24時のリソース量60であった場合、仮想計算機A,B,Cの必要リソース量の合計は160となり、これは物理計算機のリソース量の100を超えてしまうため、負荷が時間帯によって異なるにも関わらず、仮想計算機A,B,Cを1つの物理計算機に割り当てることができないという問題があった。また、特許文献2に記載の技術では、時々刻々と変化する各仮想計算機の負荷に応じて、各仮想計算機に割り当てるリソースを変更するものであるが、物理計算機への仮想計算機集約台数の最大化を実現できるものではない。そこで、本発明は、かかる事情に鑑みてなされたものであり、物理計算機への仮想計算機集約台数の最大化を図り、1つの物理計算機に対して複数の仮想計算機の割り当てを効率よく実現する新しい仮想計算機割り当てシステム等を提供することを目的とする。本発明による仮想計算機割り当てシステムは、複数の仮想計算機を少なくとも1以上の物理計算機に割り当てを行う仮想計算機割り当てシステムであって、前記各仮想計算機の資源使用量を所定時間ごとに計測する資源使用料計測手段と、前記各物理計算機の資源量の情報を記憶する記憶手段と、前記各仮想計算機の資源使用量の時刻ごとの和が前記記憶手段に記憶された前記物理計算機の資源量を超えず、且つ、前記物理計算機の数が最小になるように、前記複数の仮想計算機を前記物理計算機に割り当てる仮想計算機割り当て決定手段と、を備える。本発明による仮想計算機割り当て方法は、複数の仮想計算機を少なくとも1以上の物理計算機に割り当てを行う仮想計算機割り当て方法であって、前記各仮想計算機の資源使用量を所定時間ごとに計測する段階と、前記各物理計算機の資源量の情報を記憶する段階と、前記各仮想計算機の資源使用量の時刻ごとの和が前記記憶手段に記憶された前記物理計算機の資源量を超えず、且つ、前記物理計算機の数が最小になるように、前記複数の仮想計算機を前記物理計算機に割り当てを決定する段階と、を備える。以上のように構成された本発明の仮想計算機割り当てシステム等によれば、負荷の高い仮想計算機と負荷の低い仮想計算機を、同じ物理計算機に割り当てできるため、各仮想計算機をより少ない数の物理計算機で効率的に実行することができる。また、経験者が勘と経験で推論し割り当てを行うよりも効率的に割り当てを行うことができるため、自動的、且つ、人手によらない運用が可能であり、人件費等のコストを抑えることができる。以下、本発明を実施するための好適な実施形態を、図面を参照しながら説明する。図1は、本発明の実施形態の仮想計算機割り当てシステム以下、単にシステムと称する100の概略構成の一例を示す図である。システム100は、図1に示すとおり、複数の物理計算機1、補助記憶装置2、データ処理装置3、記憶装置4、及び出力装置5を含んで構成される。物理計算機1は、該物理計算機1上で動作している1以上の仮想計算機101の資源使用量を計測する資源使用量計測プログラム11の処理を実行可能な装置である。資源使用量計測プログラム資源使用量計測手段11は、仮想計算機101ごとの資源使用量を、日付、時刻ごとに補助記憶装置2に記録する処理を行う。なお、本実施形態における資源使用量とは、例えば、CPUの使用率、主記憶の使用量とする。補助記憶装置2は、資源使用量計測プログラム11により、上述の仮想計算機101ごとの資源使用量を、日付、時刻ごとに記録するデータベースである。記憶装置4は、仮想計算機一覧データ41及び物理計算機1の資源量一覧データ42を記憶するデータベース記憶手段である。データ処理装置3は、仮想計算機割り当て決定プログラム仮想計算機割り当て決定手段31の処理を実行可能な装置である。仮想計算機割り当て決定プログラム31は、動作させる必要のある仮想計算機101を仮想計算機一覧41から取得し、各物理計算機1に割り当てる処理を行うものであって、1補助記憶装置2に記録されている各仮想計算機101の資源使用量の時刻ごとの和が、物理計算機1の資源量を超えないこと、2使用する物理計算機1の数が最小になること、の2つの条件を満たすように処理を行うことができる。また、仮想計算機割り当て決定プログラム31は、得られた仮想計算機の割り当て結果を、画面やファイルなどの出力装置5に出力する処理を実行するようにできる。出力装置5は、仮想計算機の割り当て結果をユーザに対して表示可能な出力手段であり、例えば、ディスプレイ等の表示装置や、印刷装置である。以下、図2に示すフローチャートを参照して、本実施形態の仮想計算機割り当て方法仮想計算機割り当て決定プログラム31の動作処理を説明する。なお、図2のフローチャートで示される各処理は、処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。仮想計算機割り当てプログラム31の動作処理の前処理として、資源使用量計測プログラム11により、各仮想計算機101の資源使用量を計測し、補助記憶装置2に記録する処理が実行される。この記録は、仮想計算機ごと、日付、時刻ごとに行われる。例えば、動作させる仮想計算機の数をMMは自然数とし、計測の間隔を1分とすると、図3に示すような情報が記録される。仮想計算機割り当て決定プログラム31は、次に記述するようなステップで、各物理計算機1の資源量を超えない範囲で、且つ、必要な物理計算機の数が最小となるような仮想計算機の割り当て方を決定する。物理計算機1の数をNとすると、物理計算機資源量一覧42には、図4に示すように、物理計算機1ごとにCPU資源量及び主記憶資源量が記録されている。まず、仮想計算機一覧41から仮想計算機の一覧を取得するステップA1。具体的には、例えば、取得した仮想計算機の一覧をVM<VM={仮想計算機101-1、仮想計算機101-2、...、仮想計算機101-M}>と表すことができる。次いで、物理計算機資源量一覧42から物理計算機の一覧と各物理計算機の資源量を取得するステップA2。次いで、物理計算機と仮想計算機の割り当てを表す一時割り当て表を初期化するステップA3。一時割り当て表は、例えば、図5に示すように、物理計算機と仮想計算機の対応関係割り当てを表しており、初期化直後は、各物理計算機に対して割り当てるべき仮想計算機の情報がリセットされる図5に示す全ての列が空であることは、すべての物理計算機に、1つも仮想計算機が割り当てられていないことを表している。次いで、一時割り当て表と仮想計算機一覧VMを引数にして、割り当て探索サブルーチンを実行するステップA4。ここで、割り当て探索サブルーチンとは、引数の一時割り当て表と、仮想計算機一覧41と、物理計算機資源量一覧42と、補助記憶装置2に記録されている過去の資源使用量とから、次の12の条件を満たす仮想計算機の割り当て方を結果として返すステップA5。1補助記憶装置2に記録されている各仮想計算機101の資源使用量の時刻毎の和が、物理計算機の資源量を超えない。2使用する物理計算機1の数が最小となる。上記の条件を満たす割り当てができる場合にはステップA5:Yes、その割り当て方を出力するステップA6。一方、上記割り当てができない場合にはステップA5:No、割り当て探索サブルーチンは、割り当て方が無いという結果割り当て不可能であうことを出力を返してくるステップA7。ここで、割り当て探索サブルーチンについて、図6-図10を参照して説明する。割り当て探索サブルーチンは、再帰的アルゴリズムで仮想計算機の割り当て方を探索する。割り当て探索サブルーチンが呼び出されるとき、1仮想計算機一覧41、2一時割り当て表、の引数を受け取る。なお、図6-図10のフローチャートで示される各処理は、処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。まず、図6に示すように、引数の仮想計算機一覧41に、仮想計算機が1つ以上あるか否かを確認するステップB1。仮想計算機が1つも無い場合はステップB1:No、図10に示すように、ステップB99の処理で条件を満たす割り当て方が見つかったことを示す値と、引数の一時割り当て表の値を返して、処理を終了する。次いで、引数の仮想計算機一覧から1つ仮想計算機を選択するステップB2。なお、選択した仮想計算機をVtとし、仮想計算機一覧からVtを取り除いたものをVi-1とする。次いで、条件を満たす仮想計算機の割り当てを発見したことを示す発見フラグフラグF1をオフにするステップB3。次いで、引数の一時割り当て表の先頭行から物理計算機を1つ選択するステップB4。なお、選択した物理計算機をPtとする。次いで、引数の一時割り当て表、仮想計算機Vt、物理計算機Ptを引数にして、資源使用量検査サブルーチンを呼ぶステップB5。資源使用量検査サブルーチンは、一時割り当て表の物理計算機Ptの行に登録されている各仮想計算機と仮想計算機Vtの資源使用量を、補助記憶装置2から読み取り、時刻別にとった和が、物理計算機資源量一覧42の物理資源量を超えていないことを検査するステップB6。検査した結果、資源量を超えていなければOKを返し、資源量を超えていれば、NGを返す。なお、資源使用量検査サブルーチンの具体的な動作処理は後述する。検査結果がNGであればステップB6:NG、ステップB13に進む。一方、検査結果がOKであればステップB6:OK、図7に示すように、局所変数一時割り当て表Wに、引数の一時割り当て表を複写するステップB7。次いで、局所変数一時割り当て表Wに仮想計算機Vtを追加するステップB8。ここで、追加する行は物理計算機Ptであり、列は空のものである。次いで、割り当て探索サブルーチンを実行するステップB9。これは、再帰呼び出し実行させる。引数には、局所変数一時割り当て表Wと、仮想計算機の一覧Vi-1を指定して呼び出す。割り当て方が見つかった場合は、返ってきた割り当て表をTとする。次いで、割り当て方が見つかったか否かを判定しステップB10、見つかった場合はステップB10:Yes、ステップB11に進み、見つからなかった場合はステップB10:No、ステップB13に進み、次の物理計算機について処理を実行する。次いで、フラグF1がONか否かを検査するステップB11。フラグF1がOFFの場合はステップB11:No、表Tから局所変数Xに複写するステップB12。局所変数Xは、このサブルーチンの戻り値候補である。また、割り当て表Xで、列に仮想計算機名が設定されている行数を局所変数Npに代入する。局所変数Npは、割り当て表Xの時に、使用している物理計算機の数である。次いで、図8に示すように、すべての物理計算機について実行したか否かを検査するステップB13。すべての物理計算機について実行が終了している場合にはステップB13:Yes、フラグF1がONか否かを検査するステップB14。フラグF1がONならばステップB14:Yes、局所変数Xの値が、目的とする仮想計算機の割り当て方なので、この値と割り当て方が見つかったことを戻り値として処理を終了するステップB15。一方、フラグF1がOFFの場合はステップB14:No、割り当て方が見つからなかったことを戻り値とするステップB17。ここで、ステップB13の処理で、未だ実行していない物理計算機がある場合はステップB13:No、次の行の物理計算機をPtとしてステップB16、ステップB5に戻る。また、ステップB11の処理で、フラグF1がONだった場合はステップB11:No、図9に示すように、戻り値の仮想計算機割り当て表Tで使用している物理計算機の数が、局所変数Npより小さいか否かを検査するステップB18。使用している物理計算機の数が局所変数Npより小さい場合ステップB18:Yes、表Tから局所変数Xに複写し、また、割り当て表Xで、列に仮想計算機名が設定されている行数を局所変数Npに代入するステップB19。次いで、すべての物理計算機について処理をするためステップB12に進む。次に、資源使用量検査サブルーチンについて、図11を参照して説明する。なお、図11のフローチャートで示される各処理は、処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。引数で渡された物理計算機Ptと、引数で渡された一時割り当て表を参照し、引数で渡された物理計算機Ptに割り当てられている仮想計算機を決定する。この0個以上の仮想計算機と引数で渡された仮想計算機Vtの資源使用量を補助記憶装置2から取得するステップC1。このとき、もっとも古い時刻の情報を取得するものとし、情報が無い仮想計算機の資源使用量は0とする。次いで、ステップC1の処理で取得した資源使用量の和を求めるステップC2。次いで、物理計算機資源量一覧42から、引数で渡された物理計算機の資源量を取得するステップC3。次いで、ステップC1の処理で求めた過去の資源使用量の和が物理計算機の各資源量より大きいか否かを検査するステップC4。1つでも、物理計算機の資源量以下でない場合はステップC4:No、戻り値をNGとしてステップC8、本フローの処理を終了する。一方、物理計算機の資源量以下である場合はステップC4:Yes、補助記憶装置2のすべての過去の資源使用量を検査したか否かを調べるステップC5。すべての資源使用量が検査済みならばステップC5:Yes、戻り値をOKとして終了するステップC7。一方、すべての資源使用量が検査済みでなければステップC5:No、次の時刻の資源使用量を補助記憶装置2から取得しステップC6、ステップC2の処理に移る。なお、取得する資源使用量は、ステップC1の処理と同様、引数で渡された物理計算機Ptと、引数で渡された物理計算機Ptに割り当てられている仮想計算機と、引数で渡された仮想計算機Vtの資源使用量である。引数で渡された物理計算機Ptに割り当てられている仮想計算機は、引数で渡された一時割り当て表により決定できる。以上のステップにより、図12に示す、物理計算機と仮想計算機の対応表が得られる。この表から、必要な物理計算機の数と、各物理計算機への仮想計算機の割り当て方がわかる。運用担当者は、現在の仮想計算機の割り当て方と、出力された割り当て方を比較して、必要な物理計算機の数が少なくてすむ等の理由で新しく出力された割り当て方を選ぶかどうかを決定することができる。また、以上のステップを1か月毎等、定期的に実行し、物理計算機への仮想計算機の割り当てを見直すことで、効率的な数の物理計算機で運用することが可能となる。以上、本実施形態の仮想計算機割り当て方法によれば、以下の効果を奏する。第1の効果は、負荷の高い仮想計算機と負荷の低い仮想計算機を、同じ物理計算機に割り当てできることである。これにより、各仮想計算機の最高負荷時の資源使用量だけを基に割り当て方を決める場合よりも、各仮想計算機をより少ない数の物理計算機で効率的に実行することができる。第2の効果は、経験者が勘と経験で推論し割り当てを行うよりも効率的に割り当てを行うことができることである。その結果、自動的、且つ、人手によらない運用が可能であり、人件費等のコストを抑えることができる。<変形例>以上のように本発明の好適な実施形態について説明したが、本発明は、以上の実施形態に限定されるべきものではなく、特許請求の範囲に表現された思想および範囲を逸脱することなく、種々の変形、追加、および省略が当業者によって可能である。例えば、上述した本実施形態では、資源としてCPU使用率と主記憶使用量を使用したが、本発明はこれに限られず、例えば、磁気ディスク装置、ネットワーク装置等の他の資源使用量を追加することで、よりシステムに適合した割り当てを実現することができる。上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。付記1複数の仮想計算機を少なくとも1以上の物理計算機に割り当てを行う仮想計算機割り当てシステムであって、前記各仮想計算機の資源使用量を所定時間ごとに計測する資源使用料計測手段と、前記各物理計算機の資源量の情報を記憶する記憶手段と、前記各仮想計算機の資源使用量の時刻ごとの和が前記記憶手段に記憶された前記物理計算機の資源量を超えず、且つ、前記物理計算機の数が最小になるように、前記複数の仮想計算機を前記物理計算機に割り当てる仮想計算機割り当て決定手段と、を備える仮想計算機割り当てシステム。付記2前記複数の仮想計算機を前記物理計算機に割り当てた結果を出力する出力手段を更に備える、付記1に記載の仮想計算機割り当てシステム。付記3前記仮想計算機の資源使用量は、CPUの使用率、及び記憶装置の使用量を含む、付記1又は付記2に記載の仮想計算機割り当てシステム。付記4複数の仮想計算機を少なくとも1以上の物理計算機に割り当てを行う仮想計算機割り当て方法であって、前記各仮想計算機の資源使用量を所定時間ごとに計測する段階と、前記各物理計算機の資源量の情報を記憶する段階と、前記各仮想計算機の資源使用量の時刻ごとの和が前記記憶手段に記憶された前記物理計算機の資源量を超えず、且つ、前記物理計算機の数が最小になるように、前記複数の仮想計算機を前記物理計算機に割り当てを決定する段階と、を備える仮想計算機割り当て方法。"