(57)【要約】【課題】仮想計算機システムの各ＬＰＡＲ上のＯＳの負荷と、各ＯＳで動作するワークロードの知識に基づく設定情報を元に、各ＬＰＡＲに対する計算機資源の割当を自動的かつ最適に行う仮想計算機システムおよび方法を提供する。【解決手段】各ＯＳ上に負荷計測部を搭載してＯＳ負荷を計測し、各ＯＳのワークロードに関する知識は、管理者がユーザインタフェースから設定する。適応制御部は、負荷と設定の値に従って各ＬＰＡＲに対する計算機資源の割当率を求め、ハイパバイザに対して割当変更指示を出して割当変更する。【選択図】図３
2007200346.tif 000002
【特許請求の範囲】
【請求項１】
物理計算機を複数の論理区画に分割し、各論理区画上でそれぞれＯＳを動作させ、各論理区画に対する物理計算機の資源の割当を制御するハイパバイザを有する仮想計算機システムであって、
前記仮想計算機システムの制御動作に拘わる一つまたは複数の設定を入力するユーザインタフェースと、
該ユーザインタフェースから入力された設定に従って、各論理区画上のＯＳの負荷を計測する負荷計測手段と、
前記ユーザインタフェースから入力された設定と、該負荷計測手段によって計測された各論理区画上のＯＳの負荷に基づいて、各論理区画に割当てる計算機資源の割当率を決定し、該割当率が前回の割当率と異なる場合は前記ハイパバイザに対し割当率の変更を指示する適応制御手段とを有し、
前記ハイパバイザは、該適応制御手段からの指示に従って各論理区画に対する計算機資源の割当率を動的に変更する割当率変更手段を設けたことを特徴とする仮想計算機システム。
【請求項２】
前記ユーザインタフェースは、前記制御動作に拘わる設定として、負荷の種類を指定する負荷種類設定手段を有し、
前記負荷計測手段は、該負荷種類設定手段で指定された種類の負荷を計測し、
前記適応制御手段は、該負荷計測手段によって計測された負荷に基づいて各論理区画に対する計算機資源の割当率を決定することを特徴とする請求項１に記載の仮想計算機システム。
【請求項３】
前記負荷種類設定手段で設定可能な負荷の種類は、ＣＰＵ使用率、メモリ使用率、ディスク使用率、ネットワーク使用率の中の少なくとも一つを含み、該負荷種類の中から一つ、または、複数の負荷を選択して指定することを特徴とする請求項２に記載の仮想計算機システム。
【請求項４】
前記ユーザインタフェースは、前記制御動作に拘わる設定として、制御の時間間隔を指定する制御インターバル設定手段を有し、
前記負荷計測手段は、該制御インターバル設定手段で指定された制御の時間間隔毎に各論理区画上のＯＳの負荷を繰り返し計測し、
前記適応制御手段は、該ユーザインタフェースで指定された制御の時間間隔毎に、割当率決定と割当率変更の指示を繰り返して行うことを特徴とする請求項１に記載の仮想計算機システム。
【請求項５】
前記ユーザインタフェースは、前記制御動作に拘わる設定として、適応制御手段の機能を有効または無効のいずれかに指定する適応制御設定手段を有し、
前記負荷計測手段は該適応制御設定手段によって適応制御手段の機能が有効に指定された場合にのみ、各論理区画上のＯＳの負荷を計測し、
前記適応制御手段は前記適応制御設定手段が適応制御手段の機能を有効に指定した場合にのみ、割当率決定と割当率変更の指示を行うことを特徴とする請求項１に記載の仮想計算機システム。
【請求項６】
前記ユーザインタフェースは、前記制御動作に拘わる設定として、前記負荷計測手段で計測した負荷に対する加工の有無及び加工の種類を指定する負荷加工設定手段を有し、
該負荷加工設定手段で負荷に対して加工を施す設定が指定された場合、
前記負荷計測手段は各論理区画上のＯＳの負荷を計測し、
計測した負荷に対して前記負荷計測手段または適応制御手段は負荷加工設定手段で指定された加工を施し、
前記適応制御手段は、該加工された負荷に基づいて各論理区画に割当てる計算機資源の割当率を決定し、割当率変更の指示を行う一方、
前記負荷加工設定手段で負荷に対し加工を施さない設定が指定された場合、
前記負荷計測手段は各論理区画上のＯＳの負荷を計測し、
前記適応制御手段は該負荷の値に基づいて割当率決定と割当率変更の指示を行うことを特徴とする請求項１に記載の仮想計算機システム。
【請求項７】
前記負荷加工設定手段は、移動平均または規格化を指定可能であって、該負荷加工設定手段で移動平均が指定された場合では、前記負荷計測手段または適応制御手段は負荷計測手段が計測した負荷に対する加工として、最新の負荷の値を含む指定された個数の負荷の移動平均を取って、得られた値を加工負荷とする一方、
前記負荷加工設定手段で規格化が指定された場合では、前記負荷計測手段または適応制御手段は負荷計測手段が計測した負荷に対する加工として、最新の負荷に規格化を施すことを特徴とする請求項６に記載の仮想計算機システム。
【請求項８】
前記ユーザインタフェースは、前記制御動作に拘わる設定として、前記適応制御手段が負荷に基づいて各論理区画に対する計算機資源の割当率を計算する方法を指定する割当率計算方法指定手段を有し、
前記適応制御手段は、該割当率計算方法指定手段で指定された割当率計算法に従って割当率を決定し、割当率変更の指示を行うことを特徴とする請求項１に記載の仮想計算機システム。
【請求項９】
前記割当率計算方法指定手段は、比例法または閾値法を指定可能であって、
該割当率計算方法指定手段にて比例法が設定された場合、
前記適応制御手段は負荷計測手段が計測した各論理区画上のＯＳの負荷に比例して各論理区画に割当てる計算機資源の割当率を決定して、割当率変更の指示を行う一方、
前記割当率計算方法指定手段にて閾値法が設定された場合、
前記適応制御手段は負荷計測手段が計測した各論理区画上のＯＳの負荷のいずれかが高負荷判定閾値を超えたら、当該論理区画以外の論理区画に割当てる計算機資源の割当率を減らし、減らした分の合計資源率を当該論理区画の割当率に加えるように割当率を決定して、割当率変更の指示を行い、該高負荷状態の論理区画上のＯＳの負荷が低負荷判定閾値より小さくなれば、各論理区画に割当てる計算機資源の割当率を変更以前の値に復帰させ、割当率変更の指示を行うことを特徴とする請求項８に記載の仮想計算機システム。
【請求項１０】
前記ユーザインタフェースは、前記制御動作に拘わる設定として、各論理区画毎に割当てる計算機資源の割当量または割当率の最小値と最大値を指定する割当範囲設定手段を有し、
前記適応制御手段は負荷計測手段が計測した各論理区画上のＯＳの負荷の値に基づいて各論理区画に割当てる計算機資源を決定する際に、割当率または割当量が前記割当範囲設定手段で指定された最小値以上最大値以下となるように割当率を調整し、割当率変更指示を行うことを特徴とする請求項１に記載の仮想計算機システム。
【請求項１１】
前記ハイパバイザは、契約を結んだ顧客毎に論理区画を割当て、
顧客との契約条件に応じて該顧客に対応した論理区画に割当てる計算機資源の割当率の最小値と最大値を設定する手段とを有することを特徴とする請求項１０に記載の仮想計算機システム。
【請求項１２】
前記ハイパバイザは、契約を結んだ顧客毎に論理区画を割当て、かつ、前記ハイパバイザに各顧客毎に契約条件を設定する契約ユーザインタフェースを設け、
顧客が該契約ユーザインタフェースにより契約条件を指定すると、契約ユーザインタフェースは設定された該契約条件に応じて、当該顧客に対応した論理区画に割当てる計算機資源の割当率の最小値と最大値を設定することを特徴とする請求項１０に記載の仮想計算機システム。
【請求項１３】
物理計算機を複数の論理区画に分割し、各論理区画上でそれぞれＯＳを動作させ、各論理区画に対する物理計算機の資源の割当を制御するハイパバイザを有する仮想計算機システムであって、
各論理区画上のＯＳの負荷を計測する負荷計測手段と、
該負荷計測手段によって計測された各論理区画上のＯＳの負荷に基づいて、各論理区画に割当てる計算機資源の割当率を決定し、該割当率が前回の割当率と異なる場合は前記ハイパバイザに対して割当率の変更を指示する適応制御手段と、
前記負荷計測手段が計測した負荷、及び該適応制御手段が決定した各論理区画に対する計算機資源の割当率の少なくとも一方を出力する出力ユーザインタフェースとを有し、
前記ハイパバイザは前記適応制御手段からの指示に従って各論理区画に対する計算機資源の割当率を動的に変更する割当率変更手段を設けたことを特徴とする仮想計算機システム。
【請求項１４】
ハイパバイザによって物理計算機を複数の論理区画に分割し、各論理区画上でＯＳを動作させる仮想計算機のプログラムであって、
各論理区画上で動作するＯＳの負荷を計測する手段と、
該負荷に基づいて各論理区画に割当てる物理計算機資源の割当率を決定する手段と、
該割当率が前回の割当率と異なる場合に、各論理区画に対する計算機資源の割当率が該割当率となるように割当率を変更する手段とを物理計算機に機能させることを特徴とするプログラム。
【請求項１５】
制御に拘わる設定を指定するユーザインタフェースを有し、ハイパバイザによって物理計算機を複数の論理区画に分割し、各論理区画上でＯＳを動作させる仮想計算機のプログラムであって、
前記ユーザインタフェースで指定された設定に従って各論理区画上で動作するＯＳの負荷を計測する手段と、
該負荷に基づいて各論理区画に割当てる物理計算機資源の割当率を決定する手段と、
該割当率がこれまで割当ててきた割当率と異なる場合に、各論理区画に対する計算機資源の割当率が該割当率となるように割当率を変更する手段とを物理計算機に機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想計算機システムに関し、各ＬＰＡＲ上のＯＳ上で処理しているワークロードに関する少量の知識と、各ＯＳの負荷に従って、計算機資源の各ＬＰＡＲに対する割当を自動的に動的変更する技術に関する。
【背景技術】
【０００２】
仮想計算機システムは、ハイパバイザにより、物理計算機を複数の論理区画（ＬＰＡＲ：Ｌｏｇｉｃａｌ  ＰＡＲｔｉｔｉｏｎ）に分割し、各ＬＰＡＲに対して計算機資源（ＣＰＵ、主記憶、Ｉ／Ｏ）を割当て、各ＬＰＡＲ上でそれぞれＯＳを動作させるものである。
【０００３】
昨今のＷｅｂ（World  Wide  Webの略称）を利用した計算機システムに対するアクセスは、一般に負荷の予測が困難で、突然アクセスが集中して負荷ピークが現れることがしばしばある。またピーク以外の平常時においては一般に負荷が低いことが知られている。
【０００４】
時々訪れる負荷ピークのために、初めから多くの計算機資源をＬＰＡＲに対して割当てておくのではなく、平常時には少しの資源を割当てておき、負荷ピークが来たらそれに適応して割当てる資源を増やすことで（これを負荷適応制御と呼ぶ）、無駄な計算機資源を削減したり、あるいはサポートできるＬＰＡＲの数を増やすことができる。
【０００５】
これを実現するには、まず各ＬＰＡＲに対する計算機資源の割当を動的に変更する必要がある。参考文献「ＨＩＴＡＣ  プロセッサ資源分割管理機構（ＰＲＭＦ）（日立製作所マニュアル８０８０−２−１４８−４０）」には、各ＬＰＡＲに対する計算機資源の割当てを動的に変更する記述がある。それによると、各ＬＰＡＲに対する計算機資源の割当を変更する場合、オペレータ（管理者）が操作をして資源割当変更命令を発行し、この命令に従ってハイパバイザは各ＬＰＡＲに対する計算機資源の割当を動的に変更する。
【０００６】
このようなオペレータ操作に基づく割当変更は、システムダウンなどの緊急時や突然の負荷ピークなど迅速に割当変更を必要とする場合には対応できなかった。
【０００７】
これに対して、特開平９−２６８８９号公報では外部条件の変化に応じて自動的にＣＰＵ割当量を変更する仮想計算機システムを開示している。この発明では、緊急事態や運用スケジュールに従って、各ＬＰＡＲに対する計算機資源の割り当てをオペレータの介在無しに自動的に変更できる。また、ＣＰＵ割当量の定義値と実際のプロセッサ使用時間とを比較することにより、プロセッサ使用時間の過不足に応じてプロセッサ割当率の定義値を変更できる。
【特許文献１】特開平９−２６８８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記従来の発明においては、プロセッサ使用時間の過不足に応じた割当を行っているが、ＣＰＵの使用時間で計算機システムの負荷を知ることは困難であり、従って負荷に適応して計算機資源の各ＬＰＡＲに対する割当率を適切に変更することはできなかった。
【０００９】
また、各ＬＰＡＲの負荷の値を正しく知ることができたとしても、負荷のみから各ＬＰＡＲに対する計算機資源の適切な割当率を常に正しく計算することは困難であり、特に、各ＬＰＡＲ上のＯＳ上で実行されるワークロード性質（定常時の負荷、ピーク時の負荷、ピーク幅など）が異なれば、各ＬＰＡＲに対する計算機資源の適切な割当率は異なると考えられるからである。
【００１０】
正しい負荷の値とワークロードに関する少量の知識を合わせることで、各ＬＰＡＲに対する計算機資源の割当を自動的にかつ適切に行うシステムを提供できると考えられる。
【００１１】
そこで本発明の課題は、各ＬＰＡＲ上で動作するＯＳの負荷に適応して、また、管理者がワークロードに関する少量の知識（ワークロードの性質）をシステムの制御のパラメータとして与えることにより、各ＬＰＡＲに対する計算機資源の割当量を自動的にかつ適切に行う仮想計算機システム及びプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明は、物理計算機を複数のＬＰＡＲ（論理区画）に分割し、各ＬＰＡＲ上でそれぞれＯＳが動作し、各ＬＰＡＲに対する物理計算機の資源の割当を制御するハイパバイザ（割当手段）を有する仮想計算機システムであって、仮想計算機システムの制御動作に拘わる一つまたは複数の設定を入力するユーザインタフェースと、該ユーザインタフェースから入力された設定に従って、各ＬＰＡＲ上のＯＳの負荷を計測する負荷計測手段と、該ユーザインタフェースから入力された設定と、該負荷計測手段によって計測された各ＬＰＡＲ上のＯＳの負荷に基づいて、各ＬＰＡＲに割当てる計算機資源の割当率を決定し、該割当率がこれまで割り当ててきた割当率と異なる場合はハイパバイザに対し割当率の変更を指示する（割当率変更）適応制御手段を有し、ハイパバイザは該適応制御手段からの指示に従って各ＬＰＡＲに対する計算機資源の割当率を動的に変更する手段を設ける。
【発明の効果】
【００１３】
したがって本発明は、各ＬＰＡＲ上で動作する各ＯＳの負荷と、各ＯＳ上で動作するワークロードに関する知識に基づいた設定情報から、各ＬＰＡＲに対して計算機資源を動的にかつ最適に配分し、管理が容易で顧客との契約に合わせた性能を保証できる仮想計算機システムを提供することが可能となり、あるいは、そのような仮想計算機システムにおいて資源を最適に配分するプログラムを提供することが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の一実施形態を添付図面に基づいて説明する。
｛１．物理計算機｝
図１に、本発明の仮想計算機システムを動作させる物理計算機１３０の構成を示す。１００〜１０ｎはＣＰＵ０〜ＣＰＵｎを、１２０〜１２ｋはＩ／Ｏ０〜Ｉ／Ｏｋを示す。１１１は主記憶を表し、１１０はＣＰＵ（１００〜１０ｎ）とＩ／Ｏ（１２０〜１２ｋ）を主記憶１１１と結合するメモリコントローラを示す。
【００１５】
なお、ＣＰＵは１台でも良いし、２台以上であっても良い。ＣＰＵが２台以上の場合、各ＣＰＵ（１１０〜１０ｎ）は主記憶１１１を共有する密結合型マルチプロセッサであるとする。
【００１６】
１４０は本物理計算機のコンソールでありＩ／Ｏ０（１２０）に接続されている。
｛２．仮想計算機システム｝
図２に本発明を構成する仮想計算機システムの階層図を示す。
【００１７】
物理計算機１３０上でハイパバイザ２００を動作させる。ハイパバイザは物理計算機１３０を２つ以上の論理区画（ＬＰＡＲ：Ｌｏｇｉｃａｌ  ＰＡＲｔｉｔｉｏｎ）ＬＰＡＲ０（２１０）〜ＬＰＡＲｍ（２１ｍ）に分割する。ＬＰＡＲ０〜ＬＰＡＲｍのそれぞれでＯＳ０（２２０）〜ＯＳｍ（（２２ｍ）を動作させ、各ＯＳ上でそれぞれアプリケーション０（２３０）〜アプリケーションｍ（２３ｍ）を動作させる。
【００１８】
ハイパバイザは、各ＬＰＡＲ（２１０〜２１ｍ）に対して物理計算機１３０のＣＰＵ（１００〜１０ｎ）、主記憶１１１、Ｉ／Ｏ（１２０〜１２ｋ）（計算機資源と呼ぶ）を割当てる。
｛３．専用割当と共用割当｝
ハイパバイザが計算機資源を各ＬＰＡＲに割当てる方法は、専用割当と共用割当の二種類ある。
【００１９】
専用割当は、特定の計算機資源を特定のＬＰＡＲに専用的に割当てる方法である。計算機資源のうち、主記憶（１１１）とＩ／Ｏ（１２０〜１２ｋ）は共用割当される。
【００２０】
なお、ＣＰＵ（１００〜１０ｎ）を専用割当にすることもできる。ＣＰＵの専用割当の場合、あるＬＰＡＲに対して専用割当するＣＰＵの数をそのＬＰＡＲに対するＣＰＵの割当量と呼ぶ。
【００２１】
一方、共用割当は、計算機資源を各ＬＰＡＲに少しづつ時分割によって割り当てる。この共用割当は、ＣＰＵに対してのみ行われる。あるＬＰＡＲに対しＣＰＵを割当てている時間の、全ＬＰＡＲにＣＰＵを割当てている時間に対する割合を、ＣＰＵ割当率と呼ぶ（％で表す。値は０〜１００の間）。
【００２２】
このように、専用割当は量を単位とするが、共用割当は率を単位とする。しかし、専用割当において、あるＬＰＡＲに専用割当するＣＰＵ数の全ＣＰＵ数ｋ＋１に対する割合をＣＰＵ割当率（％で表現する。値は０〜１００の間）とすれば、専用割当も共用割当も同様に率を単位として割当を指示することができる。
【００２３】
例えば、２つのＣＰＵ（ＣＰＵ０とＣＰＵ１）を持つ物理計算機を２つのＬＰＡＲ（ＬＰＡＲ０と１）に分割して使用する場合、ＬＰＡＲ０とＬＰＡＲ１に対するＣＰＵの割当率をそれぞれ５０％とすると、空間分割では各ＬＰＡＲに対しＣＰＵが一つづつ割当てられ、時間分割では２つのＣＰＵを同一の時間（タイムスライス）だけＬＰＡＲ０とＬＰＡＲ１に交互に割当てるという意味になり、どちらの場合にも適用できる。
【００２４】
ただし、空間分割では割当率はＣＰＵの台数によって規格化されてしまうが（例えば２ＣＰＵの場合の割当率は０％、５０％、１００％のいずれか）、時間分割にはそのような制約はなく、割当率を０〜１００％の範囲で自由に指定できる。
【００２５】
従って以後の説明では、割当率に制約の無い時間分割を割当方法として考えるが、空間分割の場合も割当率に制約を設けることによって適用できる。
【００２６】
また、以下の説明では各ＬＰＡＲに対して動的に配分する計算機資源は、ＣＰＵ（１００〜１０ｎ）のみであるとする。主記憶１１１やＩ／Ｏ装置（１２０〜１２ｋ）に対する動的配分もＣＰＵの場合と同様である。
｛４．計算機資源の動的割当変更｝
ハイパバイザ２００は予めシステム運用前に設定された各ＬＰＡＲ（２１０〜２１ｍ）に対する計算機資源の割当率に従って、各ＬＰＡＲに対して計算機資源を割当てる。
【００２７】
管理者（オペレータ）が物理計算機のコンソール１４０から割当率を変更すると、ハイパバイザ２００は各ＬＰＡＲ（２１０〜２１ｍ）に対する計算機資源の割当率を変更する。
【００２８】
あるいは、ハイパバイザ内に設定されたスケジュールに従い、設定された時刻が来ると割当率を変更する。
【００２９】
これらの変更方法に加えて、本発明では各ＬＰＡＲ（２１０〜２１ｍ）上のＯＳ（２２０〜２２ｍ）の上で動作するアプリケーションからハイパバイザに対して資源割当変更命令を発行し、資源割当変更命令を受けたハイパバイザは即座にその要求に答えて割当変更を行う機能を設ける。
【００３０】
この機能は、ＯＳ上のアプリケーションから、ハイパバイザのコードをフックする仕組みを実装することによって、容易に実現することができる。
｛５．構成｝
図３に本発明を適用した仮想計算機システムの機能モジュールの構成を示す。
【００３１】
本発明の仮想計算機システムは、上記図２の一部に示した仮想計算機の機能モジュールに、負荷計測部０（４００）〜負荷計測部ｍ（４０ｍ）と、適応制御部３００、および、ユーザインタフェース１０００を加えた構成になっている。
｛５．１負荷計測部｝
負荷計測部０（４００）〜負荷計測部ｍ（４０ｍ）は、ＬＰＡＲ０（２００）〜ＬＰＡＲｍ（２１ｍ）上で動作するＯＳ０（２２０）〜ＯＳｍ（２２ｍ）の上で動作するアプリケーションであり、ＯＳ０（２２０）〜ＯＳｍ（２２ｍ）の負荷を計測する。
【００３２】
負荷計測部０（４００）〜負荷計測部ｍ（４０ｍ）はＯＳ０（２２０）〜ＯＳｍ（２２ｍ）の負荷計測ライブラリを呼び出し、ＣＰＵ使用率、メモリ使用率、ディスク使用率（ビジー率）、ネットワーク使用率（ビジー率）などの負荷を取得（５３０〜５３ｍ）する。
【００３３】
これら負荷の値は％を単位とし、範囲は０〜１００とする。負荷計測部０（４００）〜負荷計測部ｍ（４０ｍ）は、後述するユーザインタフェース１０００から計測すべき負荷の種類や制御インターバルの設定情報を受け取り（５４０〜５４ｍ）、その設定情報に基づいて負荷を計測する。負荷計測部０〜負荷計測部ｍがそれぞれ計測したＯＳ０〜ＯＳｍの負荷Ｌ０〜Ｌｍは適応制御部３００に送られる（５２０〜５２ｍ）。
｛５．２適応制御部｝
適応制御部３００は、ＯＳ上のアプリケーションとしてＯＳ０（２２０）〜ＯＳｍ（２２ｍ）のいずれかに搭載する。適応制御部３００は５２０〜５２ｍで負荷計測部０（４００）〜負荷計測部ｍ（４０ｍ）のそれぞれからＯＳ０（２２０）〜ＯＳｍ（２２ｍ）の負荷Ｌ０〜Ｌｍを受取り、ＬＰＡＲ０（２１０）〜ＬＰＡＲｍ（２１ｍ）に対する計算機資源の割当率を求め、割当率が前回の割当率と異なる場合は、ハイパバイザ２００に対し資源割当変更命令５０２を発行する。
【００３４】
各負荷計測部（４００〜４０ｍ）と適応制御部３００との間のやり取りは、ソケット通信等の公知技術を用いる。あるいは、これも公知であるが、ハイパバイザ２００を経由して各ＬＰＡＲ０（２１０）〜ＬＰＡＲｍ（２１ｍ）上のＯＳ０（２２０）〜ＯＳｍ（２２ｍ）同士が通信するＬＰＡＲ間通信技術を用いても良い。
【００３５】
適応制御部３００は、後述するユーザインタフェース１０００から計算機資源の割当率の決定方法に関する様々な設定情報を受け取り（５０７）、この設定情報に従い計測負荷Ｌ０〜Ｌｍから各ＬＰＡＲ（２１０〜２１ｍ）に対するＣＰＵの割当率Ｓ０〜Ｓｍを求める。なお、各ＬＰＡＲ０〜ＬＰＡＲｍに対するＣＰＵ割当率Ｓ０〜Ｓｍの合計Ｓ０＋Ｓ１＋・・・＋Ｓｍは、１００％となる。
【００３６】
適応制御部３００から資源割当変更命令５０２を受けたハイパバイザは、ＬＰＡＲ０（２１０）〜ＬＰＡＲｍ（２１ｍ）に対する計算機資源の割当率をそれぞれＳ０〜Ｓｍに変更する（５１０〜５１ｍ）。
｛５．３ユーザインタフェース｝
ユーザインタフェース１０００は、管理者やユーザが本発明の仮想計算機システムの負荷計測やＣＰＵの割当率の判定に関する様々な設定を指示するためのインタフェース機能と、各ＯＳ（２２０〜２２ｍ）の負荷や各ＬＰＡＲ（２１０〜２１ｍ）に割当てるＣＰＵの割当率を管理者やユーザに対して表示するインタフェース機能を備える。
【００３７】
設定情報はユーザインタフェース１０００で入力され、各負荷計測部（４００〜４０ｍ）と適応制御部３００に渡される（５４０〜５４ｍ、５０７）。また、負荷や割当率の情報５０８は適応制御部３００からユーザインタフェース１０００に渡され表示される。
【００３８】
ユーザインタフェース１０００は、ＯＳ０（２２０）〜ＯＳｍ（２２ｍ）のいずれかの上に搭載する。ユーザインタフェースの入力画面や出力画面（後述）は、ユーザインタフェース１０００を搭載したＯＳの画面上に表示される。ユーザインタフェース１０００と負荷計測部（４００〜４０ｍ）や適応制御部３００とのやり取りは、前述のソケット通信やＬＰＡＲ間通信技術を用いれば良い。
｛５．４入力ユーザインタフェース｝
図３のユーザインタフェース１０００の機能のうち、各種の設定を指定する入力ユーザインタフェース１００１の画面イメージを図４に示す。
【００３９】
第１入力項目（適応制御有効設定）１６００は負荷適応制御を行うか（適応制御Ｏｎ）行わないかの設定である。１６０１と１６０２は二者択一のラジオボタンになっている。負荷適応制御を行う場合は１６０１を選択し、行わない場合は１６０２を選択する。
【００４０】
第２入力項目１５００は制御インターバルの設定である。入力欄１５０１に制御インターバルの値を入力する。単位は秒であるが、ミリ秒や分などでも良い。入力欄１５０１に入力された制御インターバルは、負荷計測部（４００〜４０ｍ）での負荷計測の間隔、および、適応制御部３００での割当率判定の間隔として用いられる。
【００４１】
第３入力項目（計測負荷設定）１４００は、負荷計測部（４００〜４０ｍ）が計測すべきＯＳ（２２０〜２２ｍ）の負荷の種類を示す。１４０１〜１４０４は四者択一のラジオボタンになっており、選択されたものが計測の対象となる。１４０１はＣＰＵ使用率を示し、初期設定ではＣＰＵ使用率を計測する。チェックボックス１４０２、１４０３、１４０４はそれぞれ、メモリ使用率、ディスク使用率、ネットワーク使用率を示し、選択したチェックボックスには「レ」の印が表示される。
【００４２】
第４入力項目（負荷加工設定）１３００は、負荷計測部（４００〜４０ｍ）が計測した負荷Ｌ０〜Ｌｍに対し、どのような加工を施すかの設定を示す。１３０１、１３０２、１３０３は三者択一のラジオボタンになっており、１３０１を選択すると負荷Ｌ０〜Ｌｍに対し加工を施さない。１３０２を選択すると、負荷Ｌ０〜Ｌｍに対し移動平均を施す。移動平均のサンプル数は１３０４に指定する。入力欄１３０４はラジオボタン１３０２を選択した場合にのみ有効となる。また、ラジオボタン１３０３を選択すると、負荷Ｌ０〜Ｌｍに対し規格化を施す。規格化の階数を入力欄１３０５に指定する。入力欄１３０５はラジオボタン１３０３が選択された場合にのみ有効となる。
【００４３】
以後負荷Ｌ０〜Ｌｍに対し加工を施して得られた加工負荷を、ＬＡ０〜ＬＡｍと表す。ラジオボタン１３０１を選択して負荷に対し加工を施さない場合は、加工負荷は計測した負荷と同じ値とする（ＬＡ０＝Ｌ０、…、ＬＡｍ＝Ｌｍ）。移動平均と規格化については後述の（負荷加工処理）で説明する。
【００４４】
第５入力項目（割当率計算設定）１２００は、加工負荷ＬＡ０〜ＬＡｍの値から各ＬＰＡＲ（２１０〜２１ｍ）に対するＣＰＵ割当率を求める割当率計算の方法の設定を示す。１２０１と１２０２は二者択一のラジオボタンになっている。ラジオボタン１２０１を選択すると、割当率計算法として比例法を用いる。
【００４５】
ラジオボタン１２０２を選択すると割当率計算法として閾値法を用いる。閾値法を用いる際の高負荷判定閾値を入力欄１２０３に、低負荷判定閾値を入力欄１２０４に指定する。これら入力欄１２０３、１２０４は割当率計算法として閾値法が選択された場合にのみ有効となる。
【００４６】
割当率計算によって求めた各ＬＰＡＲ（２１０〜２１ｍ）に対するＣＰＵ割当率（仮ＣＰＵ割当率）をＳＮ０〜ＳＮｍと表す。比例法と閾値法については後述の（割当率計算処理）で説明する。
【００４７】
第６入力項目（割当率範囲設定）１１００は、各ＬＰＡＲ（２１０〜２１ｍ）に対するＣＰＵ割当率の範囲（上限と下限または最大値と最小値）の設定を示す。ＬＰＡＲ毎に割当率の上限（１１１０〜１１１ｍ）と下限（１１２０〜１１２ｍ）を指定する。上限、下限とも０以上１００以下の値を取る。割当率計算で求められた各ＬＰＡＲ（２１０〜２１ｍ）に対する仮ＣＰＵ割当率（ＳＮ０〜ＳＮｍ）は、各上限（１１１０〜１１１ｍ）値を超えず下限値（１１２０〜１１２ｍ）を下らないように修正される。
【００４８】
仮ＣＰＵ割当率を修正したものをＣＰＵ割当率Ｓ０〜Ｓｍとする。この上限、下限を設定することにより、割当率の最低限の保証や割当率の最大値の制限を制御できる。本値は主に各ＬＰＡＲを用いる顧客との契約によって定められる。
【００４９】
設定した割当率範囲に基づく割当率の修正処理に関しては後述の（割当率修正処理）で説明する。
【００５０】
１７００は１１００〜１６００で指定した設定を実際に有効にするためのボタンである。例えば、第１入力項目１６００で負荷適応制御を行う（適応制御Ｏｎ）には、まず１６０１を選択し、続いて１７００を押して設定を有効にする。
【００５１】
各入力項目１３００、１４００、１５００にそれぞれ指定した設定は、負荷計測部（４００〜４０ｍ）に渡される。また１１００〜１６００に指定した全ての設定は適応制御部３００にも渡される。負荷計測部（４００〜４０ｍ）と適応制御部３００はこれらの各種設定に従って処理を行う。
【００５２】
管理者は各ＯＳ（２２０〜２２ｍ）上で動作するワークロードの性質を考慮して、各入力項目１１００〜１６００の各種の項目を設定する。
｛５．５出力ユーザインタフェース｝
ユーザインタフェース１０００の機能のうち、各ＬＰＡＲ（２１０〜２１ｍ）の負荷やＣＰＵ割当率を表示する出力ユーザインタフェース１００２の画面イメージを図５に示す。
【００５３】
表示欄１８００〜１８０ｍは各ＬＰＡＲ（２１０〜２１ｍ）毎の負荷の時系列を示す。負荷は各負荷計測部（４００〜４０ｍ）が計測した負荷Ｌ０〜Ｌｍであっても良いし、負荷Ｌ０〜Ｌｍに対し加工を施した加工負荷ＬＡ０〜ＬＡｍであっても良い。その両方を同時に表示しても良い。どちらの負荷を表示するかユーザが指定できるようになっていても良い。
【００５４】
表示欄１８１０は各ＬＰＡＲ（２１０〜２１ｍ）に対するＣＰＵ割当率の時系列を示す。全てのＬＰＡＲ（２１０〜２１ｍ）のＣＰＵ割当率を合計すると１００％となる。ある時刻におけるＬＰＡＲｉに対するＣＰＵ割当率は、１８１０のグラフ内のＬＰＡＲｉに相当する部分の縦方向の長さで表される。
【００５５】
表示欄１８２０は割当変更が発生した時刻と、割当変更の理由を逐一表示する。
【００５６】
出力ユーザインタフェース１００２は、適応制御部３００から負荷や割当率の情報５０８を取得し、それを上記図５のように表示する。
【００５７】
本発明の仮想計算機を管理する管理者は、出力インタフェース１００２を見ることによって、各ＬＰＡＲ（２１０〜２１ｍ）の負荷がどのように変化しているか、適応制御が適切に動作しているかなどの情報を得ることができる。管理者はこの情報を負荷適応制御の設定にフィードバックすることにより、仮想計算機をより効率的に動作させることができる。
｛５．６適応制御処理｝
以下では本発明の仮想計算機システムにおける適応制御処理について、図６から図１４のフローチャートを用いて説明する。
【００５８】
図６に負荷適応制御処理の概要を示す。負荷適応制御処理は、まず２００１において図４の入力インタフェース１００１で指定された設定を読み込む。設定の読み込みは負荷計測部（４００〜４０ｍ）および適応制御部３００で行われる。
【００５９】
次に２００２において負荷の計測を行う。負荷計測は負荷計測部（４００〜４０ｍ）にて行われる。
【００６０】
次に２００３において、入力ユーザインタフェースにて指定された負荷適応制御（１６００）を行うかどうかの設定を調べ、負荷適応制御を行う設定になっていれば２００４以降で負荷適応制御を行い、そうでない場合は処理を終了する。
【００６１】
２００４では各ＬＰＡＲ（２１０〜２１ｍ）に対するＣＰＵ割当率Ｓ０〜Ｓｍを決定し、２００５において、決定した割当率の一つ以上が前回の割当率ＳＯ０〜ＳＯｍと異なる場合、２００６においてハイパバイザ２００に対しＣＰＵの割当率を変更するように資源割当変更命令を発行して割当を変更し、処理を終了する。割当率が前回の割当率とまったく同じなら、資源割当変更命令を発行せずに処理を終了する。２００３〜２００６の割当変更指示までの処理は適応制御部３００にて行われる。
【００６２】
本発明の仮想計算機システムは、図６に示した一連の処理を制御インターバル間隔で繰り返し行う。制御インターバルは入力インタフェース１００１の１５０１に指定された値である。
｛５．７負荷計測処理｝
図６の適応制御処理の内、負荷計測処理２００２の詳細を図７に示す。負荷計測処理は負荷計測部（４００〜４０ｍ）毎に行われ、入力ユーザインタフェース１００１の計測負荷種類１４００で指定された負荷の種類に従って各ＯＳ（２２０〜２２ｍ）の負荷Ｌ０〜Ｌｍを計測する。
【００６３】
すなわち、ＬＰＡＲｉにおいては、２００７で計測負荷種類がＣＰＵ使用率である場合は、２００８でＣＰＵ使用率を計測し、得られた値を負荷Ｌｉとする。
【００６４】
そうでなく、２００９で計測負荷種類がメモリ使用率であれば、２０１０でメモリ使用率を計測し、得られた値を負荷Ｌｉとする。
【００６５】
そうでなく、２０１１で計測負荷種類がディスク使用率であれば、２０１２でディスク使用率を計測し、得られた値を負荷Ｌｉとする。
【００６６】
そうでなく、２０１３で計測負荷種類がネットワーク使用率であれば、２０１４でネットワーク使用率を計測し、得られた値をＬｉとする。各種の使用率の計測はＯＳ（２２０〜２２ｍ）が備える負荷計測ライブラリ等を用いる。ここで、ネットワーク使用率とは、例えば、接続数、リクエスト数などであり、適宜設定されるものである。
｛５．８割当率決定処理｝
図６の適応制御処理の中の割当率決定処理２００４の詳細を図８に示す。割当率決定処理は、まず２０２０において負荷計測処理によって計測された各ＯＳ（２２０〜２２ｍ）の負荷Ｌ０〜Ｌｍに対し加工を施し加工負荷ＬＡ０〜ＬＡｍを求める。
【００６７】
そして２０２１において、加工負荷ＬＡ０〜ＬＡｍに基づいて、ＬＰＡＲ０（２１０）〜ＬＰＡＲｍ（２１ｍ）に対する仮ＣＰＵ割当率ＳＮ０〜ＳＮｍを求める（割当率計算）。
【００６８】
そして２０２２で、仮ＣＰＵ割当率ＳＮ０〜ＳＮｍが入力ユーザインタフェース１００１によって指定されたＬＰＡＲ毎の割当率範囲の上限（１１１０〜１１１ｍ）と下限（１１２０〜１１２ｍ）の間に収まるように仮ＣＰＵ割当率ＳＮ０〜ＳＮｍを修正してＣＰＵ割当率Ｓ０〜Ｓｍを求め、処理を終了する。
｛５．９負荷加工処理｝
図８の割当率決定処理の中の負荷加工処理２０２０の詳細を図９に示す。
【００６９】
まず、入力ユーザインタフェース１００１の１３００において負荷加工を施さない設定（無変換）が選択された場合を２０３０でチェックし、加工を施さない場合は２０３１において、負荷Ｌ０〜Ｌｍをそのまま加工負荷ＬＡ０〜ＬＡｍとし（ＬＡ０＝Ｌ０、…、ＬＡｍ＝Ｌｍ）、処理を終了する。
【００７０】
一方、加工を施す場合は２０３２において、加工の種類が移動平均法であるかどうかを判定し、移動平均法であれば、２０３３において、負荷に移動平均を施す。
【００７１】
移動平均は、負荷計測部（４００〜４０ｍ）が計測した負荷Ｌ０〜Ｌｍの過去の値を保存しておく。保存する数は、入力ユーザインタフェース１００１の負荷加工設定１３００の１３０４に指定されたサンプル数（Ｓと表す）から１を引いたＳ−１個である。
【００７２】
ここで、ｋ個前（０＜ｋ＜Ｓ）のＬＰＡＲｉ上のＯＳｉの負荷ＬｉをＬｉ（ｋ）と表す。ＯＳｉ毎に負荷Ｌｉ（Ｓ−１）、…、Ｌｉ（１）を保存しておくことになる。移動平均はＯＳ毎に最新の負荷Ｌｉを含めたＳ個の負荷系列Ｌｉ（０）、Ｌｉ（１）、…、Ｌｉ（Ｓ−１）の平均値を求める。そして求めた値を加工負荷ＬＡｉとする。すなわち、ＬＡｉ  ＝  （Ｌｉ（０）＋Ｌｉ（１）＋…＋Ｌｉ（Ｓ−１））／Ｓとなる。この計算をすべてのＯＳ（ＬＰＡＲ）について行いＬＡ０〜ＬＡｍを求め処理を終了する。
【００７３】
一方、加工方法として規格化法が選択された場合は、２０３４において、ＯＳｉの負荷Ｌｉに対して規格化を施す。
【００７４】
規格化は、値を予め設定された飛び飛びの値のいずれかに合わせる。規格化の階数は入力ユーザインタフェース１００１の負荷加工設定１３００の１３０５（階数）に指定された値（Ｎ）とする。
【００７５】
ＯＳｉの負荷Ｌｉに対し、階数Ｎの規格化を施して得られた加工負荷ＬＡｉは、ＬＡｉ＝（ｆｌｏｏｒ（Ｌｉ×Ｎ／１００）＋１）×１００／Ｎから求める。この計算をすべてのＯＳ（ＬＰＡＲ）について行い、加工負荷ＬＡ０〜ＬＡｍを求め処理を終了する。
【００７６】
なお、負荷の加工はＯＳ（２２０〜２２ｍ）毎に負荷計測部（４００〜４０ｍ）で行っても良いし、適応制御部３００でまとめて行っても良い。負荷計測部で行う場合は、負荷計測部（４００〜４０ｍ）から適応制御部３００に送る値５２０〜５２ｍは加工負荷ＬＡ０〜ＬＡｍである。
【００７７】
適応制御部３００で負荷加工を行う場合は、負荷計測部（４００〜４０ｍ）から適応制御部３００に送る値５２０〜５２ｍは負荷Ｌ０〜Ｌｍである。
｛５．１０割当率計算処理｝
図８の割当率決定処理の中の割当率計算処理２０２１の詳細を図１０に示す。  まず２０４０において、入力インタフェース１００１の割当率計算設定１２００で比例法が選択されたか、閾値法が選択されたか調べ、比例法であれば２０４２〜２０４５の処理を行う。
【００７８】
（５．１０．１  比例法の処理）
２０４２でループカウンタｉを０に初期化し、２０４３ではループカウンタｉの値がｍより大きくなるまで、２０４４と２０４５の処理を繰り返し行う。
【００７９】
２０４４では、加工負荷ＬＡ０〜ＬＡｍに基づき仮ＣＰＵ割当率ＳＮｉを求める。２０４４の計算でΣＬＡｉは、全ての加工負荷ＬＡ０〜ＬＡｍの和を示す。
【００８０】
ＳＮｉ：＝１００ＬＡｉ／ΣＬＡｉ
は、全加工負荷値の和に対するＯＳｉの加工負荷ＬＡｉの割合をパーセントで表したものであり、ＬＰＡＲｉに対するＣＰＵ割当率ＳＮｉは、ＯＳｉの加工負荷ＬＡｉに比例した値となる。
【００８１】
２０４５では、ループカウンタｉを１だけインクリメントし、２０４３に戻る。２０４３から２０４５の一連の処理が繰り返し行われ、ＬＰＡＲ０（２１０）〜ＬＰＡＲｍ（２１ｍ）に対する仮ＣＰＵ割当率ＳＮ０〜ＳＮｍが求まり、処理を終了する。
（５．１０．２  閾値法の処理）
一方、割当計算方法が閾値法の場合は２０４１を実行する。２０４１の詳細は図１１のようになっている。
【００８２】
まず、２０５０においてループカウンタｉを０に初期化し、２０５１においてループカウンタｉがｍより大きくなるまで２０５２以降の処理を繰り返す。２０５２では、ＯＳｉの加工負荷ＬＡｉが入力ユーザインタフェース１００１の割当率計算方法設定１２００の閾値法の１２０３に指定された高負荷判定閾値ＴＨの値より大きく（ＬＡｉ＞ＴＨ）、かつＯＳｉが高負荷状態にあることを示すフラグＨｉが立っていなければ（Ｈｉ＝０）、つまりこれまで低負荷状態であったが負荷が上がった場合、２０５３に進んでＯＳｉが高負荷状態になった場合の処理を行う。
【００８３】
すなわち、２０５３では仮ＣＰＵ割当率ＳＮｉを１００−（１００−ＳＰｉ）Ｌｏｉ／Ｂとする。ここで、ＳＰｉはＬＰＡＲｉに対する前回の負荷適応制御で求めたＣＰＵ割当率を示す。またＬｏｉは、ＯＳｉ以外の各ＯＳｊの加工負荷ＬＡｊの和を示す。Ｂは低負荷状態のＬＰＡＲ上のＯＳの負荷を高くしていく上限値を示す。
【００８４】
現在ＯＳｉ以外のＯＳの負荷の合計はＬｏｉであり、このとき、ＬＰＡＲｉ以外のＬＰＡＲに対するＣＰＵ割当率は（１００−ＳＰｉ）である。
【００８５】
現在ＯＳｉの負荷が高いので、ＯＳｉが動作するＬＰＡＲｉ以外のＬＰＡＲに対するＣＰＵ割当率を削減し、ＬＰＡＲｉに対するＣＰＵ割当率を増加させたい。
【００８６】
そこで、ＬＰＡＲｉ以外のＬＰＡＲに対するＣＰＵ割当率を、ＬＰＡＲｉ以外のＬＰＡＲで動作するＯＳの合計負荷がＢになるように減らし、減らした分をＬＰＡＲｉに対するＣＰＵ割当率に加える。
【００８７】
この計算を式で表すと、
ＳＮｉ  ：＝  １００−（１００−ＳＰｉ）Ｌｏｉ／Ｂ
と表される。また、ＳＮｉを計算すると同時に、ＯＳｉが高負荷状態であることを示すフラグＨｉを１にセットする。またループカウンタｊを０にセットする。
【００８８】
２０５３は高負荷状態になったＯＳｉに対する仮ＣＰＵ割当率の計算であったが、２０５４〜２０５７はＯＳｉ以外のＬＰＡＲにいてＣＰＵ割当率を減らす計算を示す。
【００８９】
すなわち、２０５４ではｊがｍより大きくなるまで２０５５〜２０５７の処理を繰り返す。２０５５では、ＬＰＡＲｉに対する仮ＣＰＵ割当率ＳＮｉはすでに２０５３で計算済みなので、ｊがｉである場合を判定し、ｊ＝ｉなら２０５６の処理を行わない。
【００９０】
２０５６では、ＬＰＡＲｉ以外のＬＰＡＲに対する仮ＣＰＵ割当率ＳＮｊを計算する。計算方法は、ＬＰＡＲｉに対する仮ＣＰＵ割当率を除いた（１００から引いた）値をＬＰＡＲｉ以外のＬＰＡＲの数で割ることによって求める。これを式で表すと、
ＳＮｊ：＝  （１００−ＳＰｉ）Ｌｏｉ／（Ｂ＊ｍ）
となる。
【００９１】
２０５７ではループカウンタｊを１だけインクリメントして、２０５４に戻る。２０５４のループを抜けると、各ＬＰＡＲ（２１０〜２１ｍ）に対する仮ＣＰＵ割当率ＳＮｊが全て求まり、処理が終了する。
【００９２】
一方、２０５２において加工負荷ＬＡｉの値が高負荷判定閾値ＴＨを超えないか、または、高負荷状態を示すＨｉフラグが立っている（Ｈｉ＝１）場合は、２０５８以降の処理を行う。
【００９３】
２０５８では、加工負荷ＬＡｉが低負荷判定閾値ＴＬより小さく、かつＯＳｉが高負荷状態であることを示すフラグＨｉが立っている状態、すなわち、これまで高負荷状態であったが負荷が下がった場合、どのＬＰＡＲも平等なＣＰＵ割当率となるように割当率を計算する。
【００９４】
つまり、２０５９でループカウンタｊを０に初期化し、ＯＳｉが高負荷状態であることを示すフラグを下ろし（Ｈｉ：＝０）、２０６０でループカウンタｊがｍとなるまで繰り返し２０６１を行う。２０６１では、ＬＰＡＲｊの仮ＣＰＵ割当率ＳＮｊを１００／ｍとし、ループカウンタを１インクリメントして２０６０に戻る。２０６０の条件判定が真となってループを抜けると、各ＬＰＡＲ（２１０〜２１ｍ）に対する仮ＣＰＵ割当率ＳＮ０〜ＳＮｍはすべて１００／ｍとなり、処理を終了する。
【００９５】
また、２０５８においてＯＳｉの加工負荷ＬＡｉが、低負荷判定閾値より大きいかあるいはＯＳｉが高負荷状態でない（Ｈｉ＝０）場合は、２０６２でループカウンタｉを１だけインクリメントし、２０５１に戻る。
【００９６】
２０５１で条件が真となると、いずれのＯＳ（２２０〜２２ｍ）においても、２０５２や２０５８の条件を満足する（真となる）ような負荷の変化はないため、２０６３以降でＬＰＡＲｊに対する仮ＣＰＵ割当率ＳＮｊの値を、一回前の適応制御の際に求めたＬＰＡＲｊに対するＣＰＵ割当率ＳＰｊの値とする（ＳＮｊ：＝ＳＰｊ）ことを各ＬＰＡＲ（２１０〜２１ｍ）について行い（２０６３、２０６４、２０６５）、処理を終了する。
｛５．１１割当率修正処理｝
図８の割当率決定処理に示した割当率修正処理２０２２の詳細を図１２、図１３、図１４に示す。
【００９７】
まず、図１２の２０７１〜２０７８において、ＬＰＡＲｉに対する仮ＣＰＵ割当率ＳＮｉの値が、入力ユーザインタフェース１００１の割当率範囲設定１１００で指定されるＬＰＡＲｉ（２１ｉ）に対する割当率の上限ＭａｘＳｉ（１１１ｉ）と下限ＭｉｎＳｉ（１１２ｉ）の間に入っているかどうか調べ（ＭｉｎＳｉ  ≦  ＳＮｉ  ≦  ＭａｘＳｉ）、この上限と下限に入っていない場合には、ＳＮｉに対して、
ＭｉｎＳｉ  ≦  ＳＮｉ＋ｄｉ  ≦  ＭａｘＳｉ
を満足する最小限のｄｉの値を求める。
【００９８】
すなわち２０７１においてループカウンタｉを０に初期化し、２０７２においてｉがｍより大きくなるまで２０７３〜２０７８の処理を繰り返し行う。２０７３は仮ＣＰＵ割当率ＳＮｉがＭａｘＳｉより大きな値か調べ、もし大きければ２０７４でｄｉの値をＭａｘＳｉ−ＳＮｉから求める（ｄｉは負の値）。
【００９９】
もし２０７３でＳＮｉがＭａｘＳｉ以下である場合は、２０７５において仮ＣＰＵ割当率ＳＮｉがＭｉｎＳｉより小さいか調べ、小さい場合は２０７６でｄｉの値をＭｉｎＳｉ‐ＳＮｉから求める（ｄｉは正の値）。
【０１００】
２０７５において、ＳＮｉがＭａｘＳｉ以上である場合は、ＭｉｎＳｉ≦ＳＮｉ≦ＭａｘＳｉを満足するから、２０７７においてｄｉを０とする。２０７４、２０７６、２０７７のいずれかによってｄｉの値が求まると、２０７８においてループカウンタｉの値を１インクリメントし、２０７２に戻る。
【０１０１】
２０７２の条件判定が真となれば、各ＬＰＡＲ（２１０〜２１ｍ）に対するｄｉが求まっている。
【０１０２】
求めたｄｉの値を、ＳＮｉに加えてＣＰＵ割当率Ｓｉとすれば（Ｓｉ：＝ＳＮｉ＋ｄｉ）、いずれのＬＰＡＲに対するＣＰＵ割当率Ｓｉも、
ＭｉｎＳｉ≦Ｓｉ≦ＭａｘＳｉ
を満足する。
【０１０３】
しかし、ｄｉによって仮ＣＰＵ割当率を増減しているため、ΣＳｉが１００％とならない可能性がある。
【０１０４】
そこで、２０７９以降で、Ｓｉが上限ＭａｘＳｉと下限ＭｉｎＳｉの範囲を満足しつつ、ΣＳｉ＝１００となるようにＳｉの値を修正する。
【０１０５】
２０７９ではΣｄｉ（ｄｉをｉ＝０〜ｉ＝ｍまで合計した値）が正であるか調べ、正であった場合は、２０８０においてｄｉの値が０以下となるようなｄｉの個数をｘｍとして図１３の２０８２以降を実行する。
【０１０６】
２０７９でΣｄｉが０以下であった場合は、２０８１においてｄｉの値が０以上となるようなｄｉの個数をｘｐとして図１４の２１０１以降を実行する。
【０１０７】
図１３の２０８２ではループカウンタｊを０に初期化し、２０８３でｊがｍより大きいか、Σｄｉの値が０となるまで、２０８４〜２０８９を繰り返し行う。
【０１０８】
ＣＰＵ割当率計算処理によって求められた仮ＣＰＵ割当率ＳＮｉの合計ΣＳＮｉは１００％となるように求められているので、Σｄｉが正であるということは、Σ（ＳＮｉ＋ｄｉ）＞１００％となる。
【０１０９】
そこで、一部のＬＰＡＲに対するＣＰＵ割当率を、より小さな値にするように修正しなければならない。ｄｉが０より大きな値になっているということは、仮ＣＰＵ割当率ＳＮｊそのものはＭｉｎＳｊより小さな値であり、従ってＳＮｊ  ＋  ｄｉはＭｉｎＳｊとなるから、このＬＰＡＲに対するＣＰＵ割当率を小さくするわけには行かない。
【０１１０】
つまりＣＰＵ割当率の値を小さく修正する対象は、ｄｉが０以下の場合についてということになる。そこで２０８４において、ｄｉの値が０以下であるものについてのみ２０８５〜２０８９の処理を行っている。
【０１１１】
さて、割当率をどれだけ小さくするかは、最終的なＣＰＵ割当率の合計が１００％となるようにすれば良い。そこで、割当率が１００％を超える分Σｄｊを、割当率を修正できる対象の数ｘｍで等分したΣｄｊ／ｘｍを修正対象から引いて修正する。ただし、ＳＮｊ＋ｄｉ−Σｄｊ／ｘｍが逆にＭｉｎＳｊより小さくなってはならないので、これを２０８５において判断する。小さくならない場合は、２０８６において新たに、
ｄｊ：＝ｄｊ−Σｄｊ／ｘｍ
とする。
【０１１２】
一方、ＳＮｊ＋ｄｉ−Σｄｊ／ｘｍがＭｉｎＳｊより小さい場合は、２０８７において、ＣＰＵ割当率がＭｉｎＳｊとなるように、新たに、
ｄｊ：＝ＭｉｎＳｊ−ＳＮｊ
とする。ｄｊの値を修正すると２０８８においてｘｍを１だけデクリメントし、２０８９でループカウンタｊを１だけインクリメントして２０８３に戻る。
【０１１３】
２０８３の条件判定が真となってループを終了すると、修正されたｄｊが求まっている。そこで、２０９０〜２０９２においてＬＰＡＲｉに対する最終的なＣＰＵ割当率Ｓｉを、
Ｓｋ  ：＝  ＳＮｋ＋ｄｋ
より計算して求め、処理を終了する。なお、２０９２では、カウンタｋを１だけインクリメントする。
【０１１４】
次に、図１４の２１０１ではループカウンタｊを０に初期化し、２１０２でｊがｍより大きいか、Σｄｉの値が０となるまで、２１０３〜２１０８を繰り返し行う。
【０１１５】
ＣＰＵ割当率計算処理によって求められた仮ＣＰＵ割当率ＳＮｉの合計ΣＳＮｉは、１００％となるように求められているので、Σｄｉが負であるということは、Σ（ＳＮｉ＋ｄｉ）＜１００％となる。
【０１１６】
そこで、一部のＣＰＵ割当率をより大きな値にするように修正しなければならない。ｄｉが０より小さな値になっているということは、仮ＣＰＵ割当率ＳＮｊそのものはＭａｘＳｊより大きな値であり、従ってＳＮｊ＋ｄｉはＭａｘＳｊとなるから、このＬＰＡＲに対するＣＰＵ割当率を大きくするわけには行かない。
【０１１７】
つまりＣＰＵ割当率の値を大きな値に修正する対象はｄｉが０以上の場合についてということになる。
【０１１８】
そこで２１０３において、ｄｉの値が０以上であるものについてのみ２１０４〜２１０７の処理を行っている。
【０１１９】
さて、割当率をどれだけ大きくするかは、最終的なＣＰＵ割当率の合計が１００％となるようにすれば良い。そこで、割当率が１００％を下回る分Σｄｊを、割当率を修正できる対象の数ｘｐで等分したΣｄｊ／ｘｐを修正対象から引いて（Σｄｊ／ｘｐは負の値なので）修正する。
【０１２０】
ただし、ＳＮｊ＋ｄｉ−Σｄｊ／ｘｐが逆にＭａｘＳｊより大きくなってはならないので、これを２１０４において判断する。大きくならない場合は、２１０５において新たに、
ｄｊ：＝ｄｊ−Σｄｊ／ｘｐ
とする。
【０１２１】
一方大きい場合は、２１０６において、ＣＰＵ割当率がＭａｘＳｊとなるように、新たに、
ｄｊ：＝ＭａｘＳｊ−ＳＮｊ
とする。ｄｊの値を修正すると２１０７においてｘｐを１だけデクリメントし、２１０８においてループカウンタｊを１だけインクリメントして２１０２に戻る。
【０１２２】
２１０２の条件判定が真となってループを終了すると、修正されたｄｊが求まっている。そこで、上記２０９０〜２０９２（図１３）においてＬＰＡＲｉに対する最終的なＣＰＵ割当率Ｓｉを、
Ｓｉ：＝ＳＮｉ＋ｄｉ
より計算して求め、処理を終了する。
｛６．全体的な作用｝
以上の処理により、各ＬＰＡＲ上のＯＳ上で実行されるアプリケーション（サービス、デーモンを含む）のワークロード性質（定常時の負荷、ピーク時の負荷、ピーク幅などの特性）に応じて、入力ユーザインタフェース１００１で各ＬＰＡＲの計測負荷種類を適宜選択し、また、適切な制御インターバル１５００を設定することにより、ワークロードの急増（ピークの発生）に対して適切な割当率の変更を行うことが可能となって、各ＬＰＡＲに対する計算機資源の適切な割当の自動化を実現できるのである。
【０１２３】
例えば、ＬＰＡＲａのＯＳａ上でＷｅｂサーバが稼動し、ＬＰＡＲｂ上のＯＳｂ上でデータベースサーバが稼動している場合、各ＬＰＡＲのＣＰＵ使用率が同等であったとしても、負荷が掛かる部分が異なり（ワークロード特性）、Ｗｅｂサーバでは、負荷の増大はネットワーク使用率の増大が伴い、データベースサーバでは、負荷の増大はディスク使用率（またはキャッシュ用のメモリ使用率）が増大するという特性がある。
【０１２４】
そこで、管理者は、入力ユーザインタフェース１００１で、各ＬＰＡＲｉのＯＳｉ上で稼動するアプリケーションのワークロード特性に応じて、計測負荷種類を決定すればよく、上記の例では、Ｗｅｂサーバが稼動するＬＰＡＲａではネットワーク使用率を選択し、データベースサーバが稼動するＬＰＡＲｂではディスク使用率を選択することで、負荷の種類と大きさに応じた計算機資源の動的な割当率変更を適切に行うことが可能となるのである。
【０１２５】
特に、Ｗｅｂサーバ等では、負荷のピークが現れる時刻等を予測するのが非常に難しいため、本発明のように、ワークロード特性に応じて適宜負荷計測の種類を選択して適応制御を行うことにより、負荷の増減に応じた計算機資源の割当率変更を自動的かつ適切に行うことが可能となるのである。
【０１２６】
また、入力ユーザインタフェース１００１では、計測した負荷の加工について、無変換、移動平均、規格化のいずれかを選択するようにしたので、各ＬＰＡＲのピークの発生状況などに応じたチューニング（最適化）を行うことが可能となる。
【０１２７】
つまり、負荷加工で無変換を選択すれば、計算機資源の動的な割当率変更が、負荷変動に対してリニアに応答可能となり、移動平均を選択した場合には、負荷の微小な変動に対して割当率の変更が頻繁になるのを抑制して、割当率変更に伴うオーバーヘッドを低減できるとともに、制御インターバル及びサンプル数との組み合わせで幅広いチューニング（最適化）を行うことができ、あるいは、規格化を選択した場合では、負荷の微小な変動に対して割当率の頻繁な変更を抑制して、割当率変更に伴うオーバーヘッドを低減でき、制御インターバル及び規格化の階層数の組み合わせに応じて幅広いチューニングを行うことができる。
【０１２８】
さらに、割当変換（割当率計算）１２００では、比例法と閾値法を選択可能としたので、負荷変動に対してリニアに応答する必要がある場合では比例法を適用し、負荷の微小な変動に対して割当率の頻繁な変更を抑制したい場合には閾値法を用いることで、頻繁な割当率変更に伴うオーバーヘッドを低減でき、さらに高負荷、低負荷の閾値に応じて幅広いチューニング（最適化）を行うことができる。
【０１２９】
また、出力ユーザインタフェース１００２により、各ＬＰＡＲｉ毎の負荷と時刻の関係と、割当率変更の内容を時系列的に表示するようにしたので、負荷変動に対してどのように計算機資源の割当率が変更されたのかをユーザ（管理者）に知らせることができ、管理者はこの負荷と割当率の履歴に基づいて、入力ユーザインタフェース１００１で設定する各種パラメータの検討を行い、各ＬＰＡＲｉ毎に最適なチューニングを行うことが可能となる。
【０１３０】
図１５は第２の実施形態を示し、前記第１実施形態の一部を変更し、ユーザインタフェース１０００を搭載するＬＰＡＲを独立させたものである。
【０１３１】
以下、前記第１実施形態との相違点についてのみ説明する。
【０１３２】
図１５は、前記１実施形態の図３に示したＬＰＡＲ０（２１０）〜ＬＰＡＲｍ（２１ｍ）以外に管理目的のＬＰＡＲ（ＬＰＡＲｘ）を設け、この上でＯＳｘを動作させ、このＯＳｘ上に適応制御部３００とユーザインタフェース１０００を搭載する。
【０１３３】
ユーザインタフェース１０００の入力画面や出力画面はＯＳｘの画面上に表示される。また、ＯＳｘ上には負荷計測部は搭載しない。各負荷計測部（４００〜４０ｍ）と適応制御部３００とユーザインタフェース１０００との間のやり取りは、ソケット通信やＬＰＡＲ間通信技術を用いる。その他は前記第１実施形態と同様である。
【０１３４】
この例では、適応制御部３００及びユーザインタフェース１０００が管理用のＬＰＡＲｘ（２２ｘ）上で稼動するため、他のＬＰＡＲ０〜ｍではＬＰＡＲの動的な割当率変更に要する計算機資源が不要となって、各ＯＳ０〜ｍは負荷計測部４００〜４０ｍの処理を除いてアプリケーションの実行に専念でき、各ＬＰＡＲの利用効率を向上させることが可能となる。
【０１３５】
図１６は第３の実施形態を示し、前記第１実施形態の一部を変更し、適応制御部３００とユーザインタフェース１０００をハイパバイザ２００の内部に設けたものである。
【０１３６】
以下、前記第１実施形態との相違点についてのみ説明する。
【０１３７】
図１６は、前記実施形態１の図３に示した適応制御部３００とユーザインタフェース１０００を、ハイパバイザ２００の内部に設けたものである。ユーザインタフェース１０００の入力画面や出力画面は物理計算機１３０のコンソール１４０に表示される。
【０１３８】
各負荷計測部（４００〜４０ｍ）と適応制御部３００やユーザインタフェース１０００とのやり取りはＬＰＡＲ間通信で用いられる共有メモリを介して行う。また、適応制御部３００とユーザインタフェース１０００との間のやり取りはハイパバイザ２００の内部メモリを用いれば良い。その他の構成は前記第１実施形態と同様である。
【０１３９】
図１７は第４の実施形態を示し、前記第１実施形態のユーザインタフェースの一部変を更したものである。
【０１４０】
以下、前記第１実施形態との相違点についてのみ説明する。
【０１４１】
図１７の入力ユーザインタフェース１００３は、前記第１実施形態の図４に示した入力ユーザインタフェースに、Ｓａｖｅボタン１７０１とＲｅｓｔｏｒｅボタンを加えたもので、その他の構成は、前記第１実施形態の図４と同様である。
【０１４２】
この入力ユーザインタフェース１００３は、表示領域の下部にＳａｖｅボタン１７０１とＲｅｓｔｏｒｅボタン１７０２を付け加えたものである。
【０１４３】
Ｓａｖｅボタン１７０１を押す（クリックする）と、入力項目１１００〜１６００で指定された各種の設定を、予め設定したディスク上の設定保存ファイルに書き出す。Ｒｅｓｔｏｒｅボタン１７０２を押すと、設定を保存している上記設定保存ファイルを読み出し、入力項目１１００〜１６００を保存された時点の設定に復元する。
【０１４４】
これにより、管理者は本発明の仮想計算機システムを起動するたびに、設定を入力ユーザインタフェース１００３から入力する必要がなくなり、設定保存ファイルを呼び出すだけで保存されていた設定を復元できる。
【０１４５】
図１８は、第５の実施形態を示し、前記第１実施形態のユーザインタフェースの出力インタフェース（出力部）を変更して、ログ記録部１００４としたもので、その他の構成は前記第１実施形態と同様である。以下、前記第１実施形態との相違点についてのみ説明する。
【０１４６】
図１８のログ記録部１００４は、前記第１実施形態のＯＳ０（２１０）〜ＯＳｍ（２２ｍ）の何れかの上に搭載する。
【０１４７】
ログ記録部１００４は、適応制御部３００から各ＯＳ（２２０〜２２ｍ）の負荷Ｌ０〜Ｌｍ又は加工負荷ＬＡ０〜ＬＡｍと、各ＬＰＡＲ（２１０〜２１ｍ）に対するＣＰＵ割当率Ｓ０〜Ｓｍおよび、割当変更がなされた際の変更理由を一定時間毎に受け取り、それらを時系列としてログファイル１００５に書き出す。
【０１４８】
管理者は、このログファイル１００５を参照することにより、負荷変動に対してどのように計算機資源の割当率が変更されたのかを知ることができ、管理者はこの負荷と割当率の履歴に基づいて、入力ユーザインタフェース１００１で設定する各種パラメータの検討を行って、各ＬＰＡＲｉ毎に最適なチューニングを行うことが可能となる。
【０１４９】
なお、このログ記録部１００４を前記第２実施形態に適用する場合では、ログ記録部１００４を適応制御部３００を搭載した管理ＬＰＡＲ（ＬＰＡＲｘ）上に搭載する。
【０１５０】
また、同じく前記第３実施形態に適用する場合は、ハイパバイザ２００の内部にログ記録部１００４が設けられる。
【０１５１】
図１９は、第６の実施形態を示し、前記第１実施形態のユーザインタフェース１０００に、各ＬＰＡＲを利用する顧客に対して提供する契約ユーザインタフェースを付加したもので、その他の構成は、前記第１実施形態と同様である。
【０１５２】
契約ユーザインタフェース０（３０００）〜契約ユーザインタフェースｍ（３００ｍ）は、それぞれ、ＬＰＡＲ０（２１０）〜ＬＰＡＲｍ（２１ｍ）に対応して設けられている。
【０１５３】
本実施形態の仮想計算機においは、契約を結んだ顧客毎にＬＰＡＲを用意し、顧客はインターネット（またはネットワーク）を介して、その顧客に割当てられたＬＰＡＲにアクセスして処理を行う。したがって、契約ユーザインタフェース（３０００〜３００ｍ）は契約を結んだ顧客の計算機の画面（表示手段）上に表示される。
【０１５４】
契約ユーザインタフェース０（３０００）は、入力データ６００と出力データ６１０によってユーザインタフェース１０００と接続されている。また契約ユーザインタフェースｍ（３００ｍ）は、入力データ６０ｍと出力データ６１ｍによってユーザインタフェース１０００と接続されている。
【０１５５】
契約ユーザインタフェース（３０００〜３００ｍ）は、顧客が契約内容を更新したり、本発明の仮想計算機システムが当該顧客に対して割当てている計算機資源の割当率等のサービス状況の表示などを実行する。
【０１５６】
契約ユーザインタフェース（３０００〜３００ｍ）は、図２０に示す契約入力ユーザインタフェース３１００と、図２１の契約確認ユーザインタフェース３２００から構成される。あるいは、図２２の契約出力ユーザインタフェースを含んでも良い。
【０１５７】
次に、図２０の契約入力ユーザインタフェース３１００）について説明する。
【０１５８】
図２０の契約入力ユーザインタフェースは、契約顧客が契約の内容を変更するためのインタフェースである。ここでの契約内容とは、契約しているＬＰＡＲに対するＣＰＵ割当率の上限３１０１と下限３１０２の入力欄である。
【０１５９】
顧客は自らに割当てられているＬＰＡＲに対するＣＰＵ割当率の上限と下限を、当該ＬＰＡＲ上で行う処理のワークロードに関する知識を利用しながら、契約入力ユーザインタフェース３１００の上限３１０１と下限３１０２に指定する。
【０１６０】
３１０３は、図２０の３１０１と３１０２に入力された割当率の上限と下限（割当率範囲）を有効とする（契約を変更する）ためのボタンである。
【０１６１】
変更ボタン３１０３が押され（クリックされ）ると、入力欄３１０１と３１０２で指定された割当率の上限と下限の情報が、図１９の入力データ６００を介してユーザインタフェース１０００の入力ユーザインタフェース１００１に送られる。
【０１６２】
入力ユーザインタフェース１００１は、指定された割当率範囲が妥当なものかを確認し、妥当であれば、入力ユーザインタフェース１００１の割当率範囲設定１１００の当該ＬＰＡＲｉの上限（１１１ｉ）と下限（１１２ｉ）に送られてきた上限と下限の値を設定し、図４に示した更新ボタン１７００を押したのと同様に設定を有効にする。
【０１６３】
割当率範囲が妥当でない場合（他の顧客が下限の値を大きく設定し、当該顧客に対して指定された値を下限に設定できない場合は妥当ではないと判断される。）、送られてきた上限と下限は割当率範囲設定１１００には反映されない。
【０１６４】
そして、入力ユーザインタフェース１００１は、当該顧客の画面に図２１の契約確認ユーザインタフェース３２００を表示し、先の契約変更が正しく受付けられたかどうかを顧客に通知する。
【０１６５】
次に、図２１の契約確認ユーザインタフェースについて説明する。
【０１６６】
図２１の契約確認ユーザインタフェース３２００は、顧客が契約入力ユーザインタフェース３１００によって指示した契約変更要求が、正しく受付けられたかどうかの確認を顧客に提示するユーザインタフェースである。３２０１は契約変更の受付け状況を示す。この受付け状況３２０１は、契約変更要求が正しく受付けられた場合はＡｃｃｅｐｔｅｄを表示し、正しく受付けられない場合はＩｎｖａｌｉｄ等を表示する。
【０１６７】
正しく受付けられるためには、契約入力ユーザインタフェース３１００から入力ユーザインタフェース１００１に送られた割当率範囲が妥当なものである必要がある。
【０１６８】
契約内容３２０２には、契約変更が正しく受付けられた場合には、変更された契約内容が表示され、契約変更が正しく受付けられなかった場合には、その理由が表示される。
【０１６９】
次に、図２２の契約出力ユーザインタフェースについて説明する。
【０１７０】
図２２の契約出力ユーザインタフェース３３００は、当該顧客に対応したＬＰＡＲの上で動作するＯＳの負荷又は加工負荷の時系列（３３０１）、当該ＬＰＡＲに割当てられている計算機資源の割当率の時系列（３３０２）、および割当変更が発生した場合の変更理由３３０３を表示する。前記第１実施形態に示した図５の出力ユーザインタフェース１００２とは異なり、ここで表示されるのは、当該顧客が契約して使用しているＬＰＡＲに関する情報のみであり、他の顧客が契約しているＬＰＡＲの情報は表示されない。
【０１７１】
以上により、各ＬＰＡＲを利用する顧客は、契約ユーザインタフェース３０００〜３００ｍにより、利用するＬＰＡＲ毎の負荷と割当率の変化を時系列に確認できるとともに、契約の範囲内で割当率の変更を行うことが可能となり、顧客は契約内容を常時確認できるようになるとともに、負荷と割当率の変化の履歴に基づいて、自らが割当率を変更することができるため、ＬＰＡＲの利用者に対するサービスの向上を図ることができる。
【０１７２】
なお、契約出力ユーザインタフェース３３００は、画面（コンソール１４０）に値を表示するユーザインタフェースであるが、これを前記図１８に示したログ記録部１００４で置き換えても良い。このときログ記録部１００４は、顧客が本発明の仮想計算機にインターネットを介してアクセスする際に使用するアクセス装置（計算機等）に搭載し、ログ記録部１００４は顧客のアクセス装置にログファイルを出力するようにしてもよい。
【０１７３】
図２３は、第７の実施形態を示し、前記第６実施形態の契約入力ユーザインタフェース３１００の入力を変更したものであり、その他の構成は前記第６実施形態と同様である。
【０１７４】
図２３において、契約入力ユーザインタフェース３４００は、前記図２０の契約入力ユーザインタフェース３１００に比べて、指定する内容が抽象的になっており、ＬＰＡＲの利用者の割当率の変更にかかる操作を簡易にするものである。
【０１７５】
すなわち、サービスのレベルをＳ、Ａ、Ｂ、Ｃから選択するために、図中３４０１〜３４０４は四者択一のラジオボタンになっており、３４０１はレベルＳの選択を、３４０２はレベルＡの選択を、３４０３はレベルＢの選択を、３４０４はレベルＣの選択を示す。
【０１７６】
レベルＳは最も性能重視の契約を示す。レベルＣは最も価格重視の契約を示す。レベルＡは性能重視だが、レベルＳほど価格は高くなく、レベルＢは価格重視だがレベルＣより性能を重視する契約である。どのレベルがどのようなサービスを提供するかは、契約書などの記述に基づくものである。
【０１７７】
図中３４０３は契約変更ボタンであり、このボタンを押すと選択されたサービスレベルが入力ユーザインタフェース１００１に送られる。入力ユーザインタフェース１００１は、サービスレベルが送られてくると、そのサービスレベルを予め定められたチャート（図示省略）等を参照して、計算機資源の割当率の上限と下限に変換し、それらの値が妥当かどうか判断し（他の顧客と契約したサービスレベルが守れなければ、当該顧客の指示したサービスレベルは妥当でないと判断される）、妥当であれば、入力ユーザインタフェース１００１の割当率範囲設定１１００の当該ＬＰＡＲｉの上限（１１１ｉ）と下限（１１２ｉ）に、チャートを参照して得られた上限と下限の値を設定し、１７００の更新ボタンを押したのと同様に設定を有効にする。妥当でない場合は、上限と下限の値は割当率範囲設定１１００には反映されない。
【０１７８】
契約入力ユーザインタフェース３４００によって契約内容の変更指示が発行され、それに対して、入力ユーザインタフェース１００１が顧客画面に出力する契約確認ユーザインタフェース３２００は、前記第６実施形態の場合と同様である。また、契約出力ユーザインタフェース３３００についても前記第６実施形態と同様である。
【０１７９】
なお、負荷計測手段が計測した負荷または適応制御手段が決定した各論理区画に対する計算機資源の割当率とを出力する出力ユーザインタフェースを有し、該出力ユーザインタフェースは、前記負荷計測手段が計測した各ＬＰＡＲ上のＯＳの負荷と該適応制御手段が決定した各ＬＰＡＲに対する計算機資源の割当率を時系列として表示することを特徴とする仮想計算機システムであってもよい。
【０１８０】
また、負荷計測手段が計測した負荷または該適応制御手段が決定した各論理区画に対する計算機資源の割当率とを出力する出力ユーザインタフェースを有し、適応制御手段が各ＬＰＡＲに対する計算機資源の割当率を変更すると、前記出力ユーザインタフェースは当該変更の理由を表示することを特徴とする仮想計算機システムとしてもよい。
【０１８１】
また、物理計算機を複数のＬＰＡＲに分割し、各ＬＰＡＲ上でそれぞれＯＳが動作させ、各ＬＰＡＲに対する物理計算機の資源の割当を制御するハイパバイザを有する仮想計算機システムであって、各ＬＰＡＲ上のＯＳの負荷を計測する負荷計測手段と、該負荷計測手段によって計測された各ＬＰＡＲ上のＯＳの負荷に基づいて、各ＬＰＡＲに割当てる計算機資源の割当率を決定し、該割当率がこれまで割り当ててきた割当率と異なる場合は、ハイパバイザに対し資源の割当率変更を指示する適応制御手段と、前記負荷計測手段が計測した負荷と適応制御手段が決定した各ＬＰＡＲに対する計算機資源の割当率を時系列としてファイル（ログファイル）に記録するログ記録手段を有し、前記ハイパバイザは該適応制御手段からの指示に従って各ＬＰＡＲに対する計算機資源の割当率を動的に変更する手段を設けたことを特徴とする仮想計算機システムとしてもよく、さらに、前記ログ記録手段は、適応制御手段が各ＬＰＡＲに対する計算機資源の割当率を変更した履歴をログファイルに記録することを特徴とする仮想計算機システムとしてもよい。
【０１８２】
また、各顧客毎に契約条件を設定する契約ユーザインタフェースとを設け、該契約ユーザインタフェースに、顧客に割当られた論理区画上のＯＳの負荷や論理区画に対する計算機資源の割当率や割当率の切り替え理由を時系列的に顧客の計算機の画面に表示する手段を設けたことを特徴とする仮想計算機システムであっても良い。
【０１８３】
また、ユーザインタフェースには、指定された設定を設定ファイルに書き出す手段と、該設定ファイルを読みこんで該設定ファイルに保存されていた設定を該ユーザインタフェース上に復元する手段を設けたことを特徴とする仮想計算機システムとしてもよい。
【０１８４】
今回開示した実施の形態は、全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び内容の範囲での全ての変更が含まれることが意図される。
【図面の簡単な説明】
【０１８５】
【図１】本発明の仮想計算機を動作させる物理計算機の構成を示す図である。
【図２】同じく仮想計算機の概念図である。
【図３】仮想計算機のモジュール構成を示す概略図である。
【図４】設定などを入力するための入力ユーザインタフェースの画面イメージを示す図である。
【図５】各ＬＰＡＲの負荷やＣＰＵ割当率の時系列及び割当変更理由を表示する出力ユーザインタフェースの画面イメージを示す図である。
【図６】負荷に基づいて各ＬＰＡＲに対しする計算機資源の割当を変更する負荷適応制御の処理の概要を説明するフローチャートである。
【図７】負荷計測部で行われる負荷計測処理の流れを示すフローチャートである。
【図８】適応制御部が、負荷計測部で計測した負荷からＣＰＵ割当率を決定する処理の流れを示すフローチャートである。
【図９】割当率決定処理で行われる負荷に加工を施す処理の流れを示すフローチャートである。
【図１０】割当率決定処理で行われる仮ＣＰＵ割当率の計算処理の流れを示すフローチャートである。
【図１１】同じく、仮ＣＰＵ割当率を閾値法により計算する場合のフローチャートである。
【図１２】割当率修正処理の一例を示すフローチャートで、その前半部である。
【図１３】同じく、割当率修正処理の一例を示すフローチャートで、その中間部である。
【図１４】同じく、割当率修正処理の一例を示すフローチャートで、その後半部である。
【図１５】第２の実施形態を示し、仮想計算機のモジュール構成を示す概略図である。
【図１６】第３の実施形態を示し、仮想計算機のモジュール構成を示す概略図である。
【図１７】第４の実施形態を示し、入力ユーザインタフェースの画面イメージを示す図である。
【図１８】第５の実施形態を示し、出力インタフェースをログ記録部とした場合の概念図である。
【図１９】第６の実施形態を示し、仮想計算機のモジュール構成を示す概略図である。
【図２０】同じく、契約入力ユーザインタフェースの画面イメージを示す図である。
【図２１】同じく、契約確認ユーザインタフェースの画面イメージを示す図である。
【図２２】同じく、契約出力ユーザインタフェースの画面イメージを示す図である。
【図２３】第７の実施形態を示し、契約入力ユーザインタフェースの画面イメージを示す図である。
【符号の説明】
【０１８６】
１００、・・・、１０ｍ  ＣＰＵ０、・・・ＣＰＵｍ
１１０  メモリコントローラ
１１１  主記憶
１２０、・・・、１２ｍ  Ｉ／Ｏ０、・・・、Ｉ／Ｏｍ
１３０  物理計算機
１４０  コンソール
２００  ハイパバイザ
２１０、・・・、２１ｍ  ＬＰＡＲ０、・・・、ＬＰＡＲｍ
２２０、・・・、２２ｍ  ＯＳ０、・・・、ＯＳｍ
３００  適応制御部
４００、・・・、４０ｍ  負荷計測部０、・・・、負荷計測部ｍ
１０００  ユーザインタフェース
１００１  入力ユーザインタフェース
１００２  出力ユーザインタフェース
１００４  ログ記録部
１１００  割当率範囲設定
１２００  割当率計算設定
１３００  負荷加工設定
１４００  計測負荷設定
１５００  制御インターバル設定
１６００  適応制御有効設定
１８００、・・・、１８０ｍ  ＯＳ０の負荷の時系列表示欄、・・・、ＯＳｍの負荷の時系列表示欄
１８１０  各ＬＰＡＲに対するＣＰＵ割当率の時系列表示欄
１８２０  割当変更理由表示欄
３０００、・・・、３００ｍ  契約ユーザインタフェース０、・・・、契約ユーザインタフェースｍ
【図１】
2007200346.tif 000003
【図２】
2007200346.tif 000004
【図３】
2007200346.tif 000005
【図４】
2007200346.tif 000006
【図５】
2007200346.tif 000007
【図６】
2007200346.tif 000008
【図７】
2007200346.tif 000009
【図８】
2007200346.tif 000010
【図９】
2007200346.tif 000011
【図１０】
2007200346.tif 000012
【図１１】
2007200346.tif 000013
【図１２】
2007200346.tif 000014
【図１３】
2007200346.tif 000015
【図１４】
2007200346.tif 000016
【図１５】
2007200346.tif 000017
【図１６】
2007200346.tif 000018
【図１７】
2007200346.tif 000019
【図１８】
2007200346.tif 000020
【図１９】
2007200346.tif 000021
【図２０】
2007200346.tif 000022
【図２１】
2007200346.tif 000023
【図２２】
2007200346.tif 000024
【図２３】
2007200346.tif 000025
【手続補正書】
【提出日】平成19年4月16日(2007.4.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
物理計算機を複数の論理区画に分割し、各論理区画上でそれぞれＯＳを動作させ、各論理区画に対する物理計算機の資源の割当を制御するハイパバイザを有する仮想計算機システムであって、
前記仮想計算機システムの制御動作に拘わる負荷の種類を設定する負荷種類設定手段を有するユーザインタフェースと、
該ユーザインタフェースから入力された設定に従って、各論理区画上のＯＳで前記負荷種類設定手段で指定された種類の負荷を計測する負荷計測手段と、
該負荷計測手段によって計測された各論理区画上のＯＳの前記負荷に基づいて、各論理区画に割当てる計算機資源を構成するＣＰＵと主記憶及びＩ／Ｏの割当率を決定し、該割当率が前回の割当率と異なる場合は前記ハイパバイザに対し割当率の変更を指示する適応制御手段とを有し、
前記ハイパバイザは、該適応制御手段からの指示に従って各論理区画に対する前記計算機資源の割当率を動的に変更する割当率変更手段を設けたことを特徴とする仮想計算機システム。
【請求項２】
前記ユーザインタフェースは、前記割当率の閾値または割当率の範囲を設定し、
前記適応制御手段は、前記割当率の閾値または割当率の範囲を超えないように前記割当率を決定することを特徴とする請求項１に記載の仮想計算機システム。
【請求項３】
前記負荷種類設定手段で設定可能な負荷の種類は、ＣＰＵ使用率、メモリ使用率、ディスク使用率、ネットワーク使用率の中の少なくとも一つを含み、該負荷種類の中から一つ、または、複数の負荷を選択して指定することを特徴とする請求項１に記載の仮想計算機システム。
【請求項４】
物理計算機を複数の論理区画に分割し、各論理区画上でそれぞれＯＳを動作させ、各論理区画に対する物理計算機の資源の割当を制御するハイパバイザを有する仮想計算機システムであって、
前記仮想計算機システムの制御動作に拘わる負荷の種類を設定する負荷種類設定手段を有するユーザインタフェースと、
該ユーザインタフェースから入力された設定に従って、各論理区画上のＯＳで前記負荷種類設定手段で指定された種類の負荷を計測する負荷計測手段と、
該負荷計測手段によって計測された各論理区画上のＯＳの前記負荷に基づいて、各論理区画に割当てる計算機資源としての主記憶の割当率を決定し、該割当率が前回の割当率と異なる場合は前記ハイパバイザに対し割当率の変更を指示する適応制御手段とを有し、
前記ハイパバイザは、該適応制御手段からの指示に従って各論理区画に対する前記計算機資源の割当率を動的に変更する割当率変更手段を設けたことを特徴とする仮想計算機システム。
【請求項５】
物理計算機を複数の論理区画に分割し、各論理区画上でそれぞれＯＳを動作させ、各論理区画に対する物理計算機の資源の割当を制御するハイパバイザを有する仮想計算機システムであって、
前記仮想計算機システムの制御動作に拘わる負荷の種類を設定する負荷種類設定手段を有するユーザインタフェースと、
該ユーザインタフェースから入力された設定に従って、各論理区画上のＯＳで前記負荷種類設定手段で指定された種類の負荷を計測する負荷計測手段と、
該負荷計測手段によって計測された各論理区画上のＯＳの前記負荷に基づいて、各論理区画に割当てる計算機資源としてのＩ／Ｏの割当率を決定し、該割当率が前回の割当率と異なる場合は前記ハイパバイザに対し割当率の変更を指示する適応制御手段とを有し、
前記ハイパバイザは、該適応制御手段からの指示に従って各論理区画に対する前記計算機資源の割当率を動的に変更する割当率変更手段を設けたことを特徴とする仮想計算機システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
本発明は、物理計算機を複数のＬＰＡＲ（論理区画）に分割し、各ＬＰＡＲ上でそれぞれＯＳが動作し、各ＬＰＡＲに対する物理計算機の資源の割当を制御するハイパバイザ（割当手段）を有する仮想計算機システムであって、前記仮想計算機システムの制御動作に拘わる負荷の種類を設定する負荷種類設定手段を有するユーザインタフェースと、該ユーザインタフェースから入力された設定に従って、各論理区画上のＯＳで前記負荷種類設定手段で指定された種類の負荷を計測する負荷計測手段と、該負荷計測手段によって計測された各論理区画上のＯＳの前記負荷に基づいて、各論理区画に割当てる計算機資源を構成するＣＰＵと主記憶及びＩ／Ｏの割当率を決定し、該割当率が前回の割当率と異なる場合は前記ハイパバイザに対し割当率の変更を指示する適応制御手段とを有し、前記ハイパバイザは、該適応制御手段からの指示に従って各論理区画に対する前記計算機資源の割当率を動的に変更する割当率変更手段を設ける。