(57)【特許請求の範囲】
【請求項１】
他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の、前記他の装置との双方向通信により前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値がしきい値以下、かつ、前記所定の時間までの演算処理装置使用率の予測値がしきい値以下となる前記仮想マシン群を割当装置から受け付ける受付部と、
前記受付部によって受け付けられた前記仮想マシン群の配置先を、演算処理装置の処理能力内に収まるよう複数の演算処理装置の中のいずれかの演算処理装置に決定する決定部と、
前記複数の演算処理装置のうち前記決定部によって配置先に決定された演算処理装置に、前記仮想マシン群を割り当てる割当部と、
前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように制御する制御部と、を有し、
前記決定部は、
前記第１種類の仮想マシンが前記複数の演算処理装置のいずれかの演算処理装置に配置済みである場合、前記第２種類の仮想マシンの配置先を、前記第１種類の仮想マシンが配置済みの演算処理装置に決定することを特徴とする情報処理装置。
【請求項２】
他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の、前記他の装置との双方向通信により前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値がしきい値以下、かつ、前記所定の時間までの演算処理装置使用率の予測値がしきい値以下となる前記仮想マシン群を割当装置から受け付ける受付部と、
前記受付部によって受け付けられた前記仮想マシン群の配置先を、演算処理装置の処理能力内に収まるよう複数の演算処理装置の中のいずれかの演算処理装置に決定する決定部と、
前記複数の演算処理装置のうち前記決定部によって配置先に決定された演算処理装置に、前記仮想マシン群を割り当てる割当部と、
前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように制御する制御部と、を有し、
前記決定部は、
前記第２種類の仮想マシンが前記複数の演算処理装置のいずれかの演算処理装置に配置済みである場合、前記第１種類の仮想マシンの配置先を、前記第２種類の仮想マシンが配置済みの演算処理装置に決定することを特徴とする情報処理装置。
【請求項３】
サーバ群の中から、他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の割当先を選択する選択部と、
前記仮想マシン群を同一のサーバに割り当てた場合の前記仮想マシン群の演算処理装置使用率に基づく、前記他の装置との双方向通信により前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値、および、前記所定の時間までの演算処理装置使用率の予測値を取得する取得部と、
前記取得部によって取得された前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値が、前記選択部によって選択されたサーバの演算処理装置数に基づくしきい値以下、かつ、前記取得部によって取得された前記所定の時間までの演算処理装置使用率の予測値が、前記選択部によって選択されたサーバの演算処理装置数に基づくしきい値以下であるか否かを判断する判断部と、
前記判断部によって、前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値がしきい値以下、かつ、前記所定の時間までの演算処理装置使用率の予測値がしきい値以下と判断された場合、前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように、前記選択されたサーバに前記仮想マシン群を割り当てる割当部と、を有し、
前記選択部は、
前記第１種類の仮想マシンが配置済みであるサーバを選択し、
前記割当部は、
前記選択されたサーバに、前記第２種類の仮想マシンを割り当てることを特徴とする割当装置。
【請求項４】
前記サーバ群に配置済みの前記第２種類の仮想マシン群の中から、予測残存実行時間が最長の前記第２種類の仮想マシンを特定する特定部を有し、
前記選択部は、
前記特定部によって特定された予測残存実行時間が最長の前記第２種類の仮想マシンが配置済みのサーバ以外であって、かつ、前記第１種類の仮想マシンが配置済みであるサーバを選択することを特徴とする請求項３に記載の割当装置。
【請求項５】
サーバ群の中から、他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の割当先を選択する選択部と、
前記仮想マシン群を同一のサーバに割り当てた場合の前記仮想マシン群の演算処理装置使用率に基づく、前記他の装置との双方向通信により前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値、および、前記所定の時間までの演算処理装置使用率の予測値を取得する取得部と、
前記取得部によって取得された前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値が、前記選択部によって選択されたサーバの演算処理装置数に基づくしきい値以下、かつ、前記取得部によって取得された前記所定の時間までの演算処理装置使用率の予測値が、前記選択部によって選択されたサーバの演算処理装置数に基づくしきい値以下であるか否かを判断する判断部と、
前記判断部によって、前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値がしきい値以下、かつ、前記所定の時間までの演算処理装置使用率の予測値がしきい値以下と判断された場合、前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように、前記選択されたサーバに前記仮想マシン群を割り当てる割当部と、を有し、
前記選択部は、
前記第２種類の仮想マシンが配置済みであるサーバを選択し、
前記割当部は、
前記選択されたサーバに、前記第１種類の仮想マシンを割り当てることを特徴とする割当装置。
【請求項６】
前記サーバ群のうちいずれの仮想マシンも割り当てられていないサーバの消費電力が低下するように制御する制御部を備えることを特徴とする請求項３〜５のいずれか一つに記載の割当装置。
【請求項７】
コンピュータが、
他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の、前記他の装置との双方向通信により前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値がしきい値以下、かつ、所定の時間までの演算処理装置使用率の予測値がしきい値以下となる前記仮想マシン群を割当装置から受け付け、
受け付けられた前記仮想マシン群の配置先を、演算処理装置の処理能力内に収まるよう複数の演算処理装置の中のいずれかの演算処理装置に決定し、
前記複数の演算処理装置のうち配置先に決定された演算処理装置に、前記仮想マシン群を割り当て、
前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように制御する、処理を実行し、
前記決定する処理は、
前記第１種類の仮想マシンが前記複数の演算処理装置のいずれかの演算処理装置に配置済みである場合、前記第２種類の仮想マシンの配置先を、前記第１種類の仮想マシンが配置済みの演算処理装置に決定することを特徴とする情報処理方法。
【請求項８】
コンピュータが、
他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の、前記他の装置との双方向通信により前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値がしきい値以下、かつ、所定の時間までの演算処理装置使用率の予測値がしきい値以下となる前記仮想マシン群を割当装置から受け付け、
受け付けられた前記仮想マシン群の配置先を、演算処理装置の処理能力内に収まるよう複数の演算処理装置の中のいずれかの演算処理装置に決定し、
前記複数の演算処理装置のうち配置先に決定された演算処理装置に、前記仮想マシン群を割り当て、
前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように制御する、処理を実行し、
前記決定する処理は、
前記第２種類の仮想マシンが前記複数の演算処理装置のいずれかの演算処理装置に配置済みである場合、前記第１種類の仮想マシンの配置先を、前記第２種類の仮想マシンが配置済みの演算処理装置に決定することを特徴とする情報処理方法。
【請求項９】
コンピュータが、
サーバ群の中から、他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の割当先を選択し、
前記仮想マシン群を同一のサーバに割り当てた場合の前記仮想マシン群の演算処理装置使用率に基づく、前記他の装置との双方向通信により前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値、および、前記所定の時間までの演算処理装置使用率の予測値を取得し、
取得された前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値が、選択されたサーバの演算処理装置数に基づくしきい値以下、かつ、取得された前記所定の時間までの演算処理装置使用率の予測値が、選択されたサーバの演算処理装置数に基づくしきい値以下であるか否かを判断し、
前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値がしきい値以下、かつ、前記所定の時間までの演算処理装置使用率の予測値がしきい値以下と判断された場合、前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように、前記選択されたサーバに前記仮想マシン群を割り当てる、処理を実行し、
前記選択する処理は、
前記第１種類の仮想マシンが配置済みであるサーバを選択し、
前記割り当てる処理は、
前記選択されたサーバに、前記第２種類の仮想マシンを割り当てることを特徴とする割当方法。
【請求項１０】
コンピュータが、
サーバ群の中から、他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の割当先を選択し、
前記仮想マシン群を同一のサーバに割り当てた場合の前記仮想マシン群の演算処理装置使用率に基づく、前記他の装置との双方向通信により前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値、および、前記所定の時間までの演算処理装置使用率の予測値を取得し、
取得された前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値が、選択されたサーバの演算処理装置数に基づくしきい値以下、かつ、取得された前記所定の時間までの演算処理装置使用率の予測値が、選択されたサーバの演算処理装置数に基づくしきい値以下であるか否かを判断し、
前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値がしきい値以下、かつ、前記所定の時間までの演算処理装置使用率の予測値がしきい値以下と判断された場合、前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように、前記選択されたサーバに前記仮想マシン群を割り当てる、処理を実行し、
前記選択する処理は、
前記第２種類の仮想マシンが配置済みであるサーバを選択し、
前記割り当てる処理は、
前記選択されたサーバに、前記第１種類の仮想マシンを割り当てることを特徴とする割当方法。
【請求項１１】
コンピュータに、
他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の、前記他の装置との双方向通信により前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値がしきい値以下、かつ、所定の時間までの演算処理装置使用率の予測値がしきい値以下となる前記仮想マシン群を割当装置から受け付け、
受け付けられた前記仮想マシン群の配置先を、演算処理装置の処理能力内に収まるよう複数の演算処理装置の中のいずれかの演算処理装置に決定し、
前記複数の演算処理装置のうち配置先に決定された演算処理装置に、前記仮想マシン群を割り当て、
前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように制御する、処理を実行させ、
前記決定する処理は、
前記第１種類の仮想マシンが前記複数の演算処理装置のいずれかの演算処理装置に配置済みである場合、前記第２種類の仮想マシンの配置先を、前記第１種類の仮想マシンが配置済みの演算処理装置に決定することを特徴とする情報処理プログラム。
【請求項１２】
コンピュータに、
他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の、前記他の装置との双方向通信により前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値がしきい値以下、かつ、所定の時間までの演算処理装置使用率の予測値がしきい値以下となる前記仮想マシン群を割当装置から受け付け、
受け付けられた前記仮想マシン群の配置先を、演算処理装置の処理能力内に収まるよう複数の演算処理装置の中のいずれかの演算処理装置に決定し、
前記複数の演算処理装置のうち配置先に決定された演算処理装置に、前記仮想マシン群を割り当て、
前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように制御する、処理を実行させ、
前記決定する処理は、
前記第２種類の仮想マシンが前記複数の演算処理装置のいずれかの演算処理装置に配置済みである場合、前記第１種類の仮想マシンの配置先を、前記第２種類の仮想マシンが配置済みの演算処理装置に決定することを特徴とする情報処理プログラム。
【請求項１３】
コンピュータに、
サーバ群の中から、他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の割当先を選択し、
前記仮想マシン群を同一のサーバに割り当てた場合の前記仮想マシン群の演算処理装置使用率に基づく、前記他の装置との双方向通信により前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値、および、前記所定の時間までの演算処理装置使用率の予測値を取得し、
取得された前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値が、選択されたサーバの演算処理装置数に基づくしきい値以下、かつ、取得された前記所定の時間までの演算処理装置使用率の予測値が、選択されたサーバの演算処理装置数に基づくしきい値以下であるか否かを判断し、
前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値がしきい値以下、かつ、前記所定の時間までの演算処理装置使用率の予測値がしきい値以下と判断された場合、前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように、前記選択されたサーバに前記仮想マシン群を割り当てる、処理を実行させ、
前記選択する処理は、
前記第１種類の仮想マシンが配置済みであるサーバを選択し、
前記割り当てる処理は、
前記選択されたサーバに、前記第２種類の仮想マシンを割り当てることを特徴とする割当プログラム。
【請求項１４】
コンピュータに、
サーバ群の中から、他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の割当先を選択し、
前記仮想マシン群を同一のサーバに割り当てた場合の前記仮想マシン群の演算処理装置使用率に基づく、前記他の装置との双方向通信により前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値、および、前記所定の時間までの演算処理装置使用率の予測値を取得し、
取得された前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値が、選択されたサーバの演算処理装置数に基づくしきい値以下、かつ、取得された前記所定の時間までの演算処理装置使用率の予測値が、選択されたサーバの演算処理装置数に基づくしきい値以下であるか否かを判断し、
前記第１種類の仮想マシンが高負荷になったときの演算処理装置使用率の予測値がしきい値以下、かつ、前記所定の時間までの演算処理装置使用率の予測値がしきい値以下と判断された場合、前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように、前記選択されたサーバに前記仮想マシン群を割り当てる、処理を実行させ、
前記選択する処理は、
前記第２種類の仮想マシンが配置済みであるサーバを選択し、
前記割り当てる処理は、
前記選択されたサーバに、前記第１種類の仮想マシンを割り当てることを特徴とする割当プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、割当装置、情報処理方法、割当方法、情報処理プログラムおよび割当プログラムに関する。
【背景技術】
【０００２】
従来、サーバルーム内のサーバに割り当てられた複数のＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）をまとめて、いずれかのサーバの１つのプロセッサに割り当て直すことにより、サーバルームで稼働中のサーバ数を減少させる技術がある（例えば、下記特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−８８２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、プロセッサが複数のＶＭを実行可能な状態であれば、ＶＭの種類について考慮されずに、当該プロセッサが複数のＶＭを実行することになる。そのため、複数のＶＭ間での競合により、ＶＭの性能が低下する場合がある。ＶＭの性能が低下すると、ＶＭの提供者とＶＭの利用者との間の契約によりＳＬＡ（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ）に規定された応答性能が確保できなくなる場合がある。これにより、ネットワーク上での取引などの場面で、ＶＭの応答性能が低下し、取引が失敗する場合がある。一方、ＶＭの提供者は、ＳＬＡ違反によりＶＭの利用者に補償しなければならない場合がある。
【０００５】
本発明は、ＶＭの性能低下を抑制することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の演算処理装置使用率の予測値がしきい値以下となる仮想マシン群を割当装置から受け付け、受け付けられた仮想マシン群の配置先を、演算処理装置の処理能力内に収まるよう複数の演算処理装置の中のいずれかの演算処理装置に決定し、複数の演算処理装置のうち配置先に決定された演算処理装置に、仮想マシン群を割り当て、第１種類の仮想マシンを第２種類の仮想マシンよりも優先して実行するように制御する情報処理装置、情報処理方法、情報処理プログラムが提案される。
【０００７】
また、本発明の一側面によれば、サーバ群の中から、他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の割当先を選択し、仮想マシン群を同一のサーバに割り当てた場合の仮想マシン群の演算処理装置使用率に基づく演算処理装置使用率の予測値を取得し、取得された予測値が、選択されたサーバの演算処理装置数に基づくしきい値以下であるか否かを判断し、しきい値以下と判断された場合、第１種類の仮想マシンを第２種類の仮想マシンよりも優先して実行するように、選択されたサーバに仮想マシン群を割り当てる割当装置、割当方法、および割当プログラムが提案される。
【発明の効果】
【０００８】
本発明の一側面によれば、ＶＭの性能低下を抑制することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、割当装置による情報処理装置へのＶＭの割り当ての内容を示す説明図である。
【図２】図２は、システム構成例を示す説明図である。
【図３】図３は、コンピュータのハードウェア構成例を示すブロック図である。
【図４】図４は、サーバルーム構造情報の記憶内容の一例を示す説明図である。
【図５】図５は、ＶＭ個数情報の記憶内容の一例を示す説明図である。
【図６】図６は、実行可能最大ＶＭ数テーブルの記憶内容の一例を示す説明図である。
【図７】図７は、ＶＭ消費電力テーブルの記憶内容の一例を示す説明図である。
【図８】図８は、ベース消費電力テーブルの記憶内容の一例を示す説明図である。
【図９】図９は、スケーリング情報の記憶内容の一例を示す説明図である。
【図１０】図１０は、ＶＭ配置テーブルの記憶内容の一例を示す説明図である。
【図１１】図１１は、電源テーブルの記憶内容の一例を示す説明図である。
【図１２】図１２は、ラック状態テーブルの記憶内容の一例を示す説明図である。
【図１３】図１３は、初期配置テーブルの記憶内容の一例を示す説明図である。
【図１４】図１４は、ＵＰＳテーブルの記憶内容の一例を示す説明図である。
【図１５】図１５は、割当対象ＶＭテーブルの記憶内容の一例を示す説明図である。
【図１６】図１６は、配置済みＶＭテーブルの記憶内容の一例を示す説明図である。
【図１７】図１７は、制御サーバ１００の機能的構成例を示すブロック図である。
【図１８】図１８は、サーバＳの機能的構成例を示すブロック図である。
【図１９】図１９は、制御サーバ１００によるサーバＳへのＶＭの割当結果の一例を示す説明図（その１）である。
【図２０】図２０は、制御サーバ１００によるサーバＳへのＶＭの割当結果の一例を示す説明図（その２）である。
【図２１】図２１は、割当処理の詳細な処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、この発明にかかる情報処理装置、割当装置、情報処理方法、割当方法、情報処理プログラムおよび割当プログラムの実施の形態を詳細に説明する。以下では、情報処理装置としてサーバルーム内のサーバを採用し、割当装置としてサーバにＶＭを割り当てる制御サーバを採用する。
【００１１】
ここで、サーバに割り当てられるＶＭには、例えば、クライアントとの対話型である証券取引用のＶＭや、クライアントとの対話型ではない売上データの集計用のＶＭがある。対話型のＶＭのＣＰＵ利用率は、クライアントからの通信頻度や通信タイミングに依存するため、ＣＰＵ利用率のピークの変動が大きく、かつ、変動のタイミングがランダムである。このような異なる種類のＶＭが同一サーバに割り当てられると、例えば、対話型のＶＭのＣＰＵ利用率が高いときでも売上データの集計用のＶＭが一定のＣＰＵリソースを利用するため、サーバのリソースが逼迫する。
【００１２】
その結果、証券取引用のＶＭの性能が低下して、例えば、クライアントとの通信ができなくなることにより証券取引が失敗する場合がある。また、証券取引用のＶＭにＣＰＵリソースが高いＣＰＵ利用率で使用され続けると、売上データの集計用のＶＭが規定の終了時刻までに終了せず、クライアントが集計結果を利用できずに不利益を被る場合がある。
【００１３】
本実施の形態の制御サーバは、証券取引用のＶＭの性能が低下しない条件、および売上データの集計用のＶＭが規定終了時刻までに終了する条件、の両方を満たすサーバに、各々のＶＭを割り当てる。そして、当該サーバは、割り当てられた各々のＶＭを１つのＣＰＵにより実行する。この場合、当該サーバは、証券取引用のＶＭを、売上データの集計用のＶＭよりも優先して実行するようにする。
【００１４】
これにより、サーバは、ＣＰＵリソースを効率よく利用することができる。例えば、証券取引用のＶＭが高負荷の場合、サーバは、売上データの集計用のＶＭが利用していたＣＰＵリソースを証券取引用のＶＭに利用させ、証券取引用のＶＭの性能を低下させずに実行することができる。また、サーバは、売上データの集計用のＶＭが規定終了時刻までに終了する条件を満たすため、証券取引用のＶＭを優先して実行しても、売上データの集計用のＶＭを規定終了時刻までに終了させることができる。
【００１５】
また、複数のＶＭを１台のサーバに割り当てた結果、ＶＭが割り当てられていないサーバがあれば、当該サーバへの電力供給を停止して、サーバルームの消費電力を低減することができる。従って、サーバルーム内の稼働中のサーバが減少し、サーバルームの消費電力が低減される。
【００１６】
図１は、割当装置による情報処理装置へのＶＭの割り当ての内容を示す説明図である。図１において、制御サーバ１００は、ＶＭが割り当てられたサーバＳの台数が少なくなるように、ＶＭをサーバＳに割り当てるコンピュータである。ＶＭには、他の装置（例えばクライアント）と双方向通信により所定の処理を実行するＶＭや、規定終了時刻が設定された定型処理を実行するＶＭがある。
【００１７】
以下では、他の装置と双方向通信により所定の処理を実行するＶＭを「オンラインＶＭ」と称す。オンラインＶＭには、例えば、上述した証券取引を行うＶＭがある。また、定型処理を実行するＶＭを「バッチＶＭ」と称す。バッチＶＭには、例えば、上述した売上データの集計を行うＶＭがある。
【００１８】
ここで、オンラインＶＭは、クライアントと双方向通信により処理を実行するため、オンラインＶＭの性能低下が起こると、クライアントからの要求に対する処理やクライアントへの応答が遅れる場合がある。これにより、クライアントの利用者が不利益を被ったり、ＳＬＡ違反が生じたりする場合がある。例えば、証券取引を行うＶＭの性能低下が起こった場合、クライアントの利用者の証券の買付や売却の作業が滞り、クライアントの利用者に損害を与えてしまう場合がある。
【００１９】
また、バッチＶＭには規定終了時刻が設定されているため、規定終了時刻までに終了しないと、バッチＶＭの処理結果の利用者が不利益を被ったり、ＳＬＡ違反を生じる場合がある。例えば、売上データの集計を行うＶＭにおいて、翌営業日の営業開始に利用する売上データの集計が終了しない場合、利用者が営業を開始できなくなり、利用者に損害を与えてしまう。
【００２０】
そのため、制御サーバ１００は、ＶＭをサーバＳに割り当てる場合、オンラインＶＭの性能低下を回避し、バッチＶＭが規定終了時刻までに終了し、かつ、ＶＭが割り当てられたサーバＳの台数が少なくなるようにする。制御サーバ１００は、具体的には、例えば、下記式（１）および式（２）の条件を満たすサーバＳに、ＶＭを１つずつ割り当てていく。
【００２１】
【数１】
0005978673.tif 000002
【００２２】
上記式（１）は、バッチＶＭを規定終了時刻までに終了するための条件を示す。ここで、バッチＶＭの平均ＣＰＵ利用率とは、バッチＶＭを規定終了時刻までに終了することが可能な最小の平均ＣＰＵ利用率である。オンラインＶＭの平均ＣＰＵ利用率とは、測定されたオンラインＶＭのＣＰＵ利用率から算出された平均値である。平均ＣＰＵ利用率は制御サーバ１００に格納されている。Ｐiとは、サーバＳのＣＰＵ利用率上限であり、サーバＳ内のＣＰＵの数と１ＣＰＵ当たりのＣＰＵ利用率の上限とを乗算した値である。
【００２３】
上記式（１）の条件は、具体的には、複数のオンラインＶＭの平均ＣＰＵ利用率を考慮しても、複数のバッチＶＭの各々を規定終了時刻までに終了することが可能な最小の平均ＣＰＵ利用率を、サーバＳのＣＰＵ利用率上限以下に確保できることを示す。そのため、上記式（１）の条件を満たすサーバＳは、バッチＶＭを規定終了時刻までに終了することができる。
【００２４】
【数２】
0005978673.tif 000003
【００２５】
上記式（２）は、オンラインＶＭの性能低下を回避するための条件を示す。ここで、σは、オンラインＶＭのＣＰＵ利用率の正規分布における標準偏差である。ｃは、標準偏差の倍数である。例えば、ｃは、ｃ＝１〜３の自然数が採用される。従って、「オンラインＶＭの平均ＣＰＵ利用率＋オンラインＶＭのＣＰＵ利用率のσ×ｃ」とは、オンラインＶＭが高負荷になったときのＣＰＵ利用率である。
【００２６】
上記式（２）の条件は、具体的には、同時に複数のオンラインＶＭが高負荷になった場合であっても、オンラインＶＭのＣＰＵ利用率の和が、サーバＳのＣＰＵ利用率上限以下になることを示す。そのため、上記式（２）の条件を満たすサーバＳは、オンラインＶＭ同士の競合を回避することができ、オンラインＶＭの性能低下を回避することができる。
【００２７】
サーバＳは、割り当てられたＶＭを、自装置内のＣＰＵのいずれかにより実行するコンピュータである。また、サーバＳは、割り当てられたＶＭの中にオンラインＶＭがある場合、オンラインＶＭを優先して実行する。サーバＳは、例えば、オンラインＶＭの実行には優先してＣＰＵリソースを利用し、バッチＶＭの実行にはオンラインＶＭの実行に利用されていない余りのＣＰＵリソースを利用する。これにより、サーバＳは、オンラインＶＭの性能低下を回避することができる。なお、図１では、サーバＳは、ＣＰＵを３つ有している。
【００２８】
図１の例では、制御サーバ１００は、オンラインＶＭ１、オンラインＶＭ２、バッチＶＭ３、およびバッチＶＭ４を、サーバＳに割り当てる。まず、制御サーバ１００は、割当対象になるＶＭとして、オンラインＶＭ１を選択する。ここで、オンラインＶＭ１の平均ＣＰＵ利用率は「３０％」、オンラインＶＭ１のＣＰＵ利用率の標準偏差σは「２０％」、定数ｃは「３」とする。また、ここで、サーバＳ１，Ｓ２のＣＰＵ利用率上限Ｐｉは、１ＣＰＵ当たりのＣＰＵ利用率の上限「８０％」とＣＰＵの数「３」を乗算した値「２４０％」とする。
【００２９】
制御サーバ１００は、割当先になるサーバＳとして、サーバＳ１を選択する。制御サーバ１００は、選択したサーバＳ１にオンラインＶＭ１を割り当てた場合に、サーバＳ１において上記式（１）および式（２）の条件を満たすか否かを判断する。上記式（１）の条件は「３０％≦２４０％」となり、条件を満たしている。また、上記式（２）の条件は、「３０％＋２０％×３＝９０％≦２４０％」となり、条件を満たしている。そのため、制御サーバ１００は、オンラインＶＭ１をサーバＳ１に割り当てる。
【００３０】
次に、制御サーバ１００は、割当対象になるＶＭとして、オンラインＶＭ２を選択する。ここで、オンラインＶＭ２の平均ＣＰＵ利用率は「３０％」、オンラインＶＭ２のＣＰＵ利用率の標準偏差σは「２０％」、定数ｃは「３」とする。制御サーバ１００は、ＶＭが割り振られたサーバＳ数が少なくなるように、オンラインＶＭ１を割当済みのサーバＳ１を、割当先になるサーバＳとして選択する。制御サーバ１００は、選択したサーバＳ１にオンラインＶＭ２を割り当てた場合に、サーバＳ１において上記式（１）および式（２）の条件を満たすか否かを判断する。
【００３１】
ここで、上記式（１）は、「３０％＋３０％＝６０％≦２４０％」となるため、式（１）の条件を満たす。また、上記式（２）は、「３０％＋２０％×３＋３０％＋２０％×３＝１８０％≦２４０％」となるため、式（２）の条件を満たす。そのため、制御サーバ１００は、オンラインＶＭ２をサーバＳ１に割り当てる。
【００３２】
次に、制御サーバ１００は、割当対象になるＶＭとして、バッチＶＭ３を選択する。ここで、バッチＶＭ３の平均ＣＰＵ利用率は「３０％」とする。制御サーバ１００は、ＶＭが割り振られたサーバＳ数が少なくなるように、オンラインＶＭ１およびオンラインＶＭ２を割当済みのサーバＳ１を、割当先になるサーバＳとして選択する。制御サーバ１００は、選択したサーバＳ１にバッチＶＭ３を割り当てた場合に、サーバＳ１において上記式（１）および式（２）の条件を満たすか否かを判断する。
【００３３】
ここで、上記式（１）は、「３０％＋３０％＋３０％＝９０％≦２４０％」となるため、式（１）の条件を満たす。また、上記式（２）は、「３０％＋２０％×３＋３０％＋２０％×３＝１８０％≦２４０％」となるため、式（２）の条件を満たす。そのため、制御サーバ１００は、バッチＶＭ３をサーバＳ１に割り当てる。
【００３４】
次に、制御サーバ１００は、割当対象になるＶＭとして、バッチＶＭ４を選択する。ここで、バッチＶＭ４の平均ＣＰＵ利用率は「３０％」とする。制御サーバ１００は、ＶＭが割り振られたサーバＳ数が少なくなるように、オンラインＶＭ１、オンラインＶＭ２およびバッチＶＭ３を割当済みのサーバＳ１を、割当先になるサーバＳとして選択する。制御サーバ１００は、選択したサーバＳ１にバッチＶＭ４を割り当てた場合に、サーバＳ１において上記式（１）および式（２）の条件を満たすか否かを判断する。
【００３５】
ここで、上記式（１）は、「３０％＋３０％＋３０％＋３０％＝１２０％≦２４０％」となるため、式（１）の条件を満たす。また、上記式（２）は、「３０％＋２０％×３＋３０％＋２０％×３＝１８０％≦２４０％」となるため、式（２）の条件を満たす。そのため、制御サーバ１００は、バッチＶＭ４をサーバＳ１に割り当てる。制御サーバ１００は、選択した割当先になるサーバＳにおいて、上記式（１）または式（２）の条件を満たさない場合、選択したサーバＳとは異なるサーバＳを選択し直して、当該異なるサーバＳにＶＭを割り当てることになる。
【００３６】
サーバＳ１は、割り当てられたオンラインＶＭ１、オンラインＶＭ２、バッチＶＭ３、およびバッチＶＭ４を、自装置内のいずれかのＣＰＵにより実行する。ここで、サーバＳ１は、オンラインＶＭ１およびオンラインＶＭ２の優先度を高くして実行する。また、サーバＳ１は、オンラインＶＭ１とオンラインＶＭ２とが競合しないように、ＣＰＵ１０１とＣＰＵ１０２の各々に１つずつオンラインＶＭを実行させてもよい。
【００３７】
図１に示すように、サーバＳ１は、オンラインＶＭ１、バッチＶＭ３およびバッチＶＭ４をＣＰＵ１０１により実行している。サーバＳ１は、オンラインＶＭ２をＣＰＵ１０２により実行している。
【００３８】
ここで、サーバＳ１は、バッチＶＭ３およびバッチＶＭ４については、オンラインＶＭ１が利用していないＣＰＵリソースを利用して処理を実行し、オンラインＶＭ１の性能低下を生じさせずに処理を終了させる。また、サーバＳ１は、オンラインＶＭ１およびオンラインＶＭ２については、バッチＶＭ３およびバッチＶＭ４より優先して実行する。このため、オンラインＶＭ１およびオンラインＶＭ２は、単独で実行したときと同様のＣＰＵリソースを利用しており、単独で実行したときと同様の性能を確保できている。
【００３９】
このように、制御サーバ１００は、上記式（１）および式（２）の条件を満たす限り、１つのサーバＳに複数のＶＭを割り当てていく。これにより、制御サーバ１００は、オンラインＶＭの性能低下を回避し、バッチＶＭが規定終了時刻までに終了し、かつ、ＶＭを割り当てられたサーバＳの数が少なくなるように、ＶＭを割り当てることができる。
【００４０】
また、ＶＭが割り当てられていないサーバＳがあれば、制御サーバ１００は、サーバＳへの電力供給を停止する。これにより、サーバルームの消費電力が低減される。また、制御サーバ１００は、複数のＶＭを１つのサーバＳに割り当てることにより、サーバＳはＣＰＵリソースを効率よく利用することができる。
【００４１】
また、制御サーバ１００は、上記式（１）および（２）を制約条件とした混合整数計画問題を解くことにより、オンラインＶＭ１、オンラインＶＭ２、バッチＶＭ３、およびバッチＶＭ４を、サーバＳに割り当ててもよい。例えば、配置済みのＶＭの平均ＣＰＵ利用率やＣＰＵ利用率の標準偏差を入力とし、変数ｘn,i,jと、変数ｖijと、変数θiを出力する混合整数計画問題を用いて、ＶＭをサーバＳに割り当てる。
【００４２】
変数ｘn,i,jは、ＶＭnが、サーバＳ（ｉ，ｊ）に割り当てられているか否かを示す。変数ｖijは、サーバＳ（ｉ，ｊ）の電源がＯＮ状態かＯＦＦ状態かを示す。変数θiは、ラック（ｉ）にＶＭが割り当てられているか否かを示す。ｉはラック番号、ｊはｉ番目のラック内でのサーバの番号を示す。ｎは、割当対象となるＶＭの番号を示す。また、混合整数計画問題を用いてＶＭをサーバＳに割り当てる具体例については、図１７に後述する。
【００４３】
また、上記式（１）および式（２）はサーバＳの性能が同一である場合の条件である。サーバＳの性能が異なる場合は、上記式（１）の代わりに下記式（３）を用い、上記式（２）の代わりに下記式（４）を用いる。ここで、γiは、サーバＳが、基準になるサーバＳの何倍の性能があるかを示す比例係数である。また、γiは、サーバＳに対するベンチマークテストにより予め取得される。また、制御サーバ１００は、一定時間ごとに、サーバＳに対してベンチマークテストを実行して、γiを更新してもよい。
【００４４】
【数３】
0005978673.tif 000004
【００４５】
【数４】
0005978673.tif 000005
【００４６】
また、制御サーバ１００は、サーバルーム内のＣＲＡＣ（精密空量装置：Ｃｏｍｐｕｔｅｒ  Ｒｏｏｍ  Ａｉｒ  Ｃｏｎｄｉｔｉｏｎｉｎｇ）による冷却効率がよいサーバＳを、ＶＭを割り当てるサーバＳとして選択してもよい。これにより、ＣＲＡＣの消費電力が低減される。
【００４７】
（システム構成例）
次に、図２を用いて、システム構成例について説明する。
【００４８】
図２は、システム構成例を示す説明図である。図２において、システム２００は、サーバルームと、制御サーバ１００と、タスク投入サーバ２０１と、クライアント２０２と、を含む。また、サーバルームは、複数のサーバＳを有するラック２０３と、ＣＲＡＣ２０４と、Ｃｈｉｌｌｅｒ２０５（室外機）と、を含む。
【００４９】
サーバルーム内のサーバＳ群と、制御サーバ１００と、タスク投入サーバ２０１と、クライアント２０２と、は、ネットワークＮＥＴにより接続されている。ネットワークＮＥＴは、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、携帯電話網などで構成される。
【００５０】
タスク投入サーバ２０１は、ＶＭのサーバＳへの割当要求を制御サーバ１００に送信するコンピュータである。割当要求には、例えば、ＶＭの実行ファイルと、ＶＭがオンラインＶＭかバッチＶＭかを示す情報と、が含まれる。
【００５１】
制御サーバ１００は、タスク投入サーバ２０１からＶＭのサーバＳへの割当要求を受け付けるコンピュータである。制御サーバ１００は、オンラインＶＭの性能低下を回避し、バッチＶＭが規定終了時刻までに終了し、かつ、ＶＭを割り当てられたサーバＳ数が少なくなるように、受け付けたＶＭをサーバルーム内のサーバＳに割り当てる。
【００５２】
クライアント２０２は、オンラインＶＭと双方向通信を行うコンピュータである。クライアント２０２は、オンラインＶＭに対して、処理要求を送信したり、処理結果を受信したりする。また、クライアント２０２は、バッチＶＭの処理結果を受信するコンピュータであってもよい。クライアント２０２には、例えば、デスクトップ型ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、ノート型ＰＣ、携帯電話機（スマートフォン、ＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ））、タブレット型端末を採用できる。
【００５３】
ラック２０３は、Ｓ台のサーバＳおよびＵＰＳ（Ｕｎｉｎｔｅｒｒｕｐｔｉｂｌｅ  Ｐｏｗｅｒ  Ｓｕｐｐｌｙ）２０６を搭載する。例えば、ラック２０３は、サーバルーム内にＮ台存在するとし、ｉ番目のラック２０３をラック２０３（ｉ）と表す。また、サーバＳは、割り当てられたＶＭを実行するコンピュータである。サーバＳは、割り当てられたＶＭの中にオンラインＶＭがある場合、オンラインＶＭを優先的に実行する。例えば、ｉ番目のラック２０３のｊ番目のサーバＳをサーバＳ（ｉ，ｊ）と表す。また、ＵＰＳ２０６は、サーバＳへの電力供給を管理する装置である。例えば、ｉ番目のラック２０３のＵＰＳ２０６をＵＰＳ２０６（ｉ）と表す。
【００５４】
ＣＲＡＣ２０４は、ラック２０３内のサーバＳを冷却する装置である。例えば、ＣＲＡＣ２０４は、サーバルーム内にＣ台存在するとし、ｋ番目のＣＲＡＣ２０４をＣＲＡＣ２０４（ｋ）と表す。Ｃｈｉｌｌｅｒ２０５は、排気を行う装置である。Ｃｈｉｌｌｅｒ２０５は、ＣＲＡＣ２０４と同数台存在するとし、例えば、ｋ番目のＣｈｉｌｌｅｒ２０５をＣｈｉｌｌｅｒ２０５（ｋ）と表す。
【００５５】
（コンピュータのハードウェア構成例）
次に、図３を用いて、制御サーバ１００およびサーバＳとして採用されるコンピュータのハードウェア構成例について説明する。
【００５６】
図３は、コンピュータのハードウェア構成例を示すブロック図である。図３において、コンピュータ３００は、ＣＰＵｓ３０１、記憶装置３０２、入力装置３０３、出力装置３０４、および通信装置３０５が、バス３１０に接続されて構成されている。
【００５７】
ＣＰＵｓ３０１は、コンピュータ３００の全体の制御を司る。また、ＣＰＵｓ３０１は、記憶装置３０２に記憶されている各種プログラムを実行することで、記憶装置３０２内のデータを読み出したり、実行結果となるデータを記憶装置３０２に書き込んだりする。各種プログラムには、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や本実施の形態の情報処理プログラムまたは割当プログラムが含まれる。
【００５８】
記憶装置３０２は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、フラッシュメモリ、磁気ディスクドライブなどで構成され、ＣＰＵｓ３０１のワークエリアになったり、各種プログラムや各プログラムの実行により得られたデータを含む各種データを記憶したりする。
【００５９】
入力装置３０３は、キーボード、マウス、タッチパネルなどユーザの操作により、各種データの入力を行うインターフェースである。出力装置３０４は、ＣＰＵｓ３０１の指示により、データを出力するインターフェースである。出力装置３０４としては、例えば、ディスプレイやプリンタが採用される。通信装置３０５は、ネットワークＮＥＴを介して外部からデータを受信したり、外部にデータを送信したりするインターフェースである。
【００６０】
（サーバルーム構造情報の記憶内容）
次に、図４を用いて、サーバルーム構造情報の記憶内容の一例について説明する。サーバルーム構造情報は、サーバルームのラック数とサーバ数とを示す情報である。サーバルーム構造情報は、混合整数計画問題を解く際に参照される情報である。サーバルーム構造情報は、例えば、記憶装置３０２により実現される。
【００６１】
図４は、サーバルーム構造情報の記憶内容の一例を示す説明図である。図４に示すように、サーバルーム構造情報４００は、ラック数項目と、サーバ数項目を有する。ラック数項目には、サーバルームに存在するラック２０３の個数が記憶される。サーバ数項目には、１つのラック２０３に存在するサーバＳの個数が記憶される。各項目の値は、例えば、予め制御サーバ１００の利用者によって入力される。
【００６２】
（ＶＭ個数情報の記憶内容）
次に、図５を用いて、ＶＭ個数情報の記憶内容の一例について説明する。ＶＭ個数情報は、混合整数計画問題を解く際に参照される情報である。ＶＭ個数情報は、例えば、記憶装置３０２により実現される。
【００６３】
図５は、ＶＭ個数情報の記憶内容の一例を示す説明図である。図５に示すように、ＶＭ個数情報５００は、個数項目を有する。個数項目には、割当対象になるＶＭの個数が記憶される。制御サーバ１００は、例えば、割当対象になるＶＭが増加した場合、当該増加分の数を個数項目に加算する。制御サーバ１００は、例えば、割当対象になるＶＭをサーバＳに割り当てた場合、割り当てた個数を個数項目から減算する。
【００６４】
（実行可能最大ＶＭ数テーブルの記憶内容）
次に、図６を用いて、実行可能最大ＶＭ数テーブルの記憶内容の一例について説明する。実行可能最大ＶＭ数テーブルは、サーバごとの実行可能最大ＶＭ数を記憶するテーブルである。実行可能最大ＶＭ数テーブルは、混合整数計画問題を解く際に参照される。実行可能最大ＶＭ数テーブルは、例えば、記憶装置３０２により実現される。
【００６５】
図６は、実行可能最大ＶＭ数テーブルの記憶内容の一例を示す説明図である。図６に示すように、実行可能最大ＶＭ数テーブル６００は、ラック番号項目と、サーバ番号項目と、実行可能最大ＶＭ数項目と、を有し、サーバＳごとにレコードを構成する。
【００６６】
ラック番号項目には、サーバルームに存在するラック２０３を識別する番号が記憶される。サーバ番号項目には、ラック番号項目が示すラック２０３内のサーバＳを識別する番号が記憶される。実行可能最大ＶＭ数項目には、サーバ番号項目に示されるサーバＳが実行可能なＶＭの最大個数が記憶される。各項目の値は、例えば、予め制御サーバ１００の利用者によって入力される。
【００６７】
（ＶＭ消費電力テーブルの記憶内容）
次に、図７を用いて、ＶＭ消費電力テーブルの記憶内容の一例について説明する。ＶＭ消費電力テーブルは、サーバごとのＶＭ１つ当たりの消費電力を記憶するテーブルである。ＶＭ消費電力テーブルは、混合整数計画問題を解く際に参照される。ＶＭ消費電力テーブルは、例えば、記憶装置３０２により実現される。
【００６８】
図７は、ＶＭ消費電力テーブルの記憶内容の一例を示す説明図である。図７に示すように、ＶＭ消費電力テーブル７００は、ラック番号項目と、サーバ番号項目と、ＶＭ消費電力項目と、を有し、サーバＳごとにレコードを構成する。
【００６９】
ラック番号項目には、サーバルームに存在するラック２０３を識別する番号が記憶される。サーバ番号項目には、ラック番号項目が示すラック２０３内のサーバＳを識別する番号が記憶される。ＶＭ消費電力項目には、サーバ番号項目が示すサーバＳで、１つのＶＭを実行するために消費される電力が記憶される。各項目の値は、例えば、予め制御サーバ１００の利用者によって入力される。
【００７０】
（ベース消費電力テーブルの記憶内容）
次に、図８を用いて、ベース消費電力テーブルの記憶内容の一例について説明する。ベース消費電力テーブルは、サーバＳごとの常時消費電力を記憶するテーブルである。ベース消費電力テーブルは、混合整数計画問題を解く際に参照される。ベース消費電力テーブルは、例えば、記憶装置３０２により実現される。
【００７１】
図８は、ベース消費電力テーブルの記憶内容の一例を示す説明図である。図８に示すように、ベース消費電力テーブル８００は、ラック番号項目と、サーバ番号項目と、ベース消費電力項目と、を有し、サーバＳごとにレコードを構成する。
【００７２】
ラック番号項目には、サーバルームに存在するラック２０３を識別する番号が記憶される。サーバ番号項目には、ラック番号項目が示すラック２０３内のサーバＳを識別する番号が記憶される。ベース消費電力項目には、サーバ番号項目が示すサーバＳの常時消費電力が記憶される。常時消費電力は、サーバＳが処理を実行していない場合に消費される電力である。各項目の値は、例えば、予め制御サーバ１００の利用者によって入力される。
【００７３】
（スケーリング情報の記憶内容）
次に、図９を用いて、スケーリング情報の記憶内容の一例について説明する。スケーリング情報は、標準偏差に対して乗算する定数を示す情報である。スケーリング情報は、混合整数計画問題を解く際に参照される情報である。スケーリング情報は、例えば、記憶装置３０２により実現される。
【００７４】
図９は、スケーリング情報の記憶内容の一例を示す説明図である。図９に示すように、スケーリング情報９００は、定数項目を含む。定数項目には、オンラインＶＭのＣＰＵ利用率の上限の算出に使用される定数ｃが記憶される。定数ｃは、標準偏差σの倍数である。例えば、ｃは、ｃ＝１〜３の自然数が採用される。定数ｃは、例えば、上記式（２）に与えられる。ｃの値は、例えば、予め制御サーバ１００の利用者によって入力される。
【００７５】
（ＶＭ配置テーブルの記憶内容）
次に、図１０を用いて、ＶＭ配置テーブルの記憶内容の一例について説明する。ＶＭ配置テーブルは、サーバごとにＶＭが割り当てられているか否かを示す情報を記憶するテーブルである。ＶＭ配置テーブルには、混合整数計画問題の解が記憶される。ＶＭ配置テーブルは、例えば、記憶装置３０２により実現される。
【００７６】
図１０は、ＶＭ配置テーブルの記憶内容の一例を示す説明図である。図１０に示すように、ＶＭ配置テーブル１０００は、ＶＭ番号項目と、ラック番号項目と、サーバ番号項目と、配置先項目と、を有し、サーバＳごとにレコードを構成する。
【００７７】
ＶＭ番号項目には、ＶＭを識別する番号が記憶される。ラック番号項目には、サーバルームに存在するラック２０３を識別する番号が記憶される。サーバ番号項目には、ラック番号項目が示すラック２０３内のサーバＳを識別する番号が記憶される。配置先項目には、ＶＭ番号項目が示すＶＭが、サーバ番号項目が示すサーバＳに割り当てられているか否かを示す情報が記憶される。ここで、配置先項目の「０」はＶＭが割り当てられていないことを示し、「１」はＶＭが割り当てられていることを示す。
【００７８】
（電源テーブルの記憶内容）
次に、図１１を用いて、電源テーブルの記憶内容の一例について説明する。電源テーブルは、サーバごとに電源が供給されているか否かを示す情報を記憶するテーブルである。電源テーブルは、混合整数計画問題を解く際に参照される。電源テーブルは、例えば、記憶装置３０２により実現される。
【００７９】
図１１は、電源テーブルの記憶内容の一例を示す説明図である。図１１に示すように、電源テーブル１１００は、ラック番号項目と、サーバ番号項目と、電源項目と、を有し、サーバＳごとにレコードを構成する。
【００８０】
ラック番号項目には、サーバルームに存在するラック２０３を識別する番号が記憶される。サーバ番号項目には、ラック番号項目が示すラック２０３内のサーバＳを識別する番号が記憶される。電源項目には、サーバ番号項目が示すサーバＳに電力供給されているか否かが記憶される。ここで、電源項目の「０」は電力が供給されていないことを示し、「１」は電力が供給されていることを示す。電源項目の値は、例えば、サーバＳに電力が供給されているか否かを示す情報をＵＰＳ２０６から取得することにより、更新される。
【００８１】
（ラック状態テーブルの記憶内容）
次に、図１２を用いて、ラック状態テーブルの記憶内容の一例について説明する。ラック状態テーブルは、ラックごとにＶＭが割り振られているか否かを示す情報を記憶するテーブルである。ラック状態テーブルは、混合整数計画問題を解く際に参照される。ラック状態テーブルは、例えば、記憶装置３０２により実現される。
【００８２】
図１２は、ラック状態テーブルの記憶内容の一例を示す説明図である。図１２に示すように、ラック状態テーブル１２００は、ラック番号項目と、ＶＭ実行項目と、を有し、ラック２０３ごとにレコードを構成する。ラック番号項目には、サーバルームに存在するラック２０３を識別する番号が記憶される。ＶＭ実行項目には、ラック番号項目が示すラック２０３でＶＭが実行されているか否かを示す情報が記憶される。例えば、ＶＭ実行項目の「０」はＶＭが実行されていないことを示し、「１」はＶＭが実行されていることを示す。また、制御サーバ１００は、例えば、ＶＭを割り当てるごとにＶＭ実行項目を更新する。制御サーバ１００は、例えば、ＶＭの実行が終了したことをサーバＳから通知されると、ＶＭ実行項目を更新する。
【００８３】
（初期配置テーブルの記憶内容）
次に、図１３を用いて、初期配置テーブルの記憶内容の一例について説明する。初期配置テーブルは、サーバごとの配置済みのＶＭ数を記憶するテーブルである。初期配置テーブルは、混合整数計画問題を解く際に参照される。初期配置テーブルは、例えば、記憶装置３０２により実現される。
【００８４】
図１３は、初期配置テーブルの記憶内容の一例を示す説明図である。図１３に示すように、初期配置テーブル１３００は、ラック番号項目と、サーバ番号項目と、初期配置項目と、を有し、サーバＳごとにレコードを構成する。ラック番号項目には、サーバルームに存在するラック２０３を識別する番号が記憶される。サーバ番号項目には、ラック番号項目が示すラック２０３内のサーバＳを識別する番号が記憶される。初期配置項目には、サーバＳ項目が示すサーバＳに配置されているＶＭ数が記憶される。
【００８５】
（ＵＰＳテーブルの記憶内容）
次に、図１４を用いて、ＵＰＳテーブルの記憶内容の一例について説明する。ＵＰＳテーブルは、ＵＰＳごとに、常時消費電力と、サーバの消費電力に乗算する比例係数と、を記憶するテーブルである。ＵＰＳテーブルは、混合整数計画問題を解く際に参照される。ＵＰＳテーブルは、例えば、記憶装置３０２により実現される。
【００８６】
図１４は、ＵＰＳテーブルの記憶内容の一例を示す説明図である。図１４に示すように、ＵＰＳテーブル１４００は、ＵＰＳ番号項目と、ベース消費電力項目と、比例係数項目と、を有し、ＵＰＳ２０６ごとにレコードを構成する。ＵＰＳ番号項目には、サーバルームに存在するＵＰＳ２０６を識別する番号が記憶される。ベース消費電力項目には、ＵＰＳ２０６の常時消費電力が記憶される。比例係数項目には、サーバＳの消費電力に対して、何倍の電力がＵＰＳ２０６で消費されるかを示す係数が記憶される。各項目の値は、例えば、予め制御サーバ１００の利用者によって入力される。
【００８７】
（割当対象ＶＭテーブルの記憶内容）
次に、図１５を用いて、割当対象ＶＭテーブルの記憶内容の一例について説明する。割当対象ＶＭテーブルは、割当対象になるＶＭごとに、平均ＣＰＵ利用率と、ＣＰＵ利用率の標準偏差と、を記憶するテーブルである。割当対象ＶＭテーブルは、混合整数計画問題を解く際に参照される。割当対象ＶＭテーブルは、例えば、記憶装置３０２により実現される。
【００８８】
図１５は、割当対象ＶＭテーブルの記憶内容の一例を示す説明図である。図１５に示すように、割当対象ＶＭテーブル１５００は、ＶＭ番号項目と、平均ＣＰＵ利用率項目と、標準偏差項目と、を有し、割当対象になるＶＭごとにレコードを構成する。ＶＭ番号項目には、割当対象になるＶＭを識別する番号が記憶される。平均ＣＰＵ利用率項目には、ＶＭ番号項目が示すＶＭの平均ＣＰＵ利用率が記憶される。標準偏差項目には、ＶＭ番号項目が示すＶＭのＣＰＵ利用率の標準偏差が記憶される。
【００８９】
（配置済みＶＭテーブルの記憶内容）
次に、図１６を用いて、配置済みＶＭテーブルの記憶内容の一例について説明する。配置済みＶＭテーブルは、配置済みのＶＭごとに、平均ＣＰＵ利用率と、ＣＰＵ利用率の標準偏差と、を記憶するテーブルである。配置済みＶＭテーブルは、混合整数計画問題を解く際に参照される。配置済みＶＭテーブルは、例えば、記憶装置３０２により実現される。
【００９０】
図１６は、配置済みＶＭテーブルの記憶内容の一例を示す説明図である。図１６に示すように、配置済みＶＭテーブル１６００は、ラック番号項目と、サーバ番号項目と、ＶＭ番号項目と、平均ＣＰＵ利用率項目と、標準偏差項目と、を有し、配置済みのＶＭごとにレコードを構成する。
【００９１】
ラック番号項目には、サーバルームに存在するラック２０３を識別する番号が記憶される。サーバ番号項目には、ラック番号項目が示すラック２０３内のサーバＳを識別する番号が記憶される。ＶＭ番号項目には、サーバＳ項目が示すサーバＳに配置済みのＶＭを識別する番号が記憶される。
【００９２】
平均ＣＰＵ利用率項目には、ＶＭ番号項目が示すＶＭの平均ＣＰＵ利用率が記憶される。平均ＣＰＵ利用率は、予め制御サーバ１００の利用者により入力されていてもよい。また、制御サーバ１００は、一定時間ごとに、サーバＳから実行中のＶＭのＣＰＵ利用率の変動履歴と実行時間とを取得し、平均ＣＰＵ利用率を算出し、平均ＣＰＵ利用率項目を更新してもよい。
【００９３】
標準偏差項目には、ＶＭ番号項目が示すＶＭのＣＰＵ利用率の標準偏差が記憶される。標準偏差は、予め制御サーバ１００の利用者により入力されていてもよい。制御サーバ１００は、一定時間ごとに、サーバＳから実行中のＶＭのＣＰＵ利用率の変動履歴と実行時間とを取得し、標準偏差を算出し、標準偏差項目を更新してもよい。
【００９４】
（制御サーバ１００の機能的構成例）
次に、制御サーバ１００の機能的構成例について説明する。図１７は、制御サーバ１００の機能的構成例を示すブロック図である。制御サーバ１００は、受付部１７０１と、特定部１７０２と、選択部１７０３と、取得部１７０４と、判断部１７０５と、割当部１７０６と、検出部１７０７と、制御部１７０８と、を有する。受付部１７０１〜制御部１７０８は、具体的には、例えば、図３に示した記憶装置３０２に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、通信装置３０５により、その機能を実現する。
【００９５】
受付部１７０１は、タスク投入サーバ２０１から送信されたＶＭのサーバＳへの割当要求を受け付ける。ここで、割当要求には、例えば、割当対象になるＶＭの実行ファイルが含まれる。また、割当要求には、割当対象になるＶＭの平均ＣＰＵ利用率や標準偏差が含まれていてもよい。制御サーバ１００は、割当要求に割当対象になるＶＭの平均ＣＰＵ利用率や標準偏差が含まれる場合、割当対象になるＶＭと、平均ＣＰＵ利用率や標準偏差と、を対応付けたレコードを、割当対象ＶＭテーブル１５００に追加する。
【００９６】
また、受付部１７０１は、現在サーバＳに割り当てられているＶＭの配置変更要求を受け付けてもよい。ＶＭの配置変更の要求は、タスク投入サーバ２０１から送信されてもよいし、制御サーバ１００内で一定時間ごとに発生させてもよい。また、サーバＳからのＶＭの終了通知を、ＶＭの配置変更の要求として受け付けてもよい。これにより、受付部１７０１は、サーバＳへのＶＭの割り当てを開始するトリガを発生させることができる。受け付けられた要求は、例えば、記憶装置３０２に記憶される。
【００９７】
特定部１７０２は、サーバ群に配置済みの第２種類の仮想マシン群の中から、予測残存実行時間が最長の第２種類の仮想マシンを特定する。特定部１７０２は、具体的には、例えば、サーバ群の各々から実行中のバッチＶＭの予測残存実行時間を取得し、予測残存実行時間が最長のバッチＶＭを特定する。また、特定部１７０２は、サーバ群の各々から実行中のバッチＶＭのＣＰＵ利用率の変動履歴と実行時間を取得し、予測残存実行時間を算出し、予測残存実行時間が最長のバッチＶＭを特定してもよい。また、特定部１７０２は、バッチＶＭにプログラムの進捗を示す情報を送信するＡＰＩが含まれる場合、ＡＰＩにより送信された進捗を示す情報から予測残存実行時間を算出し、予測残存実行時間が最長のバッチＶＭを特定してもよい。
【００９８】
これにより、特定部１７０２は、選択部１７０３に予測残存時間が最長のバッチＶＭを配置済みのサーバＳを配置先に選択させることができる。結果として、特定部１７０２は、予測残存時間が最長でないバッチＶＭに遅れを生じさせず、予測残存時間が最長でないバッチＶＭの終了により、早期にサーバＳのＣＰＵリソースに空きが生じるようにすることができる。
【００９９】
選択部１７０３は、サーバ群の中から、他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の割当先を選択する。ここで、第１種類の仮想マシンとは、他の装置と双方向通信により所定の処理を実行するＶＭであり、上述したオンラインＶＭである。また、第１種類の仮想マシンは、割当対象になるＶＭであってもよいし、配置済みのＶＭであってもよい。第２種類の仮想マシンとは、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行するＶＭであり、上述したバッチＶＭである。また、第２種類の仮想マシンは、割当対象になるＶＭであってもよいし、配置済みのＶＭであってもよい。第１種類の仮想マシンおよび第２種類の仮想マシンは、各々複数個選択されてもよい。
【０１００】
選択部１７０３は、具体的には、例えば、サーバ群の中から、オンラインＶＭとバッチＶＭとを含むＶＭ群の割当先として、他のサーバＳよりもＣＲＡＣ２０４による冷却効率がよいサーバＳを選択する。ＣＲＡＣ２０４による冷却効率がよいサーバＳとは、例えば、他のサーバＳよりもＣＲＡＣ２０４との距離が近いサーバＳである。これにより、選択部１７０３は、ＣＲＡＣ２０４による冷却効率の悪いサーバＳにＶＭを割り振った場合に比較して、ＣＲＡＣ２０４の消費電力の増加を抑えることができる。
【０１０１】
また、選択部１７０３は、具体的には、例えば、第１種類の仮想マシンが配置済みであるサーバＳを選択してもよい。選択部１７０３は、より具体的には、例えば、ＶＭ群の中に未割当のバッチＶＭがある場合、オンラインＶＭが配置済みのサーバＳを選択する。これにより、１つのサーバＳに、オンラインＶＭとバッチＶＭとが配置される。
【０１０２】
この場合、選択部１７０３は、特定部１７０２によって特定された予測残存実行時間が最長の第２種類の仮想マシンが配置済みのサーバＳ以外であって、かつ、第１種類の仮想マシンが配置済みであるサーバＳを選択してもよい。選択部１７０３は、より具体的には、例えば、特定されたバッチＶＭの割当先になるサーバＳとして、オンラインＶＭが配置済みであるサーバＳを選択する。これにより、選択部１７０３は、オンラインＶＭの割当によって予測残存時間が最長でないバッチＶＭに遅れを生じさせず、予測残存時間が最長でないバッチＶＭの終了により、早期にサーバＳのＣＰＵリソースに空きが生じるようにすることができる。
【０１０３】
また、選択部１７０３は、具体的には、例えば、第２種類の仮想マシンが配置済みであるサーバＳを選択してもよい。選択部１７０３は、より具体的には、例えば、ＶＭ群の中に未割当のオンラインＶＭがある場合、バッチＶＭが配置済みのサーバＳを選択する。これにより、選択部１７０３は、１つのサーバＳに、オンラインＶＭとバッチＶＭとが割り当てられるようにする。
【０１０４】
この場合、選択部１７０３は、特定部１７０２によって特定された予測残存実行時間が最長の第２種類の仮想マシンが配置済みであるサーバＳを選択してもよい。選択部１７０３は、より具体的には、例えば、ＶＭ群の中に未割当のオンラインＶＭがある場合、特定されたバッチＶＭが配置済みであるサーバＳを選択する。これにより、選択部１７０３は、オンラインＶＭの割当によって予測残存時間が最長でないバッチＶＭに遅れを生じさせず、予測残存時間が最長でないバッチＶＭの終了により、早期にサーバＳのＣＰＵリソースに空きが生じるようにすることができる。選択結果は、例えば、記憶装置３０２に記憶される。
【０１０５】
取得部１７０４は、仮想マシン群を同一のサーバＳに割り当てた場合の仮想マシン群の演算処理装置使用率に基づく演算処理装置使用率の予測値を取得する。ここで、演算処理装置とは、上述したＣＰＵである。取得部１７０４は、具体的には、例えば、割当対象ＶＭテーブル１５００から、ＶＭ群に含まれる割当対象になるバッチＶＭの平均ＣＰＵ利用率と割当対象になるオンラインＶＭの平均ＣＰＵ利用率とを取得する。そして、取得部１７０４は、バッチＶＭの平均ＣＰＵ利用率とオンラインＶＭの平均ＣＰＵ利用率との和を、予測値として算出する。
【０１０６】
ここで、バッチＶＭの平均ＣＰＵ利用率とは、例えば、バッチＶＭを規定終了時刻までに終了することが可能な最小の平均ＣＰＵ利用率である。オンラインＶＭの平均ＣＰＵ利用率とは、オンラインＶＭのＣＰＵ利用率の平均値である。割当対象になるＶＭの平均ＣＰＵ利用率や標準偏差は、例えば、上述した割当要求に含まれており、制御サーバ１００により割当対象ＶＭテーブル１５００に登録されている。これにより、取得部１７０４は、サーバＳにＶＭ群を割り当てた場合に、ＶＭ群の中のバッチＶＭを規定終了時刻までに終了可能な最小の平均ＣＰＵ利用率を取得することができる。
【０１０７】
また、取得部１７０４は、具体的には、例えば、割当対象ＶＭテーブル１５００から、ＶＭ群に含まれる割当対象になるバッチＶＭの平均ＣＰＵ利用率を取得する。次に、取得部１７０４は、配置済みＶＭテーブル１６００から、ＶＭ群に含まれる配置済みのオンラインＶＭの平均ＣＰＵ利用率を取得する。そして、取得部１７０４は、バッチＶＭの平均ＣＰＵ利用率とオンラインＶＭの平均ＣＰＵ利用率との和を、予測値として算出する。
【０１０８】
ここで、配置済みのＶＭの平均ＣＰＵ利用率や標準偏差は、例えば、過去に制御サーバ１００により割当対象のＶＭがいずれかのサーバＳに割り当てられた場合に、配置済みＶＭテーブル１６００に登録されている。この場合、割当対象ＶＭテーブル１５００の割り当てられたＶＭに関するレコードは削除される。これにより、取得部１７０４は、オンラインＶＭが配置済みのサーバＳに、割当対象になるバッチＶＭを割り当てた場合に、割当対象になるバッチＶＭを規定終了時刻までに終了可能な最小の平均ＣＰＵ利用率を取得することができる。
【０１０９】
また、取得部１７０４は、具体的には、例えば、配置済みＶＭテーブル１６００から、ＶＭ群に含まれる配置済みのバッチＶＭの平均ＣＰＵ利用率を取得する。次に、取得部１７０４は、割当対象ＶＭテーブル１５００から、ＶＭ群に含まれる割当対象になるオンラインＶＭの平均ＣＰＵ利用率を取得する。そして、取得部１７０４は、バッチＶＭの平均ＣＰＵ利用率とオンラインＶＭの平均ＣＰＵ利用率との和を、予測値として算出する。これにより、取得部１７０４は、バッチＶＭが配置済みのサーバＳに、割当対象になるオンラインＶＭを割り当てた場合に、配置済みのバッチＶＭを規定終了時刻までに終了可能な最小の平均ＣＰＵ利用率を取得することができる。
【０１１０】
また、取得部１７０４は、具体的には、例えば、割当対象ＶＭテーブル１５００から、オンラインＶＭの平均ＣＰＵ利用率と、オンラインＶＭのＣＰＵ利用率のσ×ｎとを取得する。そして、取得部１７０４は、オンラインＶＭの平均ＣＰＵ利用率と、オンラインＶＭのＣＰＵ利用率のσ×ｃと、の和を、予測値として算出する。ここで、σは、オンラインＶＭのＣＰＵ利用率の正規分布における標準偏差である。ｎは、標準偏差に乗算する定数である。これにより、取得部１７０４は、割当対象になるオンラインＶＭが高負荷になったときのＣＰＵ利用率を取得することができる。
【０１１１】
また、取得部１７０４は、具体的には、例えば、配置済みＶＭテーブル１６００から、オンラインＶＭの平均ＣＰＵ利用率と、オンラインＶＭのＣＰＵ利用率のσ×ｎとを取得する。そして、取得部１７０４は、オンラインＶＭの平均ＣＰＵ利用率と、オンラインＶＭのＣＰＵ利用率のσ×ｃと、の和を、予測値として算出する。これにより、取得部１７０４は、配置済みのオンラインＶＭが高負荷になったときのＣＰＵ利用率を取得することができる。
【０１１２】
算出されたＶＭ群の複数のバッチＶＭの平均ＣＰＵ利用率とＶＭ群の複数のオンラインＶＭの平均ＣＰＵ利用率との和は、例えば、記憶装置３０２に記憶される。また、オンラインＶＭの平均ＣＰＵ利用率とオンラインＶＭのＣＰＵ利用率のσ×ｎとの和も、例えば、記憶装置３０２に記憶される。
【０１１３】
判断部１７０５は、取得部１７０４によって取得された予測値が、選択部１７０３によって選択されたサーバＳの演算処理装置数に基づくしきい値以下であるか否かを判断する。しきい値とは、サーバＳでのＣＰＵ利用率の上限であり、上述したＰiである。Ｐiは、サーバＳ内のＣＰＵの数と１ＣＰＵ当たりのＣＰＵ利用率の上限とを乗算した値である。Ｐiとしては、例えば、（ＣＰＵの数×９０％）−１０％が採用される。
【０１１４】
判断部１７０５は、具体的には、例えば、ＶＭ群の複数のバッチＶＭの平均ＣＰＵ利用率と、ＶＭ群の複数のオンラインＶＭの平均ＣＰＵ利用率と、の和が、Ｐi以下であるか否かを判断する。これにより、判断部１７０５は、複数のオンラインＶＭのＣＰＵ利用率を考慮しても、複数のバッチＶＭの各々を規定終了時刻までに終了することが可能な最小の平均ＣＰＵ利用率を、サーバＳのＣＰＵ利用率上限以下に確保できるか否かを判断することができる。
【０１１５】
また、判断部１７０５は、具体的には、例えば、オンラインＶＭの平均ＣＰＵ利用率と、オンラインＶＭのＣＰＵ利用率のσ×ｎと、の和が、Ｐi以下であるか否かを判断する。これにより、判断部１７０５は、同時に複数のオンラインＶＭが高負荷になった場合であっても、オンラインＶＭのＣＰＵ利用率の和が、サーバＳのＣＰＵ利用率上限以下になるか否かを判断することができる。判断結果は、例えば、記憶装置３０２に記憶される。
【０１１６】
割当部１７０６は、判断部１７０５によってしきい値以下と判断された場合、第１種類の仮想マシンを第２種類の仮想マシンよりも優先実行するように、選択されたサーバＳに仮想マシン群を割り当てる。割当部１７０６は、具体的には、例えば、判断部１７０５によって閾値以下と判断された場合、選択されたサーバＳに、ＶＭ群の実行要求を送信する。ここで、実行要求には、ＶＭ群の各々の実行ファイルが含まれる。また、実行要求には、ＶＭ群の中のオンラインＶＭの実行の優先度を、バッチＶＭよりも高くする旨を示す通知が含まれる。これにより、割当部１７０６は、割当対象になるバッチＶＭとオンラインＶＭとをサーバＳに割り当てた場合に、割り当てたオンラインＶＭの性能低下を回避し、割り当てたバッチＶＭを規定終了時刻までに終了させることができる。
【０１１７】
また、実行要求には、ＶＭ群の各々を、サーバＳの同一ＣＰＵにより実行させる指示を含んでもよい。これにより、割当部１７０６は、ＶＭ群の各々をサーバＳの同一ＣＰＵにより実行させる指示を含む実行要求をサーバＳに送信することにより、サーバＳにおいて一つのＣＰＵによりＶＭ群を実行させ、サーバＳにＣＰＵリソースを効率よく利用させることができる。
【０１１８】
割当部１７０６は、ＶＭ群をサーバＳに割り当てると、割当対象ＶＭテーブル１５００のＶＭ群の各々に関するレコードを参照し、配置済みＶＭテーブル１６００にＶＭ群の各々に関するレコードを登録する。また、割当部１７０６は、配置済みＶＭテーブル１６００に登録した後、割当対象ＶＭテーブル１５００のＶＭ群の各々に関するレコードを削除する。また、割当部１７０６は、初期配置テーブル１３００の割り当てたサーバＳに関するレコードを更新する。これにより、割当部１７０６は、新たにＶＭを割り当てる場合、配置済みＶＭテーブル１５００から、割当部１７０６によって割り当てられたＶＭの平均ＣＰＵ利用率や標準偏差を取得できる。
【０１１９】
また、割当部１７０６は、具体的には、例えば、バッチＶＭが配置済みであるサーバＳが選択された場合、選択されたサーバＳにオンラインＶＭの実行要求を送信する。ここで、実行要求には、選択されたサーバＳに配置済みのバッチＶＭよりも、実行要求の対象のオンラインＶＭの実行の優先度を高くする通知が含まれる。サーバＳは、通知に従って、オンラインＶＭの実行には優先してＣＰＵリソースを利用し、バッチＶＭの実行にはオンラインＶＭの実行に利用されていない余りのＣＰＵリソースを利用する。これにより、割当部１７０６は、割当対象になるオンラインＶＭを、バッチＶＭが配置済みのサーバＳに割り当てた場合に、割り当てたオンラインＶＭの性能低下を回避し、配置済みのバッチＶＭを規定終了時刻までに終了させることができる。
【０１２０】
また、実行要求には、サーバＳのバッチＶＭが配置済みのＣＰＵにより、割り当てたオンラインＶＭを実行させる指示を含んでもよい。これにより、割当部１７０６は、サーバＳにおいて、バッチＶＭが配置済みのＣＰＵにより、割当対象になるオンラインＶＭを実行させ、サーバＳにＣＰＵリソースを効率よく利用させることができる。
【０１２１】
また、割当部１７０６は、具体的には、例えば、オンラインＶＭが配置済みであるサーバＳが選択された場合、選択されたサーバＳにバッチＶＭの実行要求を送信する。サーバＳは、通知に従って、オンラインＶＭの実行には優先してＣＰＵリソースを利用し、バッチＶＭの実行にはオンラインＶＭの実行に利用されていない余りのＣＰＵリソースを利用する。これにより、割当部１７０６は、割当対象になるバッチＶＭを、オンラインＶＭが配置済みのサーバＳに割り当てた場合に、配置済みのオンラインＶＭの性能低下を回避し、割り当てたバッチＶＭを規定終了時刻までに終了させることができる。
【０１２２】
また、実行要求には、サーバＳのオンラインＶＭが配置済みのＣＰＵにより、割り当てたバッチＶＭを実行させる指示を含んでもよい。これにより、割当部１７０６は、サーバＳのオンラインＶＭが配置済みのＣＰＵにより、割当対象になるバッチＶＭを実行させ、サーバＳにＣＰＵリソースを効率よく利用させることができる。
【０１２３】
検出部１７０７は、サーバ群のうち、いずれのＶＭも割り当てられていないサーバＳを検出する。検出部１７０７は、具体的には、例えば、一定時間ごとに、サーバＳ群の各々にＶＭの実行状況を要求し、サーバＳ群の各々のＶＭの実行状況を取得することによりいずれのＶＭも割り当てられていないサーバＳを検出する。また、検出部１７０７は、割当部１７０６による割当の結果、配置済みのＶＭが他のサーバＳに割り振り直されたサーバＳのＶＭの実行状況を取得してもよい。検出結果は、例えば、記憶装置３０２に記憶される。
【０１２４】
制御部１７０８は、サーバ群のうちいずれの仮想マシンも割り当てられていないサーバＳの消費電力が低下するように制御する。制御部１７０８は、具体的には、例えば、検出部１７０７によって検出されたサーバＳへの電力供給を停止する要求を、当該サーバＳへの電力供給を制御するＵＰＳ２０６に送信する。これにより、制御部１７０８は、サーバＳの消費電力を低減することができる。
【０１２５】
また、選択部１７０３と取得部１７０４と判断部１７０５との機能は、上記式（１）および式（２）を制約条件に含む混合整数計画問題を解くことにより実現することができる。また、混合整数計画問題を解く際にソルバを利用してもよい。混合整数計画問題を解くソルバとしては、例えば、ＧＬＰＫ、ＳＹＭＰＨＯＮＹ、Ｇｕｒｏｂｉ、ＣＰＬＥＸがある。
【０１２６】
具体的には、例えば、混合整数計画問題は下記式（５）の最小化関数と、下記式（６）〜式（１５）の制約条件により表される。混合整数計画問題の式（５）〜式（１５）の各変数の値は、例えば、予め記憶装置５０２に記憶されている。
【０１２７】
【数５】
0005978673.tif 000006
【０１２８】
上記式（５）は、混合整数計画問題における最小化関数を示す。制御サーバ１００は、混合整数計画問題を解くことで、下記式（６）〜式（１５）の制約条件を満たす範囲で、最小化関数を最小化する解を求めることができる。上記式（５）は、具体的には、サーバルームでの消費電力を示す。そのため、制御サーバ１００は、混合整数計画問題を解くことにより、サーバルームでの消費電力を最小化する解を求めることができる。
【０１２９】
ここで、Ｎは、サーバルームのラック２０３の数である。ｉは、ラック２０３の番号であり、１からＮの数である。Ｓは、ラック２０３内のサーバＳの数である。ｊは、ラック２０３のサーバＳの番号であり、１〜Ｓの数である。Ｍは、割当対象になるＶＭの数である。ｎは、ＶＭの番号であり、１〜Ｍの数である。Ｃは、ＣＲＡＣ２０４の数である。ｋは、ＣＲＡＣ２０４の番号であり、１〜Ｃの数である。
【０１３０】
ηiは、ラック２０３（ｉ）のＵＰＳ２０６で常時消費される電力である。εiは、ラック２０３（ｉ）のＵＰＳ２０６が、ラック２０３（ｉ）のサーバＳの消費電力に対して、何倍の電力を消費するかを示す比例係数である。αijは、サーバＳ（ｉ，ｊ）で常時消費される電力である。ｖijは、サーバＳ（ｉ，ｊ）の電源がＯＮ状態かＯＦＦ状態かを示す変数であり、ＯＮ状態のとき「１」となり、ＯＦＦ状態のとき「０」となる。
【０１３１】
βijは、サーバＳ（ｉ，ｊ）でのＶＭ１つ当たりの消費電力である。Ｗij0は、サーバＳに配置済みのＶＭの数である。τnは、割当対象になるＶＭの数である。ｘn,i,jは、サーバＳ（ｉ，ｊ）にＶＭ（ｎ）が割り当てられているか否かを示す変数であり、ＶＭ（ｎ）が割り当てられているとき「１」となり、ＶＭ（ｎ）が割り当てられていないとき「０」となる。
【０１３２】
λkは、ＣＲＡＣ２０４（ｋ）で常時消費される電力である。μkは、ＣＲＡＣ２０４（ｋ）が、ＣＲＡＣ２０４（ｋ）に流入する熱流量に対し、何倍の電力を消費するかを示す比例係数である。ｑin,CRACKは、ＣＲＡＣ２０４（ｋ）に流入する熱流量である。κijは、Ｃｈｉｌｌｅｒ２０５（ｋ）が、Ｃｈｉｌｌｅｒ２０５（ｋ）に流入する熱流量に対し、何倍の電力を消費するかを示す比例係数である。ｑout,CRACKは、ＣＲＡＣ２０４（ｋ）から流出する熱流量である。
【０１３３】
より具体的には、上記式（５）のΣj=1Sαijｖijは、ラック２０３（ｉ）内の複数のサーバＳの常時消費電力の和を示す。上記式（５）のΣj=1SβijＷij0は、ラック２０３（ｉ）内の複数のサーバＳに配置済みのＶＭの消費電力の和を示す。上記式（５）のΣj=1S（βijΣn=1Mτnｘn,i,j）は、ラック２０３（ｉ）内の複数のサーバＳに割り当てられたＶＭの消費電力の和を示す。従って、上記式（５）のΣj=1S（αijｖij＋βij（Ｗij0＋Σn=1Mτnｘn,i,j））は、ラック２０３（ｉ）内の複数のサーバＳの総消費電力を示す。
【０１３４】
上記式（５）のεi（Σj=1S（αijｖij＋βij（Ｗij0＋Σn=1Mτnｘn,i,j）））は、ラック２０３（ｉ）内のＵＰＳ２０６の消費電力を示す。従って、Σi=1N（ηi＋（１＋εi）（Σj=1S（αijｖij＋βij（Ｗij0＋Σn=1Mτnｘn,i,j））））は、サーバルーム内の複数のラック２０３の消費電力の和を示す。
【０１３５】
また、上記式（５）のΣk=1C（λk＋μkｑin,CRACK）は、ＣＲＡＣ２０４がサーバＳの冷却に消費する電力の和を示す。上記式（５）のΣk=1C（κkｑout,CRACK）は、ＣＲＡＣ２０４が流出した熱流を、Ｃｈｉｌｌｅｒ２０５が排気するために消費する電力の和を示す。従って、Σk=1C（λk＋μkｑin,CRACK）＋Σk=1C（κkｑout,CRACK）は、サーバルーム内のサーバＳの冷却のための総消費電力を示す。
【０１３６】
従って、上記式（５）はサーバルームの総消費電力を示している。そのため、制御サーバ１００は、整数計画問題を解くことにより、サーバルームでの消費電力を最小化する解を求めることができる。
【０１３７】
【数６】
0005978673.tif 000007
【０１３８】
上記式（６）は、ＶＭnが、サーバＳ（ｉ，ｊ）に割り当てられているか否かを示す変数ｘn,i,jが、「０」か「１」かの２値をとる離散変数であることを示す制約条件である。上記式（６）の制約条件により、ＶＭnが、サーバＳ（ｉ，ｊ）に割り当てられているか否かを示す変数ｘn,i,jが「０，１」以外の値をとらないようにする。
【０１３９】
【数７】
0005978673.tif 000008
【０１４０】
上記式（７）は、サーバＳ（ｉ，ｊ）の電源がＯＮ状態かＯＦＦ状態かを示す変数ｖijが、「０」か「１」かの２値をとる離散変数であることを示す制約条件である。上記式（７）の制約条件により、サーバＳ（ｉ，ｊ）の電源がＯＮ状態かＯＦＦ状態かを示す変数ｖijが、「０，１」以外の値をとらないようにする。
【０１４１】
【数８】
0005978673.tif 000009
【０１４２】
上記式（８）は、ラック２０３（ｉ）にＶＭが割り当てられているか否かを示す変数θiが、「０」か「１」かの２値をとる離散変数であることを示す制約条件である。上記式（８）の制約条件により、ラック２０３（ｉ）にＶＭが割り当てられているか否かを示す変数θiが、「０，１」以外の値をとらないようにする。
【０１４３】
【数９】
0005978673.tif 000010
【０１４４】
上記式（９）は、サーバルームのサーバＳ群の各々のサーバＳに関する変数ｘn,i,jの総和が「１」になることを示す制約条件である。そのため、各々のサーバＳのうち、いずれか１つのサーバＳに関する変数ｘn,i,jが「１」になり、残余のサーバＳに関する変数ｘn,i,jが「０」になる。換言すれば、上記式（９）の制約条件は、ＶＭnはいずれか１つのサーバＳに割り当てられることを示し、２つ以上のサーバＳに割り当てられる場合やサーバＳに割り当てられない場合がないことを示す。
【０１４５】
【数１０】
0005978673.tif 000011
【０１４６】
上記式（１０）は、上記式（１）に対応する制約条件であり、バッチＶＭを規定終了時刻までに終了するための条件を示す。ここで、Ｍ0,i,jは、配置済みのＶＭの数である。τ0,i,j,mは、サーバＳ（ｉ，ｊ）に配置済みのＶＭ（ｍ）の平均ＣＰＵ利用率である。τnは、割当対象になるＶＭ（ｎ）の平均ＣＰＵ利用率である。γijは、サーバＳ（ｉ，ｊ）が、基準になるサーバＳの何倍の性能があるかを示す比例係数である。Ｌijは、サーバＳ（ｉ，ｊ）のＣＰＵ利用率の上限である。
【０１４７】
上記式（１０）の条件は、具体的には、複数のオンラインＶＭの各々の平均ＣＰＵ利用率を考慮しても、複数のバッチＶＭの各々を規定終了時刻までに終了することが可能な最小の平均ＣＰＵ利用率を、サーバＳのＣＰＵ利用率上限以下に確保できることを示す。上記式（１）の制約条件により、バッチＶＭを規定終了時刻までに終了することができる。
【０１４８】
【数１１】
0005978673.tif 000012
【０１４９】
上記式（１１）は、上記式（２）に対応する制約条件の式であり、オンラインＶＭの性能低下を回避するための条件を示す。ここで、ａ0,i,j,mは、サーバＳ（ｉ，ｊ）に配置済みのオンラインＶＭの数であり、Ｍ0,i,j以下の数である。ａは、割当対象になるオンラインＶＭの数であり、Ｍ以下の数である。
【０１５０】
σ0,i,j,mは、サーバＳ（ｉ，ｊ）に配置済みのオンラインＶＭ（ｍ）のＣＰＵ利用率の正規分布における標準偏差である。ｃは、標準偏差に乗算する定数である。従って、τ0,i,j,m＋σ0,i,j,m×ｃは、サーバＳ（ｉ，ｊ）に配置済みのオンラインＶＭ（ｍ）が同時に高負荷になったときのＣＰＵ利用率である。
【０１５１】
σnは、割当対象になるオンラインＶＭ（ｎ）のＣＰＵ利用率の正規分布における標準偏差である。従って、ｘn,i,j（τn＋σn×ｃ）は、割当対象になるオンラインＶＭ（ｎ）が高負荷になったときのＣＰＵ利用率である。
【０１５２】
上記式（２）の条件は、具体的には、複数のオンラインＶＭが同時に高負荷になった場合であっても、オンラインＶＭのＣＰＵ利用率の和が、サーバＳのＣＰＵ利用率上限以下になることを示す。上記式（２）の制約条件により、オンラインＶＭ同士の競合が回避され、オンラインＶＭの性能低下が回避される。
【０１５３】
【数１２】
0005978673.tif 000013
【０１５４】
上記式（１２）は、ラック２０３（ｉ）に割り当てられるＶＭの数が割当対象になるＶＭの数Ｍ以下であることを示す制約条件である。
【０１５５】
【数１３】
0005978673.tif 000014
【０１５６】
【数１４】
0005978673.tif 000015
【０１５７】
【数１５】
0005978673.tif 000016
【０１５８】
上記式（１３）〜式（１５）は、サーバルーム内の冷却状態に関する制約条件である。上記式（１３）〜式（１５）の制約条件により、冷却不十分なサーバＳがなくなるようにすることができる。上記式（１３）〜式（１５）の各変数の値は、例えば、記憶装置５０２に記憶されている。
【０１５９】
また、制御サーバ１００は、サーバルームでのＣＲＡＣ２０４の消費電力を考慮せず、サーバルームでのサーバＳの総消費電力を低減することもできる。この場合、混合整数計画問題について、上記式（５）のΣk=1C（λk＋μkｑin,CRACK）＋Σk=1C（κkｑout,CRACK）、および上記式（１３）〜式（１５）は削除される。
【０１６０】
（サーバＳの機能的構成例）
次に、サーバＳの機能的構成例について説明する。図１８は、サーバＳの機能的構成例を示すブロック図である。サーバＳは、受付部１８０１と、決定部１８０２と、割当部１８０３と、制御部１８０４と、を含む構成である。受付部１８０１〜制御部１８０４は、図３に示した記憶装置３０２に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、通信装置３０５により、その機能を実現する。
【０１６１】
受付部１８０１は、具体的には、例えば、制御サーバ１００から自装置に送信されたＶＭ群の実行要求を受け付ける。ここで、実行要求には、ＶＭ群の各々の実行ファイルが含まれる。また、実行要求には、ＶＭ群の中のオンラインＶＭの実行の優先度を、バッチＶＭよりも高くする旨を示す通知が含まれる。
【０１６２】
受付部１８０１は、より具体的には、例えば、自装置に割り当てられ、同時に実行されるオンラインＶＭとバッチＶＭとの実行要求を受け付ける。ここで、オンラインＶＭとバッチＶＭとは、自装置において同時に実行した場合に、上記式（１０）および式（１１）の制約条件を満たすことができるＶＭ群である。また、実行要求には、ＶＭ群の配置先のＣＰＵを指定する情報が含まれてもよい。これにより、受付部１８０１は、自装置において同時に実行しても、性能低下を回避することができるオンラインＶＭと、規定終了時刻までに終了させることができるバッチＶＭと、の処理を開始するトリガを発生させることができる。
【０１６３】
また、受付部１８０１は、自装置に配置済みのオンラインＶＭと同時に実行されるバッチＶＭの実行要求を受け付けてもよい。また、実行要求には、ＶＭ群の配置先になるオンラインＶＭが配置済みのＣＰＵを指定する情報が含まれてもよい。これにより、受付部１８０１は、自装置において配置済みのオンラインＶＭと同時に実行しても、配置済みのオンラインＶＭが性能低下を生じず、かつ、規定終了時刻までに終了させることができるバッチＶＭの処理を開始するトリガを発生させることができる。
【０１６４】
また、受付部１８０１は、自装置に配置済みのバッチＶＭと同時に実行されるオンラインＶＭの実行要求を受け付けてもよい。また、実行要求には、ＶＭ群の配置先になるバッチＶＭが配置済みのＣＰＵを指定する情報が含まれてもよい。ここで、オンラインＶＭとバッチＶＭとは、自装置において同時に実行した場合に、上記式（１０）および式（１１）の制約条件を満たすことができるＶＭ群である。これにより、受付部１８０１は、自装置において配置済みのバッチＶＭと同時に実行しても、配置済みのバッチＶＭが規定終了時刻までに終了し、かつ、性能低下を回避することができるオンラインＶＭの処理を開始するトリガを発生させることができる。
【０１６５】
決定部１８０２は、仮想マシン群の配置先を、演算処理装置の処理能力内に収まるよう複数の演算処理装置の中のいずれかの演算処理装置に決定する。ここで、仮想マシン群は、他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む。演算処理装置とは、ＣＰＵである。決定部１８０２は、具体的には、例えば、ＶＭ群の配置先を、複数のＣＰＵの中で、ＶＭを配置済みのＣＰＵに決定する。また、決定部１８０２は、実行要求に配置先のＣＰＵを指定する情報が含まれる場合、当該情報が示すＣＰＵを配置先に決定してもよい。これにより、決定部１８０２は、同一ＣＰＵによりＶＭ群を実行し、ＣＰＵリソースを効率よく利用することができる。
【０１６６】
また、決定部１８０２は、前記第１種類の仮想マシンが前記複数の演算処理装置のいずれかの演算処理装置に配置済みである場合、第２種類の仮想マシンの配置先を、第１種類の仮想マシンが配置済みの演算処理装置に決定してもよい。決定部１８０２は、具体的には、例えば、バッチＶＭの配置先を、オンラインＶＭが配置済みのＣＰＵに決定する。これにより、決定部１８０２は、同時に実行しても性能低下を回避することができる配置済みのオンラインＶＭと規定終了時刻までに終了させることができる割当対象になるバッチＶＭとを同一のＣＰＵにより実行させることができる。
【０１６７】
また、決定部１８０２は、前記第２種類の仮想マシンが前記複数の演算処理装置のいずれかの演算処理装置に配置済みである場合、第１種類の仮想マシンの配置先を、第２種類の仮想マシンが配置済みの演算処理装置に決定してもよい。決定部１８０２は、具体的には、例えば、オンラインＶＭの配置先を、バッチＶＭが配置済みのＣＰＵに決定する。これにより、決定部１８０２は、同時に実行しても性能低下を回避することができる割当対象になるオンラインＶＭと規定終了時刻までに終了させることができる配置済みのバッチＶＭとを同一のＣＰＵにより実行させることができる。
【０１６８】
割当部１８０３は、複数の演算処理装置のうち決定部１８０２によって配置先に決定された演算処理装置に、仮想マシン群を割り当てる。これにより、割当部１８０３は、ＶＭの処理をＣＰＵに開始させることができる。
【０１６９】
制御部１８０４は、第１種類の仮想マシンを第２種類の仮想マシンよりも優先して実行するように制御する。制御部１８０４は、具体的には、例えば、オンラインＶＭの優先度を、バッチＶＭの優先度より高くするようにＣＰＵに通知する。そのため、ＣＰＵは、オンラインＶＭの実行には優先してＣＰＵリソースを利用し、バッチＶＭの実行にはオンラインＶＭの実行に利用されていない余りのＣＰＵリソースを利用する。これにより、制御部１８０４は、オンラインＶＭの性能低下を回避することができる。
【０１７０】
（制御サーバ１００によるサーバＳへのＶＭの割当結果）
次に、図１９および図２０を用いて、制御サーバ１００によるサーバＳへのＶＭの割当結果について説明する。
【０１７１】
図１９および図２０は、制御サーバ１００によるサーバＳへのＶＭの割当結果の一例を示す説明図である。図１９の例では、サーバＳ１には、オンラインＶＭ１１と、バッチＶＭ１２と、オンラインＶＭ１３と、バッチＶＭ１４と、オンラインＶＭ１５と、オンラインＶＭ１６と、バッチＶＭ１７と、が配置済みである。また、サーバＳ２には、バッチＶＭ１８が配置済みである。サーバＳ３には、ＶＭが割り当てられておらず、電力供給がされていない。一例として、オンラインＶＭの平均ＣＰＵ利用率は３０％、オンラインＶＭの標準偏差込みのＣＰＵ利用率は８０％、バッチＶＭの平均ＣＰＵ利用率は３０％、各サーバＳの閾値は３６０％とする。
【０１７２】
制御サーバ１００は、オンラインＶＭ１９をいずれかのサーバＳに割り当てる。制御サーバ１００は、割当対象ＶＭテーブル１５００からオンラインＶＭ１９の平均ＣＰＵ利用率とＣＰＵ利用率の標準偏差を取得し、配置済みＶＭテーブル１６００から配置済みのＶＭ１１〜１８の平均ＣＰＵ利用率やＣＰＵ利用率の標準偏差を取得する。そして、制御サーバ１００は、取得した平均ＣＰＵ利用率と標準偏差とを用いて、混合整数計画問題を解く。
【０１７３】
制御サーバ１００は、具体的には、例えば、図４〜図１６に示した各テーブルに記憶された変数の値を設定した混合整数計画問題をＧＬＰＫに入力し、ＧＬＰＫが求めた混合整数計画問題の解を取得する。例えば、ＧＬＰＫは、ＶＭ１９を割り当てた場合の変数ｘn,i,jを、解として出力する。
【０１７４】
例えば、サーバＳ１〜Ｓ３のいずれのサーバＳにおいても、配置済みのＶＭの平均ＣＰＵ利用率と、オンラインＶＭ１９の平均ＣＰＵ利用率「３０％」と、の和が、ＣＰＵ利用率の上限になる閾値「３６０％」以下である。従って、サーバＳ１〜Ｓ３は上記式（１０）の条件を満たしている。
【０１７５】
また、サーバＳ１においては、配置済みのオンラインＶＭの標準偏差込みのＣＰＵ利用率「３２０％」と、オンラインＶＭ１９の標準偏差込みのＣＰＵ利用率「８０％」と、の和が、ＣＰＵ利用率の上限になる閾値「３６０％」を超えている。従って、サーバＳ１は上記式（１１）の条件を満たしていない。また、サーバＳ２，Ｓ３においては、配置済みのオンラインＶＭの標準偏差込みのＣＰＵ利用率と、オンラインＶＭ１９の標準偏差込みのＣＰＵ利用率「８０％」と、の和が、ＣＰＵ利用率の上限になる閾値「３６０％」以下である。従って、サーバＳ２，Ｓ３は上記式（１１）の条件を満たしている。
【０１７６】
また、電源供給されていないサーバＳ３にオンラインＶＭ１９を割り当てる場合、サーバＳ３に電源を供給して、オンラインＶＭ１９を割り当てて、実行させることになる。この場合、サーバルームでの消費電力が増大してしまい、上記式（５）の最小化関数を最小化できなくなる。そのため、ＧＬＰＫは、例えば、オンラインＶＭ１９がラック２０３（１）のサーバＳ２に割り振られているか否かを示す変数ｘ19,1,2を「１」にして出力する。
【０１７７】
そして、制御サーバ１００は、出力された解「ｘ19,1,2＝１」に応じたサーバＳ２にオンラインＶＭ１９を割り当てる。これにより、制御サーバ１００は、オンラインＶＭの性能低下を回避することができる。また、制御サーバ１００は、バッチＶＭが規定終了時刻までに終了し、かつ、ＶＭを割り当てられたサーバＳ数が少なくなるように、ＶＭを割り当てることができる。
【０１７８】
また、制御サーバ１００は、オンラインＶＭ１９を割り当てると、割当対象ＶＭテーブル１５００のオンラインＶＭ１９に関するレコードを参照して、配置済みＶＭテーブル１６００にオンラインＶＭ１９に関するレコードを追加する。また、制御サーバ１００は、割当対象ＶＭテーブル１５００のオンラインＶＭ１９に関するレコードを削除する。また、制御サーバ１００は、初期配置テーブル１３００のサーバＳ２に関する初期配置項目を更新する。これにより、制御サーバ１００は、以降において、新たにＶＭを割り当てる場合、オンラインＶＭ１９の平均ＣＰＵ利用率とＣＰＵ利用率の標準偏差を、配置済みＶＭテーブル１６００から取得できる。
【０１７９】
一方、サーバＳ２は、自装置内で、配置済みのＶＭ群の中のオンラインＶＭの性能低下を回避し、配置済みのＶＭ群の中のバッチＶＭを規定終了時刻までに終了することができるように、オンラインＶＭ１９をいずれかのＣＰＵに実行させる。これにより、サーバＳ２は、オンラインＶＭの性能低下を回避し、バッチＶＭを規定終了時刻までに終了することができる。
【０１８０】
次に、図２０の例では、サーバＳ２に割り当てられたオンラインＶＭ１９が終了している。ここで、サーバＳ２に割り当てられたＶＭが、バッチＶＭ１８であることを検出すると、制御サーバ１００は、バッチＶＭ１８を他のサーバＳに移行できるかを試行する。
【０１８１】
具体的には、制御サーバ１００は、配置済みのＶＭからバッチＶＭ１８を除外し、かつ、割当対象になるＶＭとしてバッチＶＭ１８を採用した場合の混合整数計画問題を解き、バッチＶＭ１８の割り当てをやり直す。
【０１８２】
具体的には、制御サーバ１００は、配置済みＶＭテーブル１６００のバッチＶＭ１８に関するレコードを参照して、割当対象ＶＭテーブル１５００にバッチＶＭ１８に関するレコードを追加する。また、制御サーバ１００は、配置済みＶＭテーブル１６００のバッチＶＭ１８に関するレコードを削除する。また、制御サーバ１００は、初期配置テーブル１３００のサーバＳ１，Ｓ２に関する初期配置項目を更新する。これにより、制御サーバ１００は、バッチＶＭ１８を割当対象になるＶＭとして扱うことができる。
【０１８３】
そして、制御サーバ１００は、図４〜図１６に示した各テーブルに記憶された変数の値を設定した混合整数計画問題をＧＬＰＫに入力し、ＧＬＰＫが求めた混合整数計画問題の解を取得する。例えば、ＧＬＰＫは、ＶＭ１８を割り当てた場合の変数ｘn,i,jを、解として出力する。そして、制御サーバ１００は、混合整数計画問題の解に応じたサーバＳにバッチＶＭ１８を割り当てる。
【０１８４】
例えば、サーバＳ１〜Ｓ３のいずれのサーバＳにおいても、配置済みのＶＭの平均ＣＰＵ利用率と、バッチＶＭ１８の平均ＣＰＵ利用率「３０％」と、の和が、ＣＰＵ利用率の上限になる閾値「３６０％」以下である。従って、サーバＳ１〜Ｓ３は上記式（１０）の条件を満たしている。
【０１８５】
また、サーバＳ１〜Ｓ３のいずれのサーバＳにおいても、配置済みのオンラインＶＭの標準偏差込みのＣＰＵ利用率が、ＣＰＵ利用率の上限になる閾値「３６０％」以下である。従って、サーバＳ１〜Ｓ３は上記式（１１）の条件を満たしている。
【０１８６】
また、サーバＳ２にバッチＶＭ１８を割り当てない場合、サーバＳ２にはＶＭが一つも割り当てられなくなる。この場合、サーバＳ２に割り当てなければ、制御サーバ１００は、サーバＳ２への電力供給を停止することができる。これにより、サーバルームでの消費電力が低減され、上記式（５）の最小化関数が小さくなる。また、サーバＳ３にバッチＶＭ１８を割り当てると、制御サーバ１００は、サーバＳ３に電源を供給して、バッチＶＭ１８を実行させることになる。この場合、サーバルームでの消費電力が増大してしまい、上記式（５）の最小化関数を最小化できない。以上より、ＧＬＰＫは、例えば、バッチＶＭ１８がラック２０３（１）のサーバＳ１に割り振られているか否かを示す変数ｘ19,1,1を「１」にして出力する。
【０１８７】
ここで、制御サーバ１００は、混合整数計画問題の解「ｘ19,1,1＝１」に応じたサーバＳ１にバッチＶＭ１８を割り当て、サーバＳ２からバッチＶＭ１８を移行させる。そして、制御サーバ１００は、サーバＳ２に割り当てられたＶＭがないことを検出すると、サーバＳ２への電力供給の停止をＵＰＳ２０６に要求する。これにより、サーバルームの消費電力が低減される。また、制御サーバ１００は、ＶＭの移行においても、上記式（１０）および式（１１）の条件を満たすサーバＳにＶＭを移行するため、オンラインＶＭの性能低下を回避し、バッチＶＭを規定終了時刻までに終了させることができる。
【０１８８】
また、混合整数計画問題の解に応じたサーバＳがサーバＳ２であれば、制御サーバ１００は、ＶＭの移行を行わない。これにより、制御サーバ１００は、消費電力を低減できる移行先があれば、ＶＭを移行することにより、サーバルームの消費電力を低減することができる。また、一般に移行の際にはＶＭの性能が悪化するため、制御サーバ１００は、オンラインＶＭを移行すると、クライアント２０２への応答が遅れ、クライアント２０２の利用者が不利益を被ったり、ＳＬＡ違反を生じたりする場合がある。そのため、制御サーバ１００は、オンラインＶＭについては移行を行わないようにしてもよい。
【０１８９】
（割当処理）
次に、図２１を用いて、制御サーバ１００によって実行される割当処理の詳細な処理手順について説明する。
【０１９０】
図２１は、割当処理の詳細な処理手順を示すフローチャートである。図２１において、まず、制御サーバ１００は、ＶＭの割当要求を受け付けたか否かを判定する（ステップＳ２１０１）。ここで、ＶＭの割当要求を受け付けていない場合（ステップＳ２１０１：Ｎｏ）、制御サーバ１００は、ステップＳ２１０１に戻り、割当要求を待つ。
【０１９１】
一方、ＶＭの割当要求を受け付けた場合（ステップＳ２１０１：Ｙｅｓ）、制御サーバ１００は、割当要求されたＶＭがオンラインＶＭか否かを判定する（ステップＳ２１０２）。ここで、オンラインＶＭである場合（ステップＳ２１０２：Ｙｅｓ）、制御サーバ１００は、割当対象ＶＭテーブル１５００から、オンラインＶＭの平均ＣＰＵ利用率と、オンラインＶＭのＣＰＵ利用率の標準偏差と、を取得する（ステップＳ２１０３）。そして、制御サーバ１００は、ステップＳ２１０５に移行する。
【０１９２】
一方、オンラインＶＭではない場合（ステップＳ２１０２：Ｎｏ）、制御サーバ１００は、割当対象ＶＭテーブル１５００から、バッチＶＭの平均ＣＰＵ利用率を取得する（ステップＳ２１０４）。そして、制御サーバ１００は、ステップＳ２１０５に移行する。
【０１９３】
次に、制御サーバ１００は、取得したバッチＶＭの平均ＣＰＵ利用率、または取得したオンラインＶＭの平均ＣＰＵ利用率と標準偏差を用いて混合整数計画問題を解く（ステップＳ２１０５）。
【０１９４】
次に、制御サーバ１００は、混合整数計画問題の解に応じて、ＶＭを割り当てる（ステップＳ２１０６）。そして、制御サーバ１００は、割当処理を終了する。これにより、制御サーバ１００は、オンラインＶＭの性能低下を回避し、バッチＶＭが規定終了時刻までに終了し、かつ、ＶＭを割り当てられたサーバＳ数が少なくなるように、ＶＭを割り当てることができる。
【０１９５】
以上説明したように、割当装置は、オンラインＶＭの平均ＣＰＵ利用率と、オンラインＶＭのＣＰＵ利用率のσ×ｃと、の和が、サーバＳでのＣＰＵ利用率の上限を超えない条件の下で、ＶＭを割り当てる。これにより、割当装置は、サーバＳでのオンラインＶＭ同士の競合を回避させることができ、オンラインＶＭの性能低下を回避することができる。
【０１９６】
また、割当装置は、ＶＭ群の複数のバッチＶＭの平均ＣＰＵ利用率と、ＶＭ群の複数のオンラインＶＭの平均ＣＰＵ利用率と、の和が、サーバＳでのＣＰＵ利用率の上限を超えない条件の下で、ＶＭを割り当てる。そのため、割当装置は、バッチＶＭが規定終了時刻までに終了するようにＶＭを割り当てることができる。
【０１９７】
また、割当装置は、ＶＭ群をまとめて１つのサーバＳに割り当てることにより、サーバルームにおけるＶＭが割り当てられたサーバＳ数を減少させることができる。結果、割当装置は、ＶＭが割り当てられていないサーバＳがあれば、電力供給を停止して、サーバルームの消費電力を低減することができる。
【０１９８】
また、割当装置は、配置済みのＶＭを移行させることにより、サーバルームにおけるＶＭが割り当てられたサーバＳ数を減少させることができる。結果、割当装置は、ＶＭが割り当てられていないサーバＳがあれば、電力供給を停止して、サーバルームの消費電力を低減することができる。
【０１９９】
この場合、割当装置は、配置済みのＶＭがオンラインＶＭである場合、オンラインＶＭを移行対象にしないことにより、オンラインＶＭの性能低下を回避することができる。
【０２００】
なお、本実施の形態で説明した割当方法および情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータにより実行することにより実現することができる。本割当プログラムおよび本情報処理プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本割当プログラムおよび本情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
【０２０１】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０２０２】
（付記１）他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の演算処理装置使用率の予測値がしきい値以下となる前記仮想マシン群を割当装置から受け付ける受付部と、
前記受付部によって受け付けられた前記仮想マシン群の配置先を、演算処理装置の処理能力内に収まるよう複数の演算処理装置の中のいずれかの演算処理装置に決定する決定部と、
前記複数の演算処理装置のうち前記決定部によって配置先に決定された演算処理装置に、前記仮想マシン群を割り当てる割当部と、
前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように制御する制御部と、
を有することを特徴とする情報処理装置。
【０２０３】
（付記２）前記決定部は、
前記第１種類の仮想マシンが前記複数の演算処理装置のいずれかの演算処理装置に配置済みである場合、前記第２種類の仮想マシンの配置先を、前記第１種類の仮想マシンが配置済みの演算処理装置に決定することを特徴とする付記１に記載の情報処理装置。
【０２０４】
（付記３）前記決定部は、
前記第２種類の仮想マシンが前記複数の演算処理装置のいずれかの演算処理装置に配置済みである場合、前記第１種類の仮想マシンの配置先を、前記第２種類の仮想マシンが配置済みの演算処理装置に決定することを特徴とする付記１に記載の情報処理装置。
【０２０５】
（付記４）サーバ群の中から、他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の割当先を選択する選択部と、
前記仮想マシン群を同一のサーバに割り当てた場合の前記仮想マシン群の演算処理装置使用率に基づく演算処理装置使用率の予測値を取得する取得部と、
前記取得部によって取得された予測値が、前記選択部によって選択されたサーバの演算処理装置数に基づくしきい値以下であるか否かを判断する判断部と、
前記判断部によってしきい値以下と判断された場合、前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように、前記選択されたサーバに前記仮想マシン群を割り当てる割当部と、
を有することを特徴とする割当装置。
【０２０６】
（付記５）前記選択部は、
前記第１種類の仮想マシンが配置済みであるサーバを選択し、
前記割当部は、
前記判断部によってしきい値以下と判断された場合、前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように、前記選択されたサーバに、前記第２種類の仮想マシンを割り当てることを特徴とする付記４に記載の割当装置。
【０２０７】
（付記６）前記サーバ群に配置済みの前記第２種類の仮想マシン群の中から、予測残存実行時間が最長の前記第２種類の仮想マシンを特定する特定部を有し、
前記選択部は、
前記特定部によって特定された予測残存実行時間が最長の前記第２種類の仮想マシンが配置済みのサーバ以外であって、かつ、前記第１種類の仮想マシンが配置済みであるサーバを選択することを特徴とする付記５に記載の割当装置。
【０２０８】
（付記７）前記選択部は、
前記第２種類の仮想マシンが配置済みであるサーバを選択し、
前記割当部は、
前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように、前記選択されたサーバに、前記第１種類の仮想マシンを割り当てることを特徴とする付記４に記載の割当装置。
【０２０９】
（付記８）前記サーバ群に配置済みの前記第２種類の仮想マシン群の中から、予測残存実行時間が最長の前記第２種類の仮想マシンを特定する特定部を有し、
前記選択部は、
前記特定部によって特定された予測残存実行時間が最長の前記第２種類の仮想マシンが配置済みであるサーバを選択することを特徴とする付記７に記載の割当装置。
【０２１０】
（付記９）前記サーバ群のうちいずれの仮想マシンも割り当てられていないサーバの消費電力が低下するように制御する制御部を備えることを特徴とする付記４〜８のいずれか一つに記載の割当装置。
【０２１１】
（付記１０）コンピュータが、
他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の演算処理装置使用率の予測値がしきい値以下となる前記仮想マシン群を割当装置から受け付け、
受け付けられた前記仮想マシン群の配置先を、演算処理装置の処理能力内に収まるよう複数の演算処理装置の中のいずれかの演算処理装置に決定し、
前記複数の演算処理装置のうち配置先に決定された演算処理装置に、前記仮想マシン群を割り当て、
前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先実行するように制御する、
処理を実行することを特徴とする情報処理方法。
【０２１２】
（付記１１）コンピュータが、
サーバ群の中から、他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の割当先を選択し、
前記仮想マシン群を同一のサーバに割り当てた場合の前記仮想マシン群の演算処理装置使用率に基づく演算処理装置使用率の予測値を取得し、
取得された予測値が、選択されたサーバの演算処理装置数に基づくしきい値以下であるか否かを判断し、
しきい値以下と判断された場合、前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように、前記選択されたサーバに前記仮想マシン群を割り当てる、
処理を実行することを特徴とする割当方法。
【０２１３】
（付記１２）コンピュータに、
他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の演算処理装置使用率の予測値がしきい値以下となる前記仮想マシン群を割当装置から受け付け、
受け付けられた前記仮想マシン群の配置先を、演算処理装置の処理能力内に収まるよう複数の演算処理装置の中のいずれかの演算処理装置に決定し、
前記複数の演算処理装置のうち配置先に決定された演算処理装置に、前記仮想マシン群を割り当て、
前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先して実行するように制御する、
処理を実行させることを特徴とする情報処理プログラム。
【０２１４】
（付記１３）コンピュータに、
サーバ群の中から、他の装置と双方向通信により所定の処理を実行する第１種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第２種類の仮想マシンと、を含む仮想マシン群の割当先を選択し、
前記仮想マシン群を同一のサーバに割り当てた場合の前記仮想マシン群の演算処理装置使用率に基づく演算処理装置使用率の予測値を取得し、
取得された予測値が、選択されたサーバの演算処理装置数に基づくしきい値以下であるか否かを判断し、
しきい値以下と判断された場合、前記第１種類の仮想マシンを前記第２種類の仮想マシンよりも優先実行するように、前記選択されたサーバに前記仮想マシン群を割り当てる、
処理を実行させることを特徴とする割当プログラム。
【符号の説明】
【０２１５】
１７０１  受付部
１７０２  特定部
１７０３  選択部
１７０４  取得部
１７０５  判断部
１７０６  割当部
１７０７  検出部
１７０８  制御部
１８０１  受付部
１８０２  決定部
１８０３  割当部
１８０４  制御部
【図１】
0005978673.tif 000017
【図２】
0005978673.tif 000018
【図３】
0005978673.tif 000019
【図４】
0005978673.tif 000020
【図５】
0005978673.tif 000021
【図６】
0005978673.tif 000022
【図７】
0005978673.tif 000023
【図８】
0005978673.tif 000024
【図９】
0005978673.tif 000025
【図１０】
0005978673.tif 000026
【図１１】
0005978673.tif 000027
【図１２】
0005978673.tif 000028
【図１３】
0005978673.tif 000029
【図１４】
0005978673.tif 000030
【図１５】
0005978673.tif 000031
【図１６】
0005978673.tif 000032
【図１７】
0005978673.tif 000033
【図１８】
0005978673.tif 000034
【図１９】
0005978673.tif 000035
【図２０】
0005978673.tif 000036
【図２１】
0005978673.tif 000037