(57)【要約】【課題】アプリケーションに対する品質保証を実現しつつ、リソースの利用効率を高める。【解決手段】リソース割当装置１０は、サーバリソース２００それぞれの容量を示すリソース容量情報１２０が記憶される記憶部１３と、ＳＬＩの情報を複数のアプリケーション２それぞれについて、所定の時間間隔で取得するＳＬＩ情報収集部１１と、取得したＳＬＩの情報に関する所定期間の移動平均と標準偏差とを用いて各アプリケーション２の割当リソース量を算出し、割当リソース量の多い順にアプリケーション２をソートし、割当リソース量の多いアプリケーション２の順に各サーバリソース２００の容量を超えない範囲で、ソートしたアプリケーション２の割当リソース量を足し合わせていくことにより、当該アプリケーション２の割当先となるサーバリソース２００を決定するリソース割当決定部１２と、を備える。【選択図】図１
2020038434.tif 000002
【特許請求の範囲】
【請求項１】
ＳＬＯ（Service Level Objective）保証を要する複数のアプリケーションを実行するサーバに接続され、当該サーバが備える複数のサーバリソースへの複数の前記アプリケーションの割り当てを決定するリソース割当装置であって、
前記サーバリソースそれぞれの容量を示すリソース容量情報が記憶される記憶部と、
前記アプリケーションが前記サーバリソースを用いて実行されたときの前記ＳＬＯを保証するための計測値であるＳＬＩ（Service Level Indicator）の情報を、複数の前記アプリケーションそれぞれについて、所定の時間間隔で取得するＳＬＩ情報収集部と、
前記アプリケーションごとに、取得した前記ＳＬＩの情報に関する所定期間の移動平均と標準偏差とを算出し、算出した前記移動平均および標準偏差を用いて各アプリケーションの割当リソース量を算出し、
算出した前記割当リソース量の多い順に前記アプリケーションをソートし、前記割当リソース量の多いアプリケーションの順に各サーバリソースの容量を超えない範囲で、前記ソートしたアプリケーションの割当リソース量を足し合わせていくことにより、当該アプリケーションの割当先となるサーバリソースを決定するリソース割当決定部と、
を備えることを特徴とするリソース割当装置。
【請求項２】
前記リソース割当決定部は、
前記割当リソース量を、以下の式１に基づき計算すること
割当リソース量Ｒ ＝ 移動平均Ｍ＋（所定の係数ｋ）×標準偏差ｓ  ・・・式１
を特徴とする請求項１に記載のリソース割当装置。
【請求項３】
前記記憶部には、前記アプリケーションごとに、リソース量について前記ＳＬＯで規定される値が格納されており、
前記リソース割当決定部は、
前記アプリケーションそれぞれについて算出した前記割当リソース量が、前記ＳＬＯで規定される値を超えるか否かを判定し、超える場合には、当該算出した割当リソース量に替えて、前記ＳＬＯで規定される値を当該アプリケーションの割当リソース量にすること
を特徴とする請求項１または請求項２に記載のリソース割当装置。
【請求項４】
ＳＬＯ保証を要する複数のアプリケーションを実行するサーバに接続され、当該サーバが備える複数のサーバリソースへの複数の前記アプリケーションの割り当てを決定するリソース割当装置のリソース割当方法であって、
前記リソース割当装置は、
前記サーバリソースそれぞれの容量を示すリソース容量情報が記憶される記憶部を備えており、
前記アプリケーションが前記サーバリソースを用いて実行されたときの前記ＳＬＯを保証するための計測値であるＳＬＩの情報を、複数の前記アプリケーションそれぞれについて、所定の時間間隔で取得するステップと、
前記アプリケーションごとに、取得した前記ＳＬＩの情報に関する所定期間の移動平均と標準偏差とを算出し、算出した前記移動平均および標準偏差を用いて各アプリケーションの割当リソース量を算出するステップと、
算出した前記割当リソース量の多い順に前記アプリケーションをソートし、前記割当リソース量の多いアプリケーションの順に各サーバリソースの容量を超えない範囲で、前記ソートしたアプリケーションの割当リソース量を足し合わせていくことにより、当該アプリケーションの割当先となるサーバリソースを決定するステップと、
を実行することを特徴とするリソース割当方法。
【請求項５】
コンピュータを、請求項１乃至請求項３のいずれか１項に記載のリソース割当装置として機能させるためのリソース割当プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理サーバ上で共有されるサーバリソースを制御する、リソース割当装置、リソース割当方法およびリソース割当プログラムに関する。
【０００２】
キャリア系サービスなど、厳格な品質規定を持つアプリケーションに対して、Ｅ２Ｅ（エンドツーエンド）でのＳＬＯ（Service Level Objective）を保証することが求められている。なお、ＳＬＯは、サービス事業者に対して保証する性能条件であり、例えば、レイテンシやスループットなどで規定される。
【０００３】
一方、物理リソースを外部から利用できないように遮断し、当該リソースをアプリケーションが占有できる状態することにより、アイソレート（分離）されたサーバリソースをアプリケーションに提供する技術が知られている。例えば、ＣＰＵピニングの技術を用いることで、物理ＣＰＵコアを特定のアプリケーションや仮想マシンに占有（ピニング）させることができる（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】「Red Hat Customer Portal  2.3.4.オプション：ＣＰＵのPINNING(固定）」  ［online］、Red Hat、［平成30年8月20日検索］、インターネット＜ＵＲＬ：https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/virtualization_tuning_and_optimization_guide/ch02s03s04＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
サーバ仮想化技術を用い、サーバ上で複数のアプリケーション（ＡＰＬ）を稼働させる一般的な環境では、サーバリソースは全アプリケーションで共有され、リソース利用効率を高めることができる。しかしながら図５に示すように、リソースの競合によって、各アプリケーションにおいて規定されるＳＬＯを満たせない可能性がある。
【０００６】
一方、サーバリソースをピニング等で占有させた場合、例えば、ピニングされた物理ＣＰＵコアは特定のアプリケーションや仮想マシンでしか利用できない。よって、図６に示すように、サーバリソースの占有により、各アプリケーションにおいて規定されるＳＬＯを満たせる可能性は高くなるが、リソースの利用効率が低くなってしまう。
つまり、リソースのアイソレーションに基づくＳＬＯの保証と、リソースの利用効率とはトレードオフの関係にある。
【０００７】
このような点に鑑みて本発明がなされたのであり、本発明は、アプリケーションに対する品質保証を実現しつつ、リソースの利用効率を高めることができる、リソース割当装置、リソース割当方法およびリソース割当プログラムを提供することを課題とする。
【課題を解決するための手段】
【０００８】
前記した課題を解決するため、請求項１に記載の発明は、ＳＬＯ（Service Level Objective）保証を要する複数のアプリケーションを実行するサーバに接続され、当該サーバが備える複数のサーバリソースへの複数の前記アプリケーションの割り当てを決定するリソース割当装置であって、前記サーバリソースそれぞれの容量を示すリソース容量情報が記憶される記憶部と、前記アプリケーションが前記サーバリソースを用いて実行されたときの前記ＳＬＯを保証するための計測値であるＳＬＩ（Service Level Indicator）の情報を、複数の前記アプリケーションそれぞれについて、所定の時間間隔で取得するＳＬＩ情報収集部と、前記アプリケーションごとに、取得した前記ＳＬＩの情報に関する所定期間の移動平均と標準偏差とを算出し、算出した前記移動平均および標準偏差を用いて各アプリケーションの割当リソース量を算出し、算出した前記割当リソース量の多い順に前記アプリケーションをソートし、前記割当リソース量の多いアプリケーションの順に各サーバリソースの容量を超えない範囲で、前記ソートしたアプリケーションの割当リソース量を足し合わせていくことにより、当該アプリケーションの割当先となるサーバリソースを決定するリソース割当決定部と、を備えることを特徴とするリソース割当装置とした。
【０００９】
また、請求項４に記載の発明は、ＳＬＯ保証を要する複数のアプリケーションを実行するサーバに接続され、当該サーバが備える複数のサーバリソースへの複数の前記アプリケーションの割り当てを決定するリソース割当装置のリソース割当方法であって、前記リソース割当装置が、前記サーバリソースそれぞれの容量を示すリソース容量情報が記憶される記憶部を備えており、前記アプリケーションが前記サーバリソースを用いて実行されたときの前記ＳＬＯを保証するための計測値であるＳＬＩの情報を、複数の前記アプリケーションそれぞれについて、所定の時間間隔で取得するステップと、前記アプリケーションごとに、取得した前記ＳＬＩの情報に関する所定期間の移動平均と標準偏差とを算出し、算出した前記移動平均および標準偏差を用いて各アプリケーションの割当リソース量を算出するステップと、算出した前記割当リソース量の多い順に前記アプリケーションをソートし、前記割当リソース量の多いアプリケーションの順に各サーバリソースの容量を超えない範囲で、前記ソートしたアプリケーションの割当リソース量を足し合わせていくことにより、当該アプリケーションの割当先となるサーバリソースを決定するステップと、を実行することを特徴とするリソース割当方法とした。
【００１０】
このようにすることで、リソース割当装置は、ＳＬＯの確実な保証を可能にするとともに、実際に利用するリソース量（ＳＬＩの情報）に応じて、各アプリケーションに関する割当リソース量および割当先となるサーバリソースを動的に変更できるため、リソースの利用効率を高めることができる。
【００１１】
請求項２に記載の発明は、前記リソース割当決定部が、前記割当リソース量を、以下の式１に基づき計算すること
割当リソース量Ｒ ＝ 移動平均Ｍ＋（所定の係数ｋ）×標準偏差ｓ  ・・・式１
を特徴とする請求項１に記載のリソース割当装置とした。
【００１２】
このようにすることで、リソース割当装置は、アプリケーションが処理に必要となるリソースを確実に確保した上で、ＳＬＯとの関係で余分なリソースを割り当てなくて済む。よって、他のアプリケーションに当該リソースの残りの部分を割り当てることができるため、リソースの利用効率を高めることができる。
【００１３】
請求項３に記載の発明は、前記記憶部には、前記アプリケーションごとに、リソース量について前記ＳＬＯで規定される値が格納されており、前記リソース割当決定部が、前記アプリケーションそれぞれについて算出した前記割当リソース量が、前記ＳＬＯで規定される値を超えるか否かを判定し、超える場合には、当該算出した割当リソース量に替えて、前記ＳＬＯで規定される値を当該アプリケーションの割当リソース量にすることを特徴とする請求項１または請求項２に記載のリソース割当装置とした。
【００１４】
このようにすることで、リソース割当装置は、そのアプリケーションに関するＳＬＯで規定される値を超えて、サーバリソースに割当リソース量を設定することを避けることができる。よって、ＳＬＯの保証を確保した上で、ＳＬＯを超える分のリソースについては、他のアプリケーションに振り分けることで、全体としてリソースを有効活用することができる。
【００１５】
請求項５に記載の発明は、コンピュータを、請求項１乃至請求項３のいずれか１項に記載のリソース割当装置として機能させるためのリソース割当プログラムとした。
【００１６】
このようにすることにより、一般的なコンピュータを用いて、請求項１乃至請求項３のいずれか１項に記載のリソース割当装置の各機能を実現することができる。
【発明の効果】
【００１７】
本発明によれば、アプリケーションに対する品質保証を実現しつつ、リソースの利用効率を高める、リソース割当装置、リソース割当方法およびリソース割当プログラムを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本実施形態に係るリソース割当装置を含むリソース制御システムの構成を示すブロック図である。
【図２】本実施形態に係るリソース割当処理の具体例におけるデータを例示する図である。
【図３】本実施形態に係るＳＬＩ（帯域量）と割当リソース量を時系列に示す図である。
【図４】本実施形態に係るリソース割当装置が実行するリソース割当処置の流れを示すフローチャートである。
【図５】複数のアプリケーションでリソースを共有する場合の課題を説明するための図である。
【図６】１つのアプリケーションでリソースを占有した場合の課題を説明するための図である。
【発明を実施するための形態】
【００１９】
次に、本発明を実施するための形態（以下、「本実施形態」という。）について説明する。
図１は、本実施形態に係るリソース割当装置１０を含むリソース制御システム１０００の構成を示すブロック図である。
リソース制御システム１０００は、１つ以上のサーバ２０と、そのサーバ２０のリソース（サーバリソース２００）に関するアプリケーション（ＡＰＬ）２の割り当てを制御するリソース割当装置１０とを備える。サーバ２０とリソース割当装置１０とは、データの送受信が可能となるように通信接続される。
【００２０】
本実施形態に係るリソース割当装置１０は、サーバ２０から各アプリケーション２が実際に利用しているリソース量（ＳＬＩ：Service Level Indicator）の情報を収集し、その収集したＳＬＩに基づき、各アプリケーション２に対し割り当てるリソース量（後記する「割当リソース量」）を決定するとともに、確保するサーバリソース２００を決定する。
【００２１】
サーバ２０は、リソース割当装置１０が決定した割当リソース量とリソースを確保するサーバリソース２００の情報を示すリソース割当指示を受け取る。そして、サーバ２０は、既存のリソースアイソレーション機能を用いて、サーバリソース２００（物理リソース）を単純に占有させるのではなく、部分的に占有させて、各アプリケーション２に提供する。
【００２２】
既存のリソースアイソレーション機能は、例えば、Ｌｉｎｕｘ（登録商標）において提供されるオープンソースのモジュールである「cgroup（Contorol Group）」や「tc（Traffic Contorol）」を用いることができる。
cgroupの機能を用いることにより、ＣＰＵ時間やメモリ、Disk I/Oなどのリソースを特定のアプリケーションに割り当て、他のアプリケーションの使用を制限することができる。また、tcの機能（ｔｃコマンド）を用いることにより、ネットワークインタフェースに対し、帯域制限（帯域量の割り当て）を可能とする。
なお、cgroupについては、例えば「Control Group v2,［online］,インターネット＜URL：https://www.kernel.org/doc/Documentation/cgroup-v2.txt＞」に詳しい。また、tcについては、例えば「How to Use the Linux Traffic Contorol，［online］，NETBEEZ，インターネット＜URL：https://netbeez.net/blog/how-to-use-the-linux-traffic-control/＞」に詳しい。
【００２３】
リソース割当装置１０は、アプリケーション２が実際に利用しているリソース量（ＳＬＩ）について所定期間の移動平均と標準偏差とを計算し、そのアプリケーション２に割り当てるリソース量（割当リソース量）を算出する。また、リソース割当装置１０は、算出した各アプリケーション２の割当リソース量の合計がサーバリソース２００の容量を超えないようにして、リソースを確保するサーバリソース２００を決定する。
これにより、本実施形態に係るリソース割当装置１０は、ＳＬＯの確実な保証を可能にするとともに、リソース量（ＳＬＩ）に応じて割当リソース（割当リソース量および割当先となるサーバリソース）を動的に変更するため、リソースの利用効率を高めることができる。
以下、リソース制御システム１を構成するサーバ２０およびリソース割当装置１０について詳細に説明する。
【００２４】
＜サーバ＞
サーバ２０は、制御部、入出力部および記憶部（いずれも図示省略）を備える一般的なコンピュータにより構成される。このサーバ２０は、各アプリケーション２のＳＬＯを保証するために測定された計測値であるＳＬＩを、リソース割当装置１０に所定の時間間隔で送信する。そして、サーバ２０は、リソース割当装置１０からのリソース割当指示を受信し、リソースアイソレーション機能により、サーバリソース２００を部分的に占有させて各アプリケーション２に提供する。
【００２５】
入出力部は、リソース割当装置１０等との間で、情報の送受信を行う通信インタフェースにより構成される。また、記憶部は、ハードディスクやフラッシュメモリ、ＲＡＭ（Random Access Memory）等により構成される。
【００２６】
制御部は、図１に示すように、ＳＬＩ計測部２１と、リソース制御部２２とを含んで構成される。
図１で示すサーバ２０のうち、破線で囲んだ部分（符号ａ）は、複数のアプリケーション（ＡＰＬ）２とそのアプリケーション２が利用する複数のサーバリソース２００の関係を概念的に示したものである。本実施形態におけるサーバリソース２００は、例えば、サーバ２０が備えるＣＰＵコアや、物理ポート（図示省略）に設定されるネットワーク帯域、メモリ等を意味する。また、各アプリケーション２は、サービス事業者に対して保証する条件であるＳＬＯ（例えば、レイテンシ１msec以内、スループット10Mpps等）が予め設定されているものとする。
【００２７】
ＳＬＩ計測部２１は、各アプリケーション２が実際に利用しているリソース量（ＳＬＩ）の情報を所定の時間間隔ごとに計測し、蓄積する。
ここで、ＳＬＩは、例えば、それぞれのアプリケーション２が利用しているＣＰＵ実行時間やネットワーク帯域量などである。ＳＬＩは、他にも、レイテンシやスループット、ネットワーク帯域の使用量、ＣＰＵ命令実行回数、メモリ帯域の使用量、Disk I/O等であってもよい。
ＳＬＩ計測部２１は、自サーバ２０が実行するアプリケーション２ごとに、そのアプリケーション２が利用しているサーバリソース２００のリソース量（ＳＬＩ)を計測して、リソース割当装置１０に送信する。
【００２８】
リソース制御部２２は、上記したリソースアイソレーション機能（例えば、「cgroup」や「tc」を実行する機能）を備えている。そして、リソース割当装置１０からリソース割当指示を受信すると、そのリソース割当指示で示される割当リソース量および割当先となるサーバリソースに基づき、リソースアイソレーション機能を用いて、各アプリケーション２が利用するサーバリソース２００とその割当リソース量とを設定する。これにより、リソース制御部２２は、サーバリソース２００を部分的に占有させて各アプリケーション２に提供する。
【００２９】
＜リソース割当装置＞
リソース割当装置１０は、サーバ２０から各アプリケーション２が実際に利用しているリソース量（ＳＬＩ）の情報を所定の時間間隔で収集し、その収集したＳＬＩに基づき、各アプリケーションに対し割り当てるリソース量を決定するとともに、確保する（割当先となる）サーバリソース２００を決定する。
リソース割当装置１０は、割当リソース（割当リソース量および割当先となるサーバリソース）を決定するに際して、アプリケーション２が実際に利用しているリソース量（ＳＬＩ）の所定期間の移動平均と標準偏差とを用いる（詳細は後記）。
【００３０】
このリソース割当装置１０は、制御部、入出力部（いずれも図示省略）および記憶部１３を備える一般的なコンピュータにより構成される。入出力部は、サーバ２０等との間で、情報の送受信を行う通信インタフェースにより構成される。
【００３１】
記憶部１３は、ハードディスクやフラッシュメモリ、ＲＡＭ等により構成される。この記憶部１３には、ＳＬＯ情報１１０、リソース容量情報１２０、設定情報１３０が予め記憶されている。また、後記するＳＬＩ情報収集部１１がサーバ２０から収集した各アプリケーション２のＳＬＩの情報がＳＬＩ情報ＤＢ１４０に格納される。
【００３２】
ＳＬＯ情報１１０には、各アプリケーション２に対して設定されているＳＬＯ（性能条件）の情報が格納される。
リソース容量情報１２０には、サーバ２０が備える各サーバリソース２００（物理リソース）のキャパシティ（容量）の情報が格納される。例えば、ネットワーク帯域を割り当てる物理ポートのキャパシティが「１Ｇｂｐｓ」として格納される。
設定情報１３０には、割当リソース量を決定する際に用いる、所定期間の情報と標準偏差の係数（所定の係数）の情報とが格納される。例えば、移動平均を計算するための所定期間として「１０秒」、標準偏差の係数として「３」が格納される。
ＳＬＩ情報ＤＢ１４０には、所定の時間間隔ごとにサーバ２０から取得する各アプリケーション２のＳＬＩの情報が格納される。
【００３３】
制御部は、図１に示すように、ＳＬＩ情報収集部１１と、リソース割当決定部１２とを含んで構成される。この制御部は、例えば、記憶部１３に格納されたプログラム（リソース割当プログラム）を不図示のＣＰＵ（Central Processing Unit）が、ＲＡＭに展開し実行することにより実現される。
【００３４】
ＳＬＩ情報収集部１１は、サーバ２０から各アプリケーション２が実際に利用しているリソース量（ＳＬＩ）の情報を所定の時間間隔で収集する。そして、ＳＬＩ情報収集部１１は、収集したリソース量（ＳＬＩ）の情報を、記憶部１３内のＳＬＩ情報ＤＢ１４０に格納する。
【００３５】
リソース割当決定部１２は、アプリケーション２が実際に利用しているリソース量（ＳＬＩ）の情報を、ＳＬＩ情報ＤＢ１４０から取得し、そのリソース量（ＳＬＩ）の情報の所定期間の移動平均と標準偏差とを計算する。ここで、リソース割当決定部１２は、記憶部１３に記憶された設定情報１３０に格納される、所定期間の情報に基づき移動平均を計算する。そして、リソース割当決定部１２は、計算した移動平均と標準偏差とを用いて、そのアプリケーション２の割当リソース量を決定する。
例えば、リソース割当決定部１２は、以下の（式１）を用いて割当リソース量を算出する。
割当リソース量Ｒ＝移動平均Ｍ ＋（所定の係数ｋ）×標準偏差ｓ  ・・・（式１）
ここで、所定の係数ｋは、標準偏差の係数であり、例えば、ｋ＝３とすることで、所定期間におけるすべてのリソース量（ＳＬＩ）の値の約９９．７％を含めることができる。
【００３６】
そして、リソース割当決定部１２は、算出した割当リソース量の合計が、各サーバリソース２００のキャパシティ（容量）を超えないようにして、リソースを確保するサーバリソース２００（割当先となるサーバリソース）を決定する。
この割当先となるサーバリソース２００の決定において、リソース割当決定部１２は、割当リソース量が多い順にアプリケーション２をソートし、各サーバリソース２００のキャパシティ（容量）を超えない範囲で割当リソース量を足し合わせていくことで、リソースを確保するサーバリソース２００を決定する。
例えば、アプリケーション「１」への割当リソース量が「８００Ｍｂｐｓ」、アプリケーション「２」への割当リソース量が「５００Ｍｂｐｓ」、アプリケーション「３」への割当リソース量が「３００Ｍｂｐｓ」であり、１Ｇｂｐｓの物理ポートが２個あった場合、１Ｇｂｐｓの物理ポート「１」からアプリケーション「１」用のリソースを確保し、１Ｇｂｐｓの物理ポート「２」からアプリケーション「２」「３」用のリソースを確保する。
【００３７】
リソース割当決定部１２は、各アプリケーション２についての割当リソース（割当リソース量および割当先となるサーバリソース）を決定すると、その割当リソースの情報を、リソース割当指示としてサーバ２０に送信する。
【００３８】
このようにすることにより、リソース割当装置１０は、ＳＬＯの確実な保証を可能にするとともに、ＳＬＩに応じてサーバ２０の割当リソースを動的に変更できるため、サーバリソース２００の利用効率を高めることができる。よって、ＳＬＯの保証を要するアプリケーションを重畳して利用する場合におけるＣＡＰＥＸ（設備投資）の削減に繋げることができる。
【００３９】
≪具体例≫
次に、本実施形態に係るリソース割当装置１０を含むリソース制御システム１０００におけるリソース割当処理の具体例について説明する。
ここでは、サーバ２０のリソース制御部２２が、リソースアイソレーション機能のうち「tc（ｔｃコマンド）」を用いて、ネットワーク帯域量を割り当てる例について説明する。
【００４０】
まず、リソース割当装置１０のＳＬＩ情報収集部１１は、サーバ２０からリソース量（ＳＬＩ）の情報を収集し、ＳＬＩ情報ＤＢ１４０に格納する。ここでは、図２に示すように、アプリケーション「１」のＳＬＩの情報（帯域量（Ｍｂｐｓ））を、１秒ごとに収集しているものとする（図２の符号１４１参照）。
【００４１】
次に、リソース割当装置１０のリソース割当決定部１２は、記憶部１３内の設定情報１３０で示される、移動平均を計算するための所定期間として設定されている時間、例えば「１０秒」に基づき、その過去１０秒のＳＬＩの情報の平均値（図２の符号１４２参照）と過去１０秒分の標準偏差（図２の符号１４３参照）とを計算する。
【００４２】
続いて、リソース割当決定部１２は、計算した所定期間の移動平均と標準偏差とを用いて、割当リソース量を算出する。ここでは、記憶部１３内の設定情報１３０に、標準偏差の係数（所定の係数）ｋとして「３」が設定されているものとする。
リソース割当決定部１２は、（式１）に基づき、以下の（式２）により割当リソース量Ｒを算出する（図２の符号１４４参照）。
割当リソース量Ｒ＝移動平均Ｍ ＋３×標準偏差ｓ  ・・・（式２）
【００４３】
そして、リソース割当決定部１２は、算出した割当リソース量の合計が、サーバリソース２００（物理リソース）のキャパシティ（本例では、１ポート当たり１Ｇｂｐｓとする。）を超えないように、各アプリケーション２に割り当てるリソースを、どのサーバリソース２００（物理リソース）から確保するかを決定する。具体的には、リソース割当決定部１２は、割当リソース量が多い順にアプリケーション２をソートし、各サーバリソース２００のキャパシティ（容量）を超えない範囲で割当リソース量を足し合わせていくことで、リソースを確保するサーバリソース２００を決定する。
【００４４】
例えば、アプリケーション「１」への割当リソース量が「４５０Ｍｂｐｓ」、アプリケーション「２」への割当リソース量が「４００Ｍｂｐｓ」、アプリケーション「３」への割当リソース量が「３００Ｍｂｐｓ」、アプリケーション「４」への割当リソース量が「１００Ｍｂｐｓ」と算出され、１Ｇｂｐｓの物理ポートが２個あった場合、次のようにリソースを確保する。
リソース割当決定部１２は、１Ｇｂｐｓの物理ポート「１」からアプリケーション「１」「２」用のリソースをまず確保する。そして、物理ポート「１」に入りきれないアプリケーション「３」については、物理ポート「２」にリソースを確保する。次に、アプリケーション「４」については、物理ポート「１」の現時点での割当リソース量の合計が８５０Ｍｂｐｓ（４５０Ｍｂｐｓ＋４００Ｍｂｐｓ）であることから、アプリケーション「４」の割当リソース量「１００Ｍｂｐｓ」を加えても物理ポートのキャパシティ（容量）を超えないため、物理ポート「１」に割り当てる。このようにして、割当先となるサーバリソース２００を決定する。
【００４５】
リソース割当装置１０のリソース割当決定部１２は、各アプリケーション２についての割当リソース（割当リソース量および割当先となるサーバリソース）を決定すると、その割当リソースの情報を、リソース割当指示としてサーバ２０に送信する。
そして、サーバ２０のリソース制御部２２は、例えば、帯域制御を行う場合、ｔｃコマンドを利用して、アプリケーション「１」用に物理ポート「１」のリソースを４５０Ｍｂｐｓ分確保し、アプリケーション「２」用に物理ポート「１」のリソースを４００Ｍｂｐｓ分確保し、アプリケーション「４」用に物理ポート「１」のリソースを１００Ｍｂｐｓ分確保する。また、アプリケーション「３」用に物理ポート「２」のリソースを、３００Ｍｂｐｓ分確保する。
【００４６】
図３は、図２で示したアプリケーション「１」についての、ＳＬＩ（帯域量）（図２の符号１４１）と、リソース割当装置１０のリソース割当決定部１２が決定した割当リソース量（図２の符号１４４）を、時系列に示す図である。
図３において、アプリケーション「１」のＳＬＯが「１Ｇｂｐｓ（１０００Ｍｂｐｓ）」であるとすると、従来であれば、「１Ｇｂｐｓ」のリソースを常に割り当てる必要があった。しかしながら、本実施形態によれば、その時点のＳＬＩに応じて、割当リソース（割当リソース量および割当先となるサーバリソース）を動的に変更することができる。よって、リソースの有効利用が可能となる。
【００４７】
なお、リソース割当装置１０のリソース割当決定部１２は、あるアプリケーション２について算出した割当リソース量の値が、ＳＬＯで規定される値を超えている場合には、算出した割当リソース量に替えて、ＳＬＯで規定される値を割当リソース量として決定する。このようにすることで、そのアプリケーション２に対し、ＳＬＯを超えた過剰なリソースの割り当てをしないようにし、ＳＬＯの値を超えた分のリソースを、他のアプリケーション２に割り当てることが可能となる。
【００４８】
＜処理の流れ＞
次に、リソース割当装置１０が実行するリソース割当処理の流れについて説明する。
図４は、本実施形態に係るリソース割当装置１０が実行するリソース割当処置の流れを示すフローチャートである。
なお、リソース割当装置１０の記憶部１３には、各アプリケーション２に関するＳＬＯの情報（ＳＬＯ情報１１０）、各サーバリソース２００に関するリソース容量情報１２０、および、設定情報１３０（所定期間の情報と標準偏差の係数の情報）が予め格納されているものとする。
【００４９】
まず、リソース割当装置１０のＳＬＩ情報収集部１１は、サーバ２０から各アプリケーション２が利用しているリソース量（ＳＬＩ）の情報を取得し（ステップＳ１０）、ＳＬＩ情報ＤＢ１４０（図１参照）に格納する。なお、以下に示すステップＳ１１〜ステップＳ２０は、ＳＬＩ情報収集部１１が、所定の時間間隔でサーバ２０からリソース量（ＳＬＩ）の情報を取得する度に行われる。
【００５０】
次に、リソース割当装置１０のリソース割当決定部１２は、アプリケーション２が実際に利用しているリソース量（ＳＬＩ）の情報を、ＳＬＩ情報ＤＢ１４０から取得し、そのリソース量（ＳＬＩ）の情報の所定期間（例えば、１０秒）における移動平均と標準偏差とを計算する（ステップＳ１１）。
【００５１】
続いて、リソース割当決定部１２は、アプリケーション２ごとに、計算した移動平均と標準偏差とを用いて、割当リソース量を算出する（ステップＳ１２）。
リソース割当決定部１２は、記憶部１３内に設定情報１３０として記憶された、標準偏差の係数（例えば、ｋ＝３）に基づき上記した（式２）を用いて、割当リソース量を算出する。
【００５２】
そして、リソース割当決定部１２は、割当リソース量が多い順にアプリケーション２をソートし、割当リソース量が多い順に未処理のアプリケーション２の１つを選択する（ステップＳ１３）。
【００５３】
次に、リソース割当決定部１２は、選択したアプリケーション２を割り当てるサーバリソース２００を仮選択する。そして、リソース割当決定部１２は、選択したアプリケーション２の割当リソース量と、仮選択したサーバリソース２００にそれまでに設定済みの他のアプリケーション２の割当リソース量との合計が、そのサーバリソース２００のキャパシティ（容量）を超えるか否かを判定する（ステップＳ１４）。
なお、複数のサーバリソース２００のうち、仮選択するサーバリソース２００の順番は、予め設定されているものとする。
【００５４】
ステップＳ１４の判定の結果、当該サーバリソース２００のキャパシティ（容量）を超えていれば（ステップＳ１４→Ｙｅｓ）、当該サーバリソース２００に替えて他のサーバリソース２００（次の順番に設定されたサーバリソース）を仮選択し（ステップＳ１５）、ステップＳ１４に戻る。
一方、ステップＳ１４の判定の結果、割当リソース量（の合計）がサーバリソース２００のキャパシティ（容量）を超えていなければ（ステップＳ１４→Ｎｏ）、そのアプリケーション２の割当リソース量がＳＬＯで規定される値を超えるか否かを判定する（ステップＳ１６）。
【００５５】
ここで、割当リソース量がＳＬＯで規定される値を超える場合には（ステップＳ１６→Ｙｅｓ）、算出した割当リソース量に替えて、ＳＬＯで規定される値を新たな割当リソース量として決定する（ステップＳ１７）。そして、ステップＳ１８に進む。
一方、割当リソース量がＳＬＯで規定される値以下の場合には（ステップＳ１６→Ｎｏ）、ステップＳ１８に進む。
【００５６】
ステップＳ１８において、リソース割当決定部１２は、仮選択したサーバリソース２００を、選択したアプリケーション２の割当先のサーバリソース２００として決定する。
【００５７】
続いて、リソース割当決定部１２は、すべてのアプリケーション２を処理したか否かを判定する（ステップＳ１９）。そして、リソース割当決定部１２は、まだ処理していないアプリケーション２がある場合には（ステップＳ１９→Ｎｏ）、ステップＳ１３に戻る。一方、リソース割当決定部１２は、すべてのアプリケーション２を処理している場合には（ステップＳ１９→Ｙｅｓ）、ステップＳ２０に進む。
【００５８】
ステップＳ２０において、リソース割当装置１０のリソース割当決定部１２は、各アプリケーションの割当リソース量と割当先のサーバリソース２００の情報を含むリソース割当指示を生成し、サーバ２０に送信して処理を終える。
なお、サーバ２０は、リソース割当指示を受信し、リソースアイソレーション機能を用いて、各アプリケーション２が利用するサーバリソース２００とその割当リソース量とを設定する。これにより、サーバ２０は、サーバリソース２００を部分的に占有させて各アプリケーション２に提供する。
【００５９】
以上説明したように、本実施形態に係る、リソース割当装置、リソース割当方法およびリソース割当プログラムによれば、ＳＬＯの確実な保証を可能にするとともに、リソース量（ＳＬＩ）に応じて割当リソース（割当リソース量および割当先となるサーバリソース）を動的に変更するため、リソースの利用効率を高めることができる。
【符号の説明】
【００６０】
２      アプリケーション（ＡＰＬ）
１０    リソース割当装置
１１    ＳＬＩ情報収集部
１２    リソース割当決定部
１３    記憶部
２０    サーバ
２１    ＳＬＩ計測部
２２    リソース制御部
１１０  ＳＬＯ情報
１２０  リソース容量情報
１３０  設定情報
１４０  ＳＬＩ情報ＤＢ
２００  サーバリソース
１０００  リソース制御システム
【図１】
2020038434.tif 000003
【図２】
2020038434.tif 000004
【図３】
2020038434.tif 000005
【図４】
2020038434.tif 000006
【図５】
2020038434.tif 000007
【図６】
2020038434.tif 000008