(57)【要約】【課題】仮想マシンがすでに稼働している物理サーバに新たな仮想マシンを配置することができるか否かを事前に知る。【解決手段】ＣＥＭ５０は、デプロイ対象のＶＭ４０が測定サーバ２０上で稼働するときのキャッシュ使用量を測定する。管理サーバ１０は、ＣＥＭ５０が測定サーバ２０へのランダムアクセス頻度を変化させることで、測定したキャッシュ使用量から、ＶＭ４０のランダムアクセス頻度を算出する。また、管理サーバ１０は、物理サーバＡ，Ｂ（３０−１，３０−２）の各々が備えるＣＥＭ５１，５２が、算出したランダムアクセス頻度で稼働したときのキャッシュ可用量を、ＣＥＭ５１，５２の各々から収集する。また、管理サーバ１０は、収集したキャッシュ可用量が、ＶＭ４０の必要キャッシュ容量よりも大きい場合、ＶＭ４０を物理サーバＡ，Ｂ（３０−１，３０−２）にデプロイ可能と判断する。【選択図】図１
2018032058.tif 000002
【特許請求の範囲】
【請求項１】
統合された複数の物理サーバ上で稼働する複数の仮想マシンを管理する仮想マシン管理装置であって、
デプロイ対象仮想マシンが前記仮想マシン管理装置上で稼働するときに使用するキャッシュ容量であるキャッシュ使用量を測定する管理側測定器と、
前記管理側測定器が前記仮想マシン管理装置のメインメモリにランダムアクセスするときのランダムアクセス頻度を変化させることで、前記測定したキャッシュ使用量から、前記デプロイ対象仮想マシンのランダムアクセス頻度を算出する算出部と、
前記物理サーバの各々が備える物理サーバ側測定器が、前記算出したランダムアクセス頻度で稼働したときに確保されるキャッシュ容量となるキャッシュ可用量を、前記物理サーバ側測定器の各々から収集する収集部と、
前記収集したキャッシュ可用量が、前記デプロイ対象仮想マシンの稼働に必要なキャッシュ容量である必要キャッシュ容量よりも大きい場合、前記デプロイ対象仮想マシンを前記物理サーバにデプロイ可能と判断する判断部と、を備える、
ことを特徴とする仮想マシン管理装置。
【請求項２】
前記物理サーバ側測定器の各々から収集したキャッシュ可用量は、
前記物理サーバ側測定器が、前記算出したランダムアクセス頻度にまでランダムアクセス頻度を徐々に増大させて得られるキャッシュ容量である、
ことを特徴とする請求項１に記載の仮想マシン管理装置。
【請求項３】
前記算出したランダムアクセス頻度にまでランダムアクセス頻度を徐々に増大させるまでに、前記物理サーバ上で稼働する仮想マシンのキャッシュ使用量が、当該仮想マシンの稼働に必要なキャッシュ容量である必要キャッシュ容量を下回った場合、前記物理サーバ側測定器は測定を終了し、前記デプロイ対象仮想マシンを前記物理サーバにデプロイ不可とする判断結果を前記物理サーバ側測定器から受信する、
ことを特徴とする請求項２に記載の仮想マシン管理装置。
【請求項４】
統合された複数の物理サーバ上で稼働する複数の仮想マシンを管理する仮想マシン管理装置におけるデプロイ可否判断方法であって、
前記仮想マシン管理装置が、
管理側測定器を用いて、デプロイ対象仮想マシンが前記仮想マシン管理装置上で稼働するときに使用するキャッシュ容量であるキャッシュ使用量を測定するステップと、
前記管理側測定器が前記仮想マシン管理装置のメインメモリにランダムアクセスするときのランダムアクセス頻度を変化させることで、前記測定したキャッシュ使用量から、前記デプロイ対象仮想マシンのランダムアクセス頻度を算出するステップと、
前記物理サーバの各々が備える物理サーバ側測定器が、前記算出したランダムアクセス頻度で稼働したときに確保されるキャッシュ容量となるキャッシュ可用量を、前記物理サーバ側測定器の各々から収集するステップと、
前記収集したキャッシュ可用量が、前記デプロイ対象仮想マシンの稼働に必要なキャッシュ容量である必要キャッシュ容量よりも大きい場合、前記デプロイ対象仮想マシンを前記物理サーバにデプロイ可能と判断するステップと、を実行する、
ことを特徴とするデプロイ可否判断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、汎用プラットフォーム上に配置する仮想マシン間のキャッシュ競合に対処する技術に関する。
【背景技術】
【０００２】
サーバ仮想化技術の発展に伴い、物理サーバを統合し、汎用プラットフォーム上で複数の仮想マシン（ＶＭ：Virtual Machine）を動作させることが行われている。現在ＣＰＵ（Central Processing Unit）で主流となっているマルチコア構成では、低次のキャッシュを複数のコアが共有するアーキテクチャを持つことが一般的である。
【０００３】
汎用プラットフォームのノード上で仮想マシンを単体で動かしたときには、図８（ａ）に示したように、その仮想マシン（図８（ａ）では、「ＶＭ１」）が共有キャッシュ（図８においては「３次キャッシュメモリ」）を占有した状態となる。これに対し、同じノード上で複数の仮想マシンが稼働している場合、図８（ｂ）に示すように、自身の仮想マシン（「ＶＭ１」）以外の他の仮想マシン（「ＶＭ２」「ＶＭ３」「ＶＭ４」）によって共有キャッシュ（３次キャッシュメモリ）のデータが置き換えられ、キャッシュミスが相対的に増加する。ここで、キャッシュミスとは、命令処理に必要なデータがキャッシュメモリに存在せず、キャッシュメモリからデータを読み込むことができないことをいう。キャッシュミスを起こしたコアは、キャッシュメモリより数倍アクセス時間のかかるメインメモリまで参照にいかなければならず、その結果として性能低下を引き起こす。これを複数仮想マシン間のキャッシュ競合と呼ぶ。
【０００４】
複数の仮想マシンが物理サーバの同じキャッシュを使用すれば、仮想マシンの各々が使用するキャッシュの容量、つまりキャッシュ使用量は、単体の仮想マシンが利用する場合と比較して減少する。キャッシュ使用量が減少することは、キャッシュミス数の増加を招くため、アプリケーションによっては６０％程度の性能低下が起こり得る（例えば、非特許文献１参照）。
【０００５】
非特許文献２には、最終レベルキャッシュのキャッシュ使用量（どの仮想マシンがどれだけのキャッシュ（空間）を使用しているか）をモニタリングするハードウェア機能（Cache Monitoring Technology）の技術について開示されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Intel's Cache Monitoring Technology: Use Models and Data  ［online］、［平成28年8月8日検索］、インターネット<ＵＲＬ:https://software.intel.com/en-us/blogs/2014/12/11/intels-cache-monitoring-technology-use-models-and-data>
【非特許文献２】Benefits of Intel Cache Monitoring Technology in the Intel Xeon Processor E5 v3 Family  ［online］、［平成28年8月8日検索］、インターネット<ＵＲＬ:https://software.intel.com/en-us/blogs/2014/06/18/benefit-of-cache-monitoring>（Intelは登録商標。Xeonは登録商標。）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
新たな仮想マシンを、すでに仮想マシンが稼働している物理サーバ上に配置（デプロイ）する際、インフラ運用者は、この配置が、稼働中の仮想マシンとのキャッシュ競合を考慮して本当に可能か否かを事前に知りたい場合がある。非特許文献２は、新たな仮想マシンを配置した後の処理（モニタリング）を説明しているだけである。このような非特許文献２の技術では、新たな仮想マシンを配置することが本当にできるか否かを事前に知ることができない。
【０００８】
このような事情に鑑みて、本発明は、仮想マシンがすでに稼働している物理サーバに新たな仮想マシンを配置することができるか否かを事前に知ることを課題とする。
【課題を解決するための手段】
【０００９】
前記した課題を解決するため、請求項１に記載の発明は、統合された複数の物理サーバ上で稼働する複数の仮想マシンを管理する仮想マシン管理装置であって、デプロイ対象仮想マシンが前記仮想マシン管理装置上で稼働するときに使用するキャッシュ容量であるキャッシュ使用量を測定する管理側測定器と、前記管理側測定器が前記仮想マシン管理装置のメインメモリにランダムアクセスするときのランダムアクセス頻度を変化させることで、前記測定したキャッシュ使用量から、前記デプロイ対象仮想マシンのランダムアクセス頻度を算出する算出部と、前記物理サーバの各々が備える物理サーバ側測定器が、前記算出したランダムアクセス頻度で稼働したときに確保されるキャッシュ容量となるキャッシュ可用量を、前記物理サーバ側測定器の各々から収集する収集部と、前記収集したキャッシュ可用量が、前記デプロイ対象仮想マシンの稼働に必要なキャッシュ容量である必要キャッシュ容量よりも大きい場合、前記デプロイ対象仮想マシンを前記物理サーバにデプロイ可能と判断する判断部と、を備える、ことを特徴とする。
【００１０】
また、請求項４に記載の発明は、統合された複数の物理サーバ上で稼働する複数の仮想マシンを管理する仮想マシン管理装置におけるデプロイ可否判断方法であって、前記仮想マシン管理装置が、管理側測定器を用いて、デプロイ対象仮想マシンが前記仮想マシン管理装置上で稼働するときに使用するキャッシュ容量であるキャッシュ使用量を測定するステップと、前記管理側測定器が前記仮想マシン管理装置のメインメモリにランダムアクセスするときのランダムアクセス頻度を変化させることで、前記測定したキャッシュ使用量から、前記デプロイ対象仮想マシンのランダムアクセス頻度を算出するステップと、前記物理サーバの各々が備える物理サーバ側測定器が、前記算出したランダムアクセス頻度で稼働したときに確保されるキャッシュ容量となるキャッシュ可用量を、前記物理サーバ側測定器の各々から収集するステップと、前記収集したキャッシュ可用量が、前記デプロイ対象仮想マシンの稼働に必要なキャッシュ容量である必要キャッシュ容量よりも大きい場合、前記デプロイ対象仮想マシンを前記物理サーバにデプロイ可能と判断するステップと、を実行する、ことを特徴とする。
【００１１】
請求項１，４に記載の発明によれば、汎用プラットフォーム上で仮想マシンのデプロイを行う場合、キャッシュ容量という観点で、デプロイ先の物理サーバですでに稼働している仮想マシンに意図的に負荷をかけたときの影響を、デプロイ前に観測することができる。
したがって、仮想マシンがすでに稼働している物理サーバに新たな仮想マシンを配置することができるか否かを事前に知ることができる。
【００１２】
また、請求項２に記載の発明は、請求項１に記載の仮想マシン管理装置であって、前記物理サーバ側測定器の各々から収集したキャッシュ可用量は、前記物理サーバ側測定器が、前記算出したランダムアクセス頻度にまでランダムアクセス頻度を徐々に増大させて得られるキャッシュ容量である、ことを特徴とする。
【００１３】
請求項２に記載の発明によれば、デプロイ先の物理サーバですでに稼働している仮想マシンにかける影響を必要最小限に抑えることができ、新たな仮想マシンの配置の判断を円滑にすることができる。
【００１４】
また、請求項３に記載の発明は、請求項２に記載の仮想マシン管理装置であって、前記算出したランダムアクセス頻度にまでランダムアクセス頻度を徐々に増大させるまでに、前記物理サーバ上で稼働する仮想マシンのキャッシュ使用量が、当該仮想マシンの稼働に必要なキャッシュ容量である必要キャッシュ容量を下回った場合、前記物理サーバ側測定器は測定を終了し、前記デプロイ対象仮想マシンを前記物理サーバにデプロイ不可とする判断結果を前記物理サーバ側測定器から受信する、ことを特徴とする。
【００１５】
請求項３に記載の発明によれば、デプロイ先の物理サーバにて、既に稼働している仮想マシンへの影響が大きすぎて、新たな仮想マシンのデプロイが不可であることを事前に判断することができる。このため、新たな仮想マシンの配置の判断をより円滑にすることができる。
【発明の効果】
【００１６】
本発明によれば、仮想マシンがすでに稼働している物理サーバに新たな仮想マシンを配置することができるか否かを事前に知ることができる。
【図面の簡単な説明】
【００１７】
【図１】本実施形態のキャッシュ管理システムの全体構成図の例である。
【図２】（ａ）ＣＥＭの機能構成図の例であり、（ｂ）がキャッシュ使用量を示すグラフの例である。
【図３】管理サーバの機能構成図の例である。
【図４】本実施形態のキャッシュ管理システムの全体シーケンスの例を示す図である。
【図５】デプロイ対象仮想マシンのランダムアクセス頻度測定の説明図（１）である。
【図６】デプロイ対象仮想マシンのランダムアクセス頻度測定の説明図（２）である。
【図７】仮想マシンのデプロイ可否判断の説明図である。
【図８】汎用プラットフォーム上で複数の仮想マシンを動作させた場合のキャッシュ競合を説明するための図であり、（ａ）は、単体の仮想マシンが動作した場合、（ｂ）は、複数の仮想マシンが動作した場合である。
【発明を実施するための形態】
【００１８】
本発明の実施形態について、図面を参照しながら詳細に説明する。
【００１９】
≪全体構成≫
図１に示すように、本実施形態のキャッシュ管理システムは、管理サーバ１０と、測定サーバ２０と、複数の物理サーバＡ（３０−１），Ｂ（３０−２），・・・を備える。物理サーバＡ（３０−１），Ｂ（３０−２），・・・は、物理サーバ３０と総称する場合がある。
【００２０】
管理サーバ１０は、測定サーバ２０および物理サーバ３０から所定の情報を収集することで測定サーバ２０および物理サーバ３０を監視する。
測定サーバ２０は、１または複数の仮想マシンが配置される測定用の物理サーバである。測定サーバ２０には、新たにデプロイしようとするＶＭ４０（デプロイ対象仮想マシン）、および、後記するＣＥＭ５０（管理側測定器）が配置されている。
物理サーバ３０は、１または複数の仮想マシンが配置されるサービス提供用の物理サーバである。物理サーバＡ（３０−１）には、ＶＭ４１およびＣＥＭ５１（物理サーバ側測定器）が配置されている。物理サーバＢ（３０−２）には、ＶＭ４２，４３およびＣＥＭ５２（物理サーバ側測定器）が配置されている。ＣＥＭ５１，５２は、ＣＥＭ５０と同等の機能を有する。
【００２１】
管理サーバ１０と測定サーバ２０とは、本実施形態の仮想マシン管理装置を構成する。仮想マシン管理装置は、管理サーバ１０および測定サーバ２０の別体の装置を複数組み合わせて構成することができる。また、仮想マシン管理装置は、管理サーバ１０の機能と測定サーバ２０の機能を兼ね備えた１体の装置として構成することもできる。
【００２２】
≪ＣＥＭ≫
図２（ａ）に示すように、例えばＣＥＭ５０は、キャッシュ負荷装置部５０ａと、キャッシュ容量測定部５０ｂと、入出力部５０ｃと、必要キャッシュ記憶部５０ｄと、測定終了判断部５０ｅと、を有する。
【００２３】
キャッシュ負荷装置部５０ａは、ＣＥＭ５０自身が配置されている物理サーバのメインメモリに所定のランダムアクセス頻度（ｆ［／ｓ］）でランダムアクセスする。ランダムアクセス頻度は可変であり、入出力部５０ｃを介して管理サーバ１０から設定することができる。
【００２４】
キャッシュ容量測定部５０ｂは、ＣＥＭ５０自身が配置されている物理サーバ上で動作中のプロセスのキャッシュ使用量（ｓ［ＭＢ］）を測定する。動作中プロセスには、物理サーバに配置されている１または複数の仮想マシンおよびＣＥＭ５０自身を含む。プロセスのキャッシュ使用量とは、当該プロセスが、配置先の物理サーバ上で動作するときに使用（占有）する（当該物理サーバの）キャッシュのキャッシュ容量である。測定されたキャッシュ使用量は、入出力部５０ｃを介して管理サーバ１０に通知される。
【００２５】
入出力部５０ｃは、管理サーバ１０とのインターフェイスとして機能する。入出力部５０ｃは、キャッシュ負荷装置部５０ａによるランダムアクセスのランダムアクセス頻度を変化させて得られる、キャッシュ容量測定部５０ｂが測定したキャッシュ使用量の推移を出力する（図２（ｂ）参照）。
【００２６】
必要キャッシュ記憶部５０ｄは、ＣＥＭ５０と配置先の物理サーバが同じである仮想マシンが正常にまたは遅延なく稼働するのに必要となるキャッシュ容量を必要キャッシュ容量として記憶する。必要キャッシュ容量は、インフラ運用者が登録する。必要キャッシュ記憶部５０ｄは、仮想マシンごとに必要キャッシュ容量を記憶する。
【００２７】
測定終了判断部５０ｅは、各仮想マシンのキャッシュ使用量から、ＣＥＭ５０による測定（後記）の終了および続行を判断する。
【００２８】
≪管理サーバ≫
図３に示すように、管理サーバ１０は、制御部１１と、通信部１２と、記憶部１３を備えている。
【００２９】
通信部１２は、通信接続される、測定サーバ２０および物理サーバ３０と所定の情報の入出力を行う。また、通信部１２は、通信回線を介して情報の送受信を行う不図示の通信インターフェイスと、キーボード等の入力手段やモニタ等の出力手段（いずれも不図示）との間で入出力を行う入出力インターフェイスとから構成される。
【００３０】
記憶部１３は、ハードディスクやフラッシュメモリ、ＲＡＭ（Random Access Memory）等の記憶手段からなり、必要キャッシュ容量情報１３ａおよび測定サーバ情報１３ｂなどを記憶する。
必要キャッシュ容量情報１３ａは、仮想マシンの必要キャッシュ容量を示す情報であり、仮想マシンごとにインフラ運用者が登録する。登録対象の仮想マシンには、物理サーバ３０に配置されているＶＭ４１〜４３、および、測定サーバ２０上に配置されているＶＭ４０が含まれる。
測定サーバ情報１３ｂは、測定サーバ２０のキャッシュ使用度を示す情報であり、測定サーバ２０から収集される。測定サーバ２０のキャッシュ使用度は、測定サーバ２０のメインメモリへのランダムアクセスのランダムアクセス頻度に応じて、測定サーバ２０のキャッシュが、どの程度使用されているかを示す値である。キャッシュ使用度は、ランダムアクセス頻度と、測定サーバ２０上で動作するプロセスのキャッシュ使用量とのグラフとして示すことができる。
【００３１】
制御部１１は、管理サーバ１０全体の制御を司り、必要キャッシュ容量登録部１１ａと、ランダムアクセス頻度算出部１１ｂ（算出部）と、キャッシュ可用量収集部１１ｃ（収集部）と、デプロイ可否判断部１１ｄ（判断部）とを備える。また、この制御部１１は、例えば、記憶部１３に格納されたプログラムを不図示のＣＰＵがＲＡＭに展開し実行することで実現される。
【００３２】
必要キャッシュ容量登録部１１ａは、インフラ運用者が登録した、仮想マシン（デプロイ対象仮想マシン（ＶＭ４０）を含む）ごとの必要キャッシュ容量を記憶部１３に保存する。保存された必要キャッシュ容量は、必要キャッシュ容量情報１３ａを構成する。
【００３３】
ランダムアクセス頻度算出部１１ｂは、キャッシュ容量測定部５０ｂが測定した、プロセスのキャッシュ使用量から、当該プロセスのランダムアクセス頻度を算出する。ランダムアクセス頻度算出部１１ｂは、例えば、測定サーバ２０のキャッシュ使用度を利用して、ランダムアクセス頻度を算出することができる（後記）。
【００３４】
キャッシュ可用量収集部１１ｃは、各ＣＥＭ５１，５２が測定したキャッシュ可用量を各ＣＥＭ５１，５２から収集する。キャッシュ可用量は、各ＣＥＭ５１，５２がそれぞれ、物理サーバＡ（３０−１），Ｂ（３０−２）上で稼働するときに確保されるキャッシュ容量である。
【００３５】
デプロイ可否判断部１１ｄは、収集されたキャッシュ可用量と、デプロイ対象仮想マシン（ＶＭ４０）の必要キャッシュ容量とを比較し、当該仮想マシンが物理サーバ３０の各々にデプロイ可能か否かを判断する。
【００３６】
なお、測定サーバ２０は、管理サーバ１０と同様に、制御部と、通信部と、記憶部とを備える。
また、各物理サーバ３０は、管理サーバ１０と同様に、制御部と、通信部と、記憶部とを備える。
【００３７】
≪処理≫
次に、本実施形態のキャッシュ管理システムが実行する処理について説明する。
図４に示すように、管理サーバ１０は、各物理サーバＡ，Ｂ（３０−１，３０−２）上で稼働するＶＭ４１〜４３の必要キャッシュ容量（ｓserver）を物理サーバＡ，Ｂ（３０−１，３０−２）のＣＥＭ５１，５２にそれぞれ通知する（ステップＳ１）。必要キャッシュ容量（ｓserver）は、必要キャッシュ容量情報１３ａから読み出した情報である。
【００３８】
次に、管理サーバ１０は、デプロイ対象仮想マシンのキャッシュ使用量を測定するように、測定サーバ２０のＣＥＭ５０に要求する（ステップＳ２）。
なお、この要求を受信した測定サーバ２０は、図５に示す手順（ステップＡ１〜Ａ３）を予め準備実行する。ステップＡ１〜Ａ３は、図４の処理の開始前に実行してもよいし、ステップＳ２の要求があった後に行ってもよい。
まず、測定サーバ２０上のＣＥＭ５０を所定のランダムアクセス頻度（ｆ０）で常時稼働させる（ステップＡ１）。
【００３９】
測定サーバ２０上のＣＥＭ５３（ＣＥＭ５０と同等の機能を有する）は、ＣＥＭ５０がｆ０で稼働している状況下で、測定サーバ２０のキャッシュ使用度（ＣＵ）を測定する（ステップＡ２）。測定サーバ２０のキャッシュ使用度（ＣＵ）は、測定サーバ２０上にＣＥＭ５０，５３を稼働させた状態で、キャッシュ負荷装置部５０ａがランダムアクセス頻度を変化させつつ、キャッシュ容量測定部５０ｂが測定したキャッシュ使用量（ｓ）の推移を示すグラフとして表わすことができる。
また、測定サーバ２０上のＣＥＭ５３は、測定したキャッシュ使用度（ＣＵ）を管理サーバ１０に通知する（ステップＡ２）。
【００４０】
管理サーバ１０は、ＣＥＭ５３から通知されたキャッシュ使用度（ＣＵ）を、測定サーバ情報１３ｂに保存する（ステップＡ３）。
【００４１】
図４に戻って、測定サーバ２０のＣＥＭ５０は、キャッシュ容量測定部５０ｂによって、デプロイ対象仮想マシンとしてのＶＭ４０のキャッシュ使用量（ｓＶＭ）を測定する（ステップＳ３）。また、測定サーバ２０のＣＥＭ５０は、測定したキャッシュ使用量（ｓＶＭ）を管理サーバ１０に通知する（ステップＳ４）。
次に、管理サーバ１０は、デプロイ対象仮想マシンのランダムアクセス頻度（ｆＶＭ）を算出する（ステップＳ５）。
【００４２】
ステップＳ３〜Ｓ５による測定は、図６に示す手順（ステップＢ１〜Ｂ３）に従って実行される。なお、図６に示すように、測定サーバ２０上に、デプロイ対象仮想マシンとしての対象ＶＭ（ＶＭ４０）を配置する。また、ＣＥＭ５３は、測定サーバ２０から削除する。
【００４３】
ｆ０で稼働中のＣＥＭ５０は、キャッシュ容量測定部５０ｂによって、ＣＥＭ５０自身のキャッシュ使用量を除くように演算処理をして、対象ＶＭ、つまりＶＭ４０のキャッシュ使用量（ｓＶＭ）を測定し、管理サーバ１０に通知する（ステップＢ１）。
管理サーバ１０は、測定サーバ情報１３ｂに保存しているキャッシュ使用度（ＣＵ）を読み取る（ステップＢ２）。
管理サーバ１０は、ランダムアクセス頻度算出部１１ｂによって、読み取ったキャッシュ使用度（ＣＵ）を用いて、ＣＥＭ５０から通知されたキャッシュ使用量（ｓＶＭ）に対応するランダムアクセス頻度（ｆ）を、対象ＶＭのランダムアクセス頻度（ｆＶＭ）として算出する（ステップＢ３）。
【００４４】
図４に戻って、管理サーバ１０は、算出した、デプロイ対象仮想マシン、つまり対象ＶＭのランダムアクセス頻度（ｆＶＭ）を、物理サーバＡ，Ｂ（３０−１，３０−２）のＣＥＭ５１，５２にそれぞれ通知するとともに、ランダムアクセス頻度（ｆＶＭ）に基づくキャッシュ可用量の測定を要求する（ステップＳ６）。
【００４５】
物理サーバＡ，Ｂ（３０−１，３０−２）のＣＥＭ５１，５２はそれぞれ、ランダムアクセス頻度（ｆＶＭ）に基づくキャッシュ可用量（ｓＣＥＭ）を測定する（ステップＳ７）。このキャッシュ可用量（ｓＣＥＭ）の測定方法は後記する。なお、キャッシュ可用量（ｓＣＥＭ）が測定不可になる場合もあり、その場合、測定不可の結果を出力する。
【００４６】
物理サーバＡ，Ｂ（３０−１，３０−２）のＣＥＭ５１，５２はそれぞれ、測定したキャッシュ可用量（ｓＣＥＭ）（または測定不能の結果）を管理サーバ１０に通知する（ステップＳ８）。管理サーバ１０は、通知されたキャッシュ可用量（ｓＣＥＭ）を用いてデプロイ対象仮想マシンのデプロイ可否を判断する（ステップＳ９）。
【００４７】
ステップＳ７〜Ｓ９による処理は、図７に示す手順（ステップＣ１〜Ｃ４）に従って実行される。まず、物理サーバＡ，Ｂ（３０−１，３０−２）のＣＥＭ５１，５２はそれぞれ、物理サーバＡ，Ｂ（３０−１，３０−２）で稼働するＶＭ４１〜４３のキャッシュ使用量をモニタリングしている。
【００４８】
ＣＥＭ５１，５２はそれぞれ、キャッシュ負荷装置部５０ａによって、ＣＥＭ５１，５２のランダムアクセス頻度を０〜ｆＶＭまで徐々に増大させる（ステップＣ１）。すると、図７中のグラフ１００Ａ，１００Ｂに示すように、ＣＥＭ５１，５２（１００Ａ，１００Ｂ中では単に「ＣＥＭ」と表記）のキャッシュ使用量は増大する一方、物理サーバＡ，Ｂ（３０−１，３０−２）で稼働するＶＭ４１〜４３（１００Ａ，１００Ｂ中では単に「ＶＭ」と表記））のキャッシュ使用量は減少する。
【００４９】
ＣＥＭ５１，５２のランダムアクセス頻度をｆＶＭに増大させるまでに、ＶＭ４１〜４３のいずれかのキャッシュ使用量が、自身の仮想マシンの必要キャッシュ容量（ｓserver）を下回ったとき、キャッシュ可用量（ｓＣＥＭ）の測定を中断して終了する（図７中のグラフ１００Ａ参照）。この場合、デプロイ対象仮想マシンのデプロイは不可と判断する。
【００５０】
ＶＭ４１〜４３のいずれかのキャッシュ使用量が、自身の仮想マシンの必要キャッシュ容量（ｓserver）を下回ることなく、ＣＥＭ５１，５２のランダムアクセス頻度がｆＶＭに到達した場合、ｆＶＭにおいてＣＥＭ５１，５２が確保しているキャッシュ使用量をキャッシュ可用量（ｓＣＥＭ）として測定を終了する（図７中のグラフ１００Ｂ参照）。ＣＥＭ５１，５２は、測定が成功したときのキャッシュ可用量（ｓＣＥＭ）を取得する（ステップＣ２）。
【００５１】
ＣＥＭ５１，５２は、キャッシュ可用量（ｓＣＥＭ）の測定結果（デプロイ不可結果含む）および取得したキャッシュ可用量（ｓＣＥＭ）を管理サーバ１０に通知する（ステップＣ３）。
【００５２】
管理サーバ１０は、デプロイ可否判断部１１ｄによって、ＣＥＭ５１，５２から取得したキャッシュ可用量（ｓＣＥＭ）と、デプロイ対象仮想マシンの必要キャッシュ容量（ｓｄｅｐｌｏｙ）（必要キャッシュ容量登録部１１ａによって登録済み）とを比較する。デプロイ可否判断部１１ｄは、キャッシュ可用量（ｓＣＥＭ）が必要キャッシュ容量（ｓｄｅｐｌｏｙ）よりも大きければ、デプロイ対象仮想マシンを該当の物理サーバＡ，Ｂ（３０−１，３０−２）にデプロイすることが可能であると判断し、そうでなければデプロイ不可と判断する。
以上で、キャッシュ管理システムが実行する処理の説明を終える。
【００５３】
≪まとめ≫
本実施形態によれば、汎用プラットフォーム上で仮想マシンのデプロイを行う場合、キャッシュ容量という観点で、デプロイ先の物理サーバですでに稼働している仮想マシンに意図的に負荷をかけたときの影響を、デプロイ前に観測することができる。
したがって、仮想マシンがすでに稼働している物理サーバに新たな仮想マシンを配置することができるか否かを事前に知ることができる。
【００５４】
また、デプロイ先の物理サーバですでに稼働している仮想マシンにかける影響を必要最小限に抑えることができ、新たな仮想マシンの配置の判断を円滑にすることができる。
【００５５】
また、デプロイ先の物理サーバにて、既に稼働している仮想マシンへの影響が大きすぎて、新たな仮想マシンのデプロイが不可であることを事前に判断することができる。このため、新たな仮想マシンの配置の判断をより円滑にすることができる。
【００５６】
≪変形例≫
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能であり、例えば、次の（ａ）〜（ｃ）のようなものがある。
（ａ）：本実施形態では、管理サーバ１０がデプロイ対象仮想マシンのランダムアクセス頻度（ｆＶＭ）を算出した（図４のステップＳ５）。しかし、測定サーバ２０がこの算出を行うようにしてもよい。
（ｂ）：本発明は、サーバ環境がヘテロなサーバ環境であっても新たな仮想マシンのデプロイ可否を判断することができる。つまり、キャッシュ容量やＣＰＵアーキテクチャが各物理サーバ３０間で異なるサーバ環境であっても本発明を適用することができ、各物理サーバ３０の性能に依らない。
（ｃ）：本発明では、新たな仮想マシンが利用しようとするキャッシュが、最高次（最終レベル）キャッシュ（図８では、３次キャッシュメモリ）に限られず、より低次（１次、２次など）のキャッシュであっても、新たな仮想マシンのデプロイ可否を判断することができる。
（ｄ）：管理サーバ１０は、新たな仮想マシンがデプロイ不可であると判断した場合には、インフラ運用者に所定態様のアラート通知を行うようにしてもよい。
【００５７】
また、本実施形態で説明した種々の技術を適宜組み合わせた技術を実現することもできる。
また、本実施形態で説明したソフトウェアをハードウェアとして実現することもでき、ハードウェアをソフトウェアとして実現することもできる。
その他、ハードウェア、ソフトウェア、処理手順などについて、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【符号の説明】
【００５８】
１０      管理サーバ（仮想マシン管理装置を構成）
１１ａ    必要キャッシュ容量登録部
１１ｂ    ランダムアクセス頻度算出部（算出部）
１１ｃ    キャッシュ可用量収集部（収集部）
１１ｄ    デプロイ可否判断部（判断部）
１３ａ    必要キャッシュ容量情報
１３ｂ    測定サーバ情報
２０      測定サーバ（仮想マシン管理装置を構成）
３０      物理サーバ
４０      ＶＭ（デプロイ対象仮想マシン）
４１〜４３  ＶＭ
５０      ＣＥＭ（管理側測定器）
５１，５２  ＣＥＭ（物理サーバ側測定器）
５０ａ    キャッシュ負荷装置部
５０ｂ    キャッシュ容量測定部
５０ｃ    入出力部
５０ｄ    必要キャッシュ記憶部
５０ｅ    測定終了判断部
【図１】
2018032058.tif 000003
【図２】
2018032058.tif 000004
【図３】
2018032058.tif 000005
【図４】
2018032058.tif 000006
【図５】
2018032058.tif 000007
【図６】
2018032058.tif 000008
【図７】
2018032058.tif 000009
【図８】
2018032058.tif 000010