(57)【特許請求の範囲】
【請求項１】
複数の仮想マシンを実現し、各仮想マシンのメモリに物理メモリの一部を割当てる情報処理装置において、
第１の仮想マシンは、
前記物理メモリ内に計測用領域を確保し、前記計測用領域の第１の領域に対して乱数列を第１のデータとして書き込むとともに、前記計測用領域の第２の領域に対して固定文字列を第２のデータとして書き込む確保部と、
前記計測用領域から前記第１のデータ及び前記第２のデータの読出しを所定の間隔で行って、前記第１のデータの読出し性能及び前記第２のデータの読出し性能を測定する測定部と、
前記第１のデータの読出し性能及び前記第２のデータの読出し性能に基づいて、同一のページが前記物理メモリにおいて共有されているか否かを判定する判定部と
を有することを特徴とする情報処理装置。
【請求項２】
前記判定部は、前記第１のデータの読出し性能が第１の参考値未満であり、かつ、前記第２のデータの読出し性能が第２の参考値以上である場合に、同一のページが前記物理メモリにおいて共有されていると判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記測定部は、データの読出し性能として読出し転送速度を測定し、
前記判定部は、前記第２のデータの読出し転送速度が、前記第１のデータの読出し転送速度を有意に上回る場合に、同一のページが前記物理メモリにおいて共有されていると判定する
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記測定部は、前記所定の間隔を、読出し性能の測定回数に応じて指数関数的に長くすることを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
前記測定部は、前記確保部によって前記第１のデータ及び前記第２のデータが書き込まれたときに、前記第１のデータの読出し性能及び前記第２のデータの読出し性能を測定し、測定した前記第１のデータの読出し性能に基づいて前記第１の参考値を決定するとともに、前記第２のデータの読出し性能に基づいて前記第２の参考値を決定し、当該第１の参考値及び第２の参考値を記憶部に設定することを特徴とする請求項２に記載の情報処理装置。
【請求項６】
複数の仮想マシンを実現し、各仮想マシンのメモリに物理メモリの一部を割当てる情報処理装置で実行される検出方法であって、
第１の仮想マシンが、
前記物理メモリ内に計測用領域を確保し、前記計測用領域の第１の領域に対して乱数列を第１のデータとして書き込むとともに、前記計測用領域の第２の領域に対して固定文字列を第２のデータとして書き込む確保工程と、
前記計測用領域から前記第１のデータ及び前記第２のデータの読出しを所定の間隔で行って、前記第１のデータの読出し性能及び前記第２のデータの読出し性能を測定する測定工程と、
前記第１のデータの読出し性能及び前記第２のデータの読出し性能に基づいて、同一のページが前記物理メモリにおいて共有されているか否かを判定する判定工程と
を含んだことを特徴とする検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び検出方法に関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングに代表されるように、ネットワークを経由してサービスを提供する情報システム（サービス提供システム）の普及が進んでいる。例えば、サービス提供システムには、ネットワークを経由して仮想マシンをユーザに提供するＩａａＳ（Infrastructure  as  a  Service）がある。
【０００３】
このようなサービス提供システムでは、複数の仮想マシン（以下「ＶＭ（Virtual  Machine）」と記載する）が実現されており、各ＶＭには物理メモリやＣＰＵ（Central  Processing  Unit）など物理リソースが割当てられる。ここで、各ＶＭに割当てられた物理リソースの総量が、コンピュータが有する物理リソース以上に割当てられる場合がある。これは、オーバーコミットメントと呼ばれる手法であり、全てのＶＭが同時に全ての物理リソースを使用しないことを前提としている。
【０００４】
また、オーバーコミットメントの手法の一部として、ＶＭに物理メモリを効率的に配分するＫＳＭ(Kernel  SamePage  Merging)がある。ＫＳＭでは、ＶＭ内において複数のメモリ領域に格納されたページの内容が同一である場合、或いはＶＭ間において複数のメモリ領域に格納されたページの内容が同一である場合に、内容が同一である複数のページが一つにまとめられて物理メモリ領域に保存される。これによって、例えば、同一のイメージから起動し、内容が同一であるページを保持している複数のＶＭを実現する場合には、各ＶＭに物理メモリを効率的に割り当てることが可能となる。なお、ＫＳＭでは、保存されたページの内容に変更が生じた場合、変更されたページに対して随時新しいメモリ領域が割り当てられる。
【０００５】
また、このようなメモリのオーバーコミットメントを採用するサービス提供システムにおいて、仮想マシンの繁忙期が重なりリソースが不足した場合、ページング（スワップ）の手法が用いられる。ページングは、利用頻度の低いメモリ領域を、ＨＤＤ（Hard  Disk  Drive）等に退避（ページアウト）することで、新たなメモリの利用要求に対応する手法である。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】網代  育大、“仮想マシン配置のためのパッキングアルゴリズム”、情報処理学会研究報告、IPSJ  SIG  Technical  Report、Vol.2010−EVA−33、No.4、2010/11/29
【非特許文献２】Red  Hat  Customer  Portal、第7章  KSM、［online］、2013年、［平成25年4月9日検索］、インターネット（URL：https://access.redhat.com/knowledge/docs/ja-JP/Red＿Hat＿Enterprise＿Linux/6/html/Virtualization＿Administration＿Guide/chap-KSM.html）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の技術では、内容が同一である複数のページが一つにまとめられているか否かを判定することができないという課題がある。具体的には、ホストＯＳ（Operating  System）やハイパーバイザ等のサービス提供システムの管理主体が、仮想マシンの利用者と異なる場合、仮想マシンの利用者は、ＫＳＭが有効になっているか否かを識別することができない。
【０００８】
開示の実施形態は、上述に鑑みてなされたものであって、内容が同一である複数のページが一つにまとめられているか否かを判定することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示する情報処理装置は、複数の仮想マシンを実現し、各仮想マシンのメモリに物理メモリの一部を割当てる。そして、第１の仮想マシンは、確保部と、測定部と、判定部とを有する。確保部は、物理メモリ内に計測用領域を確保し、計測用領域の第１の領域に対して乱数列を第１のデータとして書き込むとともに、計測用領域の第２の領域に対して固定文字列を第２のデータとして書き込む。測定部は、計測用領域から第１のデータ及び第２のデータの読出しを所定の間隔で行って、第１のデータの読出し性能及び第２のデータの読出し性能を測定する。判定部は、第１のデータの読出し性能及び第２のデータの読出し性能に基づいて、同一のページが物理メモリにおいて共有されているか否かを判定する。
【発明の効果】
【００１０】
開示する情報処理装置の一つの態様によれば、内容が同一である複数のページが一つにまとめられているか否かを判定することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、第１の実施形態に係るコンピュータシステムの全体構成例を示す図である。
【図２】図２は、第１の実施形態に係る物理メモリ管理ＤＢが記憶する情報の一例を示す図である。
【図３】図３は、第１の実施形態に係るページアウト管理ＤＢが記憶する情報の一例を示す図である。
【図４】図４は、第１の実施形態に係る参考値記憶部が記憶するデータ構造の一例を示す図である。
【図５】図５は、第１の実施形態に係るＶＭ実行部による処理動作を説明するための図である。
【図６】図６は、第１の実施形態に係るＶＭ実行部による検出処理の手順を示すフローチャートである。
【図７】図７は、第２の実施形態に係るＶＭ実行部による処理動作を説明するための図である。
【図８】図８は、コンピュータシステムによる処理を実行するための検出プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。
【発明を実施するための形態】
【００１２】
以下に、開示する情報処理装置及び検出方法の実施形態について、図面に基づいて詳細に説明する。なお、本実施形態により開示する発明が限定されるものではない。各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【００１３】
（第１の実施形態）
図１は、第１の実施形態に係るコンピュータシステムの全体構成例を示す図である。図１に示すように、コンピュータシステムは、クライアント端末１ａと、クライアント端末１ｂと、情報処理装置１０とを有する。図１に示す例では、コンピュータシステムは、クライアント端末１ａと、クライアント端末１ｂと、情報処理装置１０とは、それぞれ、任意のネットワーク２を介して接続される。また、クライアント端末の数は、図示の数に限られるものではない。
【００１４】
クライアント端末１ａは、情報処理装置１０により提供されるサービスを利用する。例えば、クライアント端末１ａは、情報処理装置１０により提供されるリソースを利用する。ここで、情報処理装置１０により提供されるリソースとは、例えば、仮想マシン（以下「ＶＭ（Virtual  Machine）」と呼ぶ）である。クライアント端末１ａは、例えば、ＰＣ（Personal  Computer）やサーバ装置等の情報処理装置である。クライアント端末１ｂは、クライアント端末１ａと同様に機能する端末である。このため、クライアント端末１ｂについての詳細な説明は省略する。また、以下の説明では、クライアント端末１ａ及び１ｂを区別しない場合には、クライアント端末１と呼ぶ。なお、第１の実施形態では、クライアント端末１の利用者が、ＩａａＳ（Infrastructure  as  a  Service）事業者と契約したサービスの利用者である場合を説明する。
【００１５】
情報処理装置１０は、例えば、ＰＣやサーバ装置等であり、クライアント端末１からのサービス要求をトリガとして動作し、ネットワーク２を介してＶＭ等の特定のサービスをクライアント端末１に提供する。例えば、情報処理装置１０は、複数の仮想マシンを実現し、各仮想マシンのメモリに物理メモリの一部を割当てる。なお、以下の説明では、情報処理装置１０が有する物理メモリの全容量のことを「物理リソース」とも言う。
【００１６】
また、情報処理装置１０において、第１のＶＭは、物理メモリ内に計測用領域を確保し、計測用領域の第１の領域に対して乱数列を第１のデータとして書き込むとともに、計測用領域の第２の領域に対して固定文字列を第２のデータとして書き込む。また、第１のＶＭは、計測用領域から第１のデータ及び第２のデータの読出しを所定の間隔で行って、第１のデータの読出し性能及び第２のデータの読出し性能を測定する。そして、第１のＶＭは、第１のデータの読出し性能及び第２のデータの読出し性能に基づいて、同一のページが物理メモリにおいて共有されているか否かを判定する。
【００１７】
引き続き図１を用いて、情報処理装置１０の詳細について説明する。図１に示すように、情報処理装置１０は、通信制御部１１と、スワップ領域１２と、記憶部１３と、制御部１４と、仮想領域１５とを有する。
【００１８】
通信制御部１１は、クライアント端末１との通信を制御する処理部である。例えば、通信制御部１１は、クライアント端末１から実行要求や操作情報を受信してＶＭ管理部１４ａに出力する。また、通信制御部１１は、ＶＭ管理部１４ａによって受信されたＶＭの画面情報等をクライアント端末１へ送信する。この通信制御部１１は、例えばネットワークインタフェースカードである。
【００１９】
スワップ領域１２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）等の記憶媒体により実現される領域である。このスワップ領域１２には、物理リソースの不足時に、利用頻度の低いメモリ領域のデータが退避（「ページアウト」とも言う）させられる。
【００２０】
記憶部１３は、プロセッサが実行するプログラムやデータを記憶するとともに、物理メモリ管理ＤＢ（Data  Base）１３ａとページアウト管理ＤＢ１３ｂとを有する記憶部である。
【００２１】
物理メモリ管理ＤＢ１３ａは、「物理メモリアドレス」と「マシンアドレス」とを対応付けて記憶するデータベースである。図２は、第１の実施形態に係る物理メモリ管理ＤＢ１３ａが記憶する情報の一例を示す図である。図２に示すように、物理メモリ管理ＤＢ１３ａは、「物理メモリアドレス」と、「マシンアドレス」とを対応付けた情報を記憶する。
【００２２】
ここで、物理メモリ管理ＤＢ１３ａが記憶する「物理メモリアドレス」は、情報処理装置１０の物理メモリにおけるアドレスを示す。例えば、「物理メモリアドレス」には、「０ｘ４００〜０ｘ２４０００」、「０ｘ２４０００〜０ｘ４４０００」等のデータ値が格納される。また、「マシンアドレス」は、各ＶＭに割当てられたメモリ（仮想メモリとも言う）のアドレスを示す。言い換えると、「マシンアドレス」は、ＶＭから見える物理メモリのアドレスを示す。例えば、「マシンアドレス」には、「０ｘ０００〜０ｘ２００００」、「０ｘ２００００〜０ｘ４００００」等のデータ値が格納される。
【００２３】
一例をあげると、図２に示す物理メモリ管理ＤＢ１３ａは、「物理メモリアドレス」における「０ｘ４００〜０ｘ２４０００」が「マシンアドレス」の「０ｘ０００〜０ｘ２００００」に対応することを示す。
【００２４】
ページアウト管理ＤＢ１３ｂは、「マシンアドレス」と「スワップ領域アドレス」とを対応付けて記憶するデータベースである。図３は、第１の実施形態に係るページアウト管理ＤＢ１３ｂが記憶する情報の一例を示す図である。図３に示すように、ページアウト管理ＤＢ１３ｂは、「マシンアドレス」と、「スワップ領域アドレス」とを対応付けて記憶する。
【００２５】
ここで、ページアウト管理ＤＢ１３ｂが記憶する「スワップ領域アドレス」は、スワップ領域１２におけるアドレスを示す。例えば、「スワップ領域アドレス」には、「０ｘ８００〜０ｘ１０００」、「０ｘ１０００〜０ｘ１２００」等のデータ値が格納される。なお、ページアウト管理ＤＢ１３ｂが記憶する「マシンアドレス」は、物理メモリ管理ＤＢ１３ａが記憶する「マシンアドレス」と同様である。
【００２６】
一例をあげると、図３に示すページアウト管理ＤＢ１３ｂは、「マシンアドレス」における「０ｘ１０００〜０ｘ１２００」が「スワップ領域アドレス」の「０ｘ８００〜０ｘ１０００」に対応することを示す。
【００２７】
制御部１４は、ＶＭ管理部１４ａと、物理メモリ制御部１４ｂと、ページング制御部１４ｃと、ＫＳＭ制御部１４ｄとを有する。
【００２８】
ＶＭ管理部１４ａは、仮想領域１５内で、互いに異なる動作環境が構築された複数のＶＭ実行部１６、ＶＭ実行部１７及びＶＭ実行部１８を動作させる処理部である。また、ＶＭ管理部１４ａは、各ＶＭで稼動するＯＳ（Operating  System）に、仮想プロセッサと仮想メモリとを割り当てる。この結果、各ＶＭは、独立して各種処理を実行することができる。なお、仮想メモリは、情報処理装置１０の物理メモリにおける所定領域を、ＶＭのＯＳが使用するメモリとして割り当てることで実現された仮想的なメモリである。仮想プロセッサは、情報処理装置１０のプロセッサにおける所定処理能力をＶＭのＯＳが使用するプロセッサとして割り当てることで実現された仮想的なプロセッサである。
【００２９】
物理メモリ制御部１４ｂは、各ＶＭからの要求に応じて、物理メモリへのデータの書込み及び物理メモリからのデータの読出しを制御する。例えば、物理メモリ制御部１４ｂは、後述するＶＭ実行部１６（ＶＭ実行部１７、ＶＭ実行部１８）から物理メモリ内に所定の文字列を書き込む指示を受付けた場合、指定されたアドレスの物理メモリにデータを書込む。また、物理メモリ制御部１４ｂは、物理メモリからデータを読出す指示を、ＶＭ実行部１６（ＶＭ実行部１７、ＶＭ実行部１８）から受付けた場合、指定されたアドレスの物理メモリからデータを読出す。
【００３０】
また、例えば、物理メモリ制御部１４ｂは、後述する確保部１８ｂから物理メモリ内に所定の文字列を書き込む指示を受付けた場合、指定されたアドレスの物理メモリにデータを書込む。また、物理メモリ制御部１４ｂは、物理メモリからデータを読出す指示を後述する測定部１８ｃから受付けた場合、指定されたアドレスの物理メモリからデータを読出す。
【００３１】
また、物理メモリ制御部１４ｂは、物理メモリへのデータの書込みを要求された際に、物理メモリに空き領域がない場合、後述するページング制御部１４ｃに、ページアウト処理を依頼する。また、物理メモリ制御部１４ｂは、物理メモリからのデータの読出しを要求された際に、要求されたデータがページアウトされていた場合、後述するページング制御部１４ｃに、ページイン処理を依頼する。
【００３２】
ページング制御部１４ｃは、物理メモリ制御部１４ｂからページアウト処理を依頼された場合、いずれかのデータをスワップ領域１２にページアウトする。例えば、ページング制御部１４ｃは、利用頻度の低いメモリ領域のデータをスワップ領域に退避させる。また、ページング制御部１４ｃは、物理メモリ制御部１４ｂからページイン処理を依頼された場合、要求されたデータをスワップ領域１２から読出し、物理メモリの空き領域にページインする。
【００３３】
ＫＳＭ制御部１４ｄは、ＫＳＭが有効化されている場合、複数のメモリ領域に格納された内容が同一であるページを一つにまとめて物理メモリに保存する。例えば、ＫＳＭ制御部１４ｄは、物理メモリを走査して、同一の内容のページが存在するか否かを判定する。そして、ＫＳＭ制御部１４ｄは、同一の内容のページが存在すると判定した場合、同一の内容のページを一つにまとめる。
【００３４】
また、ＫＳＭ制御部１４ｄは、まとめたページが更新された場合、更新されたページに新たな物理メモリを割当てる。なお、制御部１４は、ＫＳＭ制御部１４ｄを有さずに構成されてもよい。かかる場合、情報処理装置１０において、ＫＳＭは有効化されない。
【００３５】
仮想領域１５は、ＶＭ管理部１４ａによって管理される領域であり、任意の数のＶＭを動作させることができる。例えば、仮想領域１５では、ＶＭ管理部１４ａの制御の下に、互いに異なる動作環境が構築された複数のＶＭ実行部１６、ＶＭ実行部１７及びＶＭ実行部１８が動作する。ＶＭ実行部１６は、仮想プロセッサや仮想メモリが割当てられた仮想マシンである。ここで、ＶＭ実行部１６に割当てられた仮想メモリの領域をマシンアドレス「０ｘ０００〜０ｘ２００００」とする。同様に、ＶＭ実行部１７は、仮想プロセッサや仮想メモリが割当てられた仮想マシンである。ここで、ＶＭ実行部１７に割当てられた仮想メモリの領域をマシンアドレス「０ｘ２００００〜０ｘ４００００」とする。
【００３６】
ＶＭ実行部１８は、仮想プロセッサや仮想メモリが割当てられた仮想マシンである。ＶＭ実行部１８には、ＶＭ実行部１６及びＶＭ実行部１７が有する機能に加えて、以下の機能を有する。すなわち、ＶＭ実行部１８は、参考値記憶部１８ａと、確保部１８ｂと、測定部１８ｃと、判定部１８ｄとを有する。なお、ＶＭ実行部１８のことを「第１の仮想マシン」とも言う。なお、ＶＭ実行部１８に割当てられた仮想メモリの領域をマシンアドレス「０ｘ４００００〜０ｘ６００００」とする。
【００３７】
参考値記憶部１８ａは、ＫＳＭが有効化されているか否かを判定する所定の参考値を記憶する。言い換えると、参考値記憶部１８ａは、内容が同一である複数のページが一つにまとめられているか否かを判定する所定の参考値を記憶する。図４は、第１の実施形態に係る参考値記憶部１８ａが記憶するデータ構造の一例を示す図である。図４に示すように、参考値記憶部１８ａは、「マシンアドレス」と、「文字列」と、「参考値」とを対応付けた情報を記憶する。
【００３８】
ここで、参考値記憶部１８ａが記憶する「マシンアドレス」は、物理メモリ管理ＤＢ１３ａが記憶する「マシンアドレス」と同様である。また、参考値記憶部１８ａが記憶する「文字列」は、第１のデータ或いは第２のデータとして書き込まれた文字列を示す。例えば、「文字列」には、第１のデータとして書き込まれた乱数列「ａｇｊｅｄｏｉｓ・・・」、第２のデータとして書き込まれた固定文字列「０００・・・００」などの文字列が格納される。なお、ここで言う「乱数列」とは、暗号化手法により決定されたランダムな文字列であり、ＫＳＭが有効化されている場合に一つにまとめられにくい文字列を示し、「固定文字列」とは、他のＶＭ実行部１６及び１７やＶＭ実行部１８が利用するアプリケーションやデータにおいて出現する可能性の高い文字列であり、ＫＳＭが有効化されている場合に一つにまとめられやすい文字列を示す。
【００３９】
また、参考値記憶部１８ａが記憶する「参考値」は、ＫＳＭが有効化されているか否かを判定する所定の参考値を示す。この参考値は、第１のデータが書き込まれた直後に測定された第１のデータの読出し性能及び第２のデータが書き込まれた直後に測定された第２のデータの読出し性能に基づいて設定される。例えば、「参考値」には、「５．０（秒），８（ＭＢ／ｓ）」などの時間を示すデータ値と速度を示すデータ値とが格納される。この参考値は、測定部１８ｃによって設定される。なお、参考値を設定する処理の詳細については、後述する。また、参考値記憶部１８ａの「参考値」には、時間を示すデータ値又は速度を示すデータ値のいずれか一方が記憶されるようにしてもよい。
【００４０】
一例をあげると、図４に示す参考値記憶部１８ａは、マシンアドレスが「０ｘ４００００〜０ｘ４０２００」であるメモリ領域に文字列「ａｇｊｅｄｏｉｓ・・・」が書き込まれており、読み出し性能の参考値が「５．０（秒），８（ＭＢ／ｓ）」であることを示す。また、図４に示す参考値記憶部１８ａは、マシンアドレスが「０ｘ４０２００〜０ｘ４０４００」であるメモリ領域に文字列「０００・・・００」が書き込まれており、読み出し性能の参考値が「５．５（秒），７．５（ＭＢ／ｓ）」であることを示す。
【００４１】
確保部１８ｂは、物理メモリ内に計測用領域を確保し、計測用領域の第１の領域に対して乱数列を第１のデータとして書き込むとともに、計測用領域の第２の領域に対して固定文字列を第２のデータとして書き込む。例えば、確保部１８ｂは、検出処理の開始の指示を利用者から受付けた場合に、計測用領域として、マシンアドレス「０ｘ４００００〜０ｘ４０２００」及び「０ｘ４０２００〜０ｘ４０４００」を確保する。そして、確保部１８ｂは、マシンアドレス「０ｘ４００００〜０ｘ４０２００」に乱数列「ａｇｊｅｄｏｉｓ・・・」を第１のデータとして書き込み、マシンアドレス「０ｘ４０２００〜０ｘ４０４００」に固定文字列「０００・・・００」を第２のデータとして書き込む。
【００４２】
より具体的には、確保部１８ｂは、２ＧＢを計測用領域として確保した場合、２ＧＢを２等分し、一方の１ＧＢを第１のデータの書込み領域、他方の１ＧＢを第２のデータの書込み領域に割当てる。ここで、１ページは４ＫＢであり、４ＫＢを一つの単位としてメモリ領域に書き込まれる。例えば、確保部１８ｂは、１ＧＢのメモリ領域に、同一のページが繰り返し出現しないように暗号化手法を用いて決定された乱数列を第１のデータとして書き込む。また、確保部１８ｂは、１ＧＢのメモリ領域に、第２のデータとして同一のページを繰り返し書き込む。確保部１８ｂは、例えば、ページ内の文字列の全てが「０」で構成された固定文字列を第２のデータとして書き込む。
【００４３】
測定部１８ｃは、計測用領域から第１のデータ及び第２のデータの読出しを所定の間隔で行って、第１のデータの読出し性能及び第２のデータの読出し性能を測定する。例えば、測定部１８ｃは、読出し性能として、データの読出し要求を発行してから、要求したデータが読み出されるまでの時間と読出し転送速度とを測定する。ここで、測定部１８ｃは、待機時間が経過後に定期的に、第１のデータの読出し性能及び第２のデータの読出し性能を測定する。
【００４４】
具体的には、測定部１８ｃは、計測用領域として２ＧＢが確保され、第１のデータが書き込まれた１ＧＢのメモリ領域と、第２のデータが書き込まれた１ＧＢのメモリ領域をそれぞれ読出して、読出し性能を測定する。測定部１８ｃは、測定した第１のデータの読出し性能及び第２のデータの読出し性能を、判定部１８ｄに受け渡す。
【００４５】
また、測定部１８ｃは、確保部１８ｂによって第１のデータ及び第２のデータが書き込まれたときに、第１のデータの読出し性能及び第２のデータの読出し性能を測定する。そして、測定部１８ｃは、測定した第１のデータの読出し性能に基づいて第１の参考値を決定するとともに、第２のデータの読出し性能に基づいて第２の参考値を決定する。続いて、測定部１８ｃは、第１の参考値及び第２の参考値を参考値記憶部１８ａに設定する。
【００４６】
例えば、測定部１８ｃは、第１のデータの読出し性能及び第２のデータの読出し性能を測定する。そして、測定部１８ｃは、各測定値に測定誤差を加味して第１の参考値と第２の参考値とを決定する。ここで、測定誤差として１０％を設定し、測定値より１０％低下した値を参考値に決定する。測定部１８ｃは、決定した参考値を、参考値記憶部１８ａが記憶する第１のデータのマシンアドレス及び文字列に対応付けて記憶させる。なお、測定部１８ｃは、読出し性能として、データの読出し要求を発行してから、要求したデータが読み出されるまでの時間及び読出し転送速度のいずれか一方を測定するようにしてもよい。かかる場合、測定部１８ｃは、時間を示すデータ値又は速度を示すデータ値のうち測定したデータ値に基づいて決定した参考値を参考値記憶部１８ａに記憶させる。
【００４７】
判定部１８ｄは、第１のデータの読出し性能及び第２のデータの読出し性能に基づいて、同一のページが前記物理メモリにおいて共有されているか否かを判定する。例えば、判定部１８ｄは、第１のデータの読出し性能が所定の参考値未満であり、かつ、第２のデータの読出し性能が所定の参考値以上である場合に、同一のページが物理メモリにおいて共有されていると判定する。
【００４８】
具体的には、判定部１８ｄは、第１のデータの読出し性能及び第２のデータの読出し性能を測定部１８ｃから取得する。また、判定部１８ｄは、参考値記憶部１８ａが記憶する「参考値」から、第１の参考値及び第２の参考値を読み出す。そして、判定部１８ｄは、第１のデータの読出し性能及び第２のデータの読出し性能それぞれと第１の参考値及び第２の参考値それぞれとを比較する。
【００４９】
ここで、判定部１８ｄは、第２のデータの読出し性能が第２の参考値以上であり、第１のデータの読出し性能が第１の参考値未満である場合、第２のデータがページアウトされておらず、第１のデータがページアウトされていると推測する。言い換えると、読出し性能の測定に際して、第１のデータ及び第２のデータに同じ頻度でアクセスしているにも関わらず、固定文字列である第２のデータがページアウトされていないので、判定部１８ｄは、この第２のデータが物理メモリ上で共有されており、他のＶＭ実行部１６及び１７によってアクセスされていたと推測する。このため、かかる場合、判定部１８ｄは、同一のページが物理メモリにおいて共有されていると判定する。すなわち、判定部１８ｄは、ＫＳＭが有効化されていると判定する。なお、第２のデータの読出し性能が第２の参考値以上であり、第１のデータの読出し性能が第１の参考値未満である場合、偶然この第１のデータがページアウトの対象として選択される場合もある。かかる場合の判定部１８ｄの処理については、後述する。
【００５０】
また、判定部１８ｄは、第１のデータの読出し性能が第１の参考値以上であり、第２のデータの読出し性能が第２の参考値未満である場合、第２のデータがページアウトされており、第１のデータがページアウトされていないと推測する。言い換えると、読出し性能の測定に際して、第１のデータ及び第２のデータに同じ頻度でアクセスしているにも関わらず、第１のデータがページアウトされていないのに第２のデータがページアウトされているので、判定部１８ｄは、偶然この第２のデータがページアウトの対象として選択されたと推測する。このため、かかる場合、判定部１８ｄは、現時点でＫＳＭが有効化されているとは判定できないと判定する。なお、かかる場合、この第２のデータが物理メモリ上で共有されておらず、他のＶＭ実行部１６及び１７によってアクセスされていた可能性が低いと考えられる。
【００５１】
また、判定部１８ｄは、第１のデータの読出し性能が第１の参考値未満であり、第２のデータの読出し性能が第２の参考値未満である場合、第１のデータも第２のデータもページアウトされていると推測する。かかる場合、判定部１８ｄは、現時点でＫＳＭが有効化されているとは判定できないと判定する。なお、かかる場合、仮にＫＳＭが有効化されていて第２のデータが共有されていても、この第２のデータがページアウトすることから、物理メモリが逼迫している可能性が考えられる。
【００５２】
また、判定部１８ｄは、第１のデータの読出し性能が第１の参考値以上であり、第２のデータの読出し性能が第２の参考値以上である場合、第１のデータも第２のデータもページアウトされておらず、現時点でＫＳＭが有効化されているとは判定できないと判定する。
【００５３】
図５は、第１の実施形態に係るＶＭ実行部１８による処理動作を説明するための図である。図５の横軸はメモリ空間を示し、縦軸は時間を示す。なお、図５では、測定部１８ｃは、待機時間を一定の間隔であるとし、この待機時間が経過後に読み出し性能として読出し速度を測定するものとする。
【００５４】
図５に示すように、ＶＭ実行部１８において、確保部１８ｂは、領域Ａに固定文字列を書き込む（ステップＳ１）。続いて、測定部１８ｃは、領域Ａに書き込まれた固定文字列を読出し、読出し速度を測定する（ステップＳ２）。また、確保部１８ｂは、領域Ｂに乱数列を書き込む（ステップＳ３）。続いて、測定部１８ｃは、領域Ｂに書き込まれた乱数列を読出し、読出し速度を測定する（ステップＳ４）。そして、測定部１８ｃは、アクセスを行わない待機時間にはいる（ステップＳ５）。なお、ここでの待機時間を１分とする。
【００５５】
測定部１８ｃは、待機時間が経過後、領域Ａに書き込まれた固定文字列を読出し、読出し速度を測定し（ステップＳ６）、領域Ｂに書き込まれた乱数列を読出し、読出し速度を測定する（ステップＳ７）。そして、判定部１８ｄは、測定部１８ｃが測定した読出し速度に基づいて、ＫＳＭが有効化されているか否かを判定する。ここで、判定部１８ｄによりＫＳＭが有効化されていないと判定された場合、測定部１８ｃは、アクセスを行わない待機時間にはいる（ステップＳ８）。なお、ここでの待機時間も同様に１分である。
【００５６】
測定部１８ｃは、待機時間が経過後、領域Ａに書き込まれた固定文字列を読出し、読出し速度を測定し（ステップＳ９）、領域Ｂに書き込まれた乱数列を読出し、読出し速度を測定する（ステップＳ１０）。そして、判定部１８ｄは、測定部１８ｃが測定した読出し速度に基づいて、ＫＳＭが有効化されているか否かを判定する。ここで、判定部１８ｄによりＫＳＭが有効化されていないと判定された場合、測定部１８ｃは、アクセスを行わない待機時間にはいる。かかる場合、待機時間は同様に１分である。このように、測定部１８ｃは、第１のデータの読出し性能及び第２のデータの読出し性能を測定後の待機時間を、一定の間隔（１分）とする。
【００５７】
次に、図６を用いて、ＶＭ実行部１８による検出処理の手順を説明する。図６は、第１の実施形態に係るＶＭ実行部１８による検出処理の手順を示すフローチャートである。なお、ＶＭ実行部１８は、例えば、ユーザから検出処理の開始の指示を受付けたことを契機に処理を実行する。
【００５８】
図６に示すように、確保部１８ｂは、物理メモリ内に複数の計測用領域を確保する（ステップＳ１０１）。そして、確保部１８ｂは、確保した計測用領域の一方に固定文字列を書き込み、他方に乱数列を書き込む（ステップＳ１０２）。
【００５９】
続いて、測定部１８ｃは、各領域に対して読出しを行い、読出し遅延、読出し転送速度を測定する（ステップＳ１０３）。また、測定部１８ｃは、測定結果に基づいて参考値を設定する（ステップＳ１０４）。
【００６０】
そして測定部１８ｃは、待機時間に入り（ステップＳ１０５）、所定の時間が経過したか否かを判定する（ステップＳ１０６）。ここで、測定部１８ｃは、所定の時間が経過したと判定した場合（ステップＳ１０６、Ｙｅｓ）、各領域に対して読出しを行い、読出し遅延、読出し転送速度を測定する（ステップＳ１０７）。なお、測定部１８ｃは、所定の時間が経過しなかったと判定した場合（ステップＳ１０６、Ｎｏ）、ステップＳ１０６の判定処理を繰り返す。
【００６１】
判定部１８ｄは、第１のデータの読出し性能が第１の参考値未満であり、かつ、第２のデータの読出し性能が第２の参考値以上であるか否かを判定する。言い換えると、判定部１８ｄは、第１のデータの読出し性能だけが参考値未満であるか否かを判定する（ステップＳ１０８）。ここで、判定部１８ｄは、第１のデータの読出し性能だけが参考値未満ではないと判定した場合（ステップＳ１０８、Ｎｏ）、ＫＳＭが有効化されているか否かは現時点では不明であると判定する（ステップＳ１０９）。この場合、計測用のＶＭ実行部１８では、測定部１８ｃがステップＳ１０５に移行して、待機時間に入る。
【００６２】
一方、判定部１８ｄは、第１のデータの読出し性能だけが参考値未満であると判定した場合（ステップＳ１０８、Ｙｅｓ）、ＫＳＭが有効化されていると判定する（ステップＳ１１０）。ＶＭ実行部１８は、ステップＳ１１０の後、検出処理を終了する。なお、ＶＭ実行部１８は、ＫＳＭが有効化されていると判定した場合、利用者に対してＫＳＭが有効化されている旨を通知するようにしてもよい。
【００６３】
また、仮にＫＳＭが有効化されていない場合でも、第１のデータがページアウトされ、第２のデータがページアウトされない場合が偶然的に生じる場合がある。かかる場合、判定部１８ｄは、第１のデータの読出し性能だけが参考値未満であると判定する。すなわち、判定部１８ｄは、誤判定を行う場合がある。このようなことから、ＶＭ実行部１８は、第１のデータの読出し性能だけが参考値未満であると判定部１８ｄによって判定された場合（ステップＳ１０８、Ｙｅｓ）、検出処理を終了せずに、ステップＳ１０５に移行して検出処理を繰り返すようにしてもよい。かかる場合、ＶＭ実行部１８は、例えば、第１のデータの読出し性能だけが参考値未満であると判定された後に、所定の回数検出処理を繰り返し実行し、第１のデータの読出し性能だけが参考値未満であると連続して判定された場合に、ＫＳＭが有効化されていると判定する。これにより、ＶＭ実行部１８は、偶然生じる誤判定を防止し、より正確に、ＫＳＭが有効化されているか否かを判定することができる。
【００６４】
上述したように、第１の実施形態に係る情報処理装置１０において、ＶＭ実行部１８は、物理メモリ内に計測用領域を確保し、計測用領域の第１の領域に対して乱数列を第１のデータとして書き込むとともに、計測用領域の第２の領域に対して固定文字列を第２のデータとして書き込む。また、ＶＭ実行部１８は、計測用領域から第１のデータ及び第２のデータの読出しを所定の間隔で行って、第１のデータの読出し性能及び第２のデータの読出し性能を測定する。そして、ＶＭ実行部１８は、第１のデータの読出し性能及び第２のデータの読出し性能に基づいて、同一のページが前記物理メモリにおいて共有されているか否かを判定する。例えば、ＶＭ実行部１８は、第１のデータの読出し性能が第１の参考値未満であり、かつ、第２のデータの読出し性能が第２の参考値以上である場合に、同一のページが物理メモリにおいて共有されていると判定する。これにより、第１の実施形態に係る情報処理装置１０は、内容が同一である複数のページが一つにまとめられているか否かを判定することができる。言い換えると、第１の実施形態に係る情報処理装置１０は、ＫＳＭが有効化されているか否かを判定することができる。
【００６５】
また、ＫＳＭが有効化されている場合、ＶＭが起動後、各ＶＭがさまざまな処理を実行することで、内容が同一であるページが変更され、変更されたページに対して新しいメモリ領域が割り当てられる。すなわち、ＫＳＭが有効化されている場合、ＶＭの起動時間に従って、共有されるメモリ領域が減少する場合がある。ここで、従来の技術では、ホストＯＳやハイパーバイザ等のサービス提供システムの管理主体が、仮想マシンの利用者と異なる場合、仮想マシンの利用者は、ＫＳＭが有効になっているか否かを識別することができない。かかる場合、仮想マシンの利用者は、空きメモリが逼迫してリソースが不足しても、ＶＭの性能低下を予測することができなかった。
【００６６】
具体的には、リソースが不足した状態時では、ＣＰＵリソースは、複数のＶＭ間で取り合いになり、通常時よりもＶＭの処理性能が低下する。さらに、深刻なリソースの不足時には、ＣＰＵが時分割で共有されているため、頻繁に発生する切り替えのオーバーヘッドにより、ＶＭの処理性能が更に低下する。また、リソースが不足した状態において、ＣＰＵの時分割共有に対応したＶＭの切り替え頻度が上がるに従って、スワップ領域と物理メモリとの間のコピー頻度が上がる。また、スワップ領域は、データの読出し及びデータの書込みが物理メモリよりも低速であるので、ＶＭから見たメモリアクセス時間は、ＶＭの切り替え頻度に伴って長くなる。すなわち、ＶＭから見たメモリアクセス速度が大幅に低下する。
【００６７】
一方、第１の実施形態に係る情報処理装置１０では、ＫＳＭが有効化されているか否かを判定することが可能である。これにより、第１のＶＭの利用者は、将来メモリ不足になる可能性を予測することが可能となる。さらに、第１のＶＭの利用者は、リソースの不足時には、パフォーマンスが低下した状態でＶＭを使用し続けることを回避することができる。
【００６８】
（第２の実施形態）
さて、これまで本発明の実施形態について説明したが、本発明は上述した実施形態以外にも、その他の実施形態にて実施されてもよい。そこで、以下では、その他の実施形態を示す。
【００６９】
（システム構成）
また、第１の実施形態では、ＩａａＳ事業者と契約したサービスの利用者である場合を説明したが、これに限定されるものではない。例えば、ＩａａＳ事業者と契約する前に、試験的にサーバ装置を利用する場合にも利用可能である。かかる場合、利用者は、例えば、複数のＩａａＳ事業者が提供するサービスについてのＫＳＭが有効化されているか否かを判定することで、最適なＩａａＳ事業者を選定することができる。
【００７０】
また、確保部１８ｂは、例えば、２ＧＢを計測用領域として確保した場合、２ＧＢを２等分し、一方の１ＧＢを第１のデータの書込み領域、他方の１ＧＢを第２のデータの書込み領域に割当てるものとして説明したがこれに限定されるものではない。例えば、確保部１８ｂは、２ＧＢを計測用領域として確保した場合、２ＧＢを４等分してもよい。かかる場合、確保部１８ｂは、２つの０．５ＧＢのメモリ領域各々に異なる第１のデータ（第１のデータＡ及び第１のデータＢとする）を書込み、２つの０．５ＧＢのメモリ領域各々に異なる第２のデータ（第２のデータＡ及び第２のデータＢとする）を書き込む。そして、測定部１８ｃは、読出し性能を測定するごとに、４つの領域からデータを読出してもよく、或いは、２つの領域からデータを読出してもよい。２つの領域からデータを読み出す場合、測定部１８ｃは、例えば、第１のデータＡ及び第２のデータＡの読み出しと、第１のデータＢ及び第２のデータＢの読み出しとを交互に実行する。
【００７１】
また、第１の実施形態において、測定部１８ｃは、待機時間を一定の間隔であるとし、この待機時間が経過後に読み出し性能を測定するものとして説明したがこれに限定されるものではない。例えば、測定部１８ｃは、第１のデータの読出し性能及び第２のデータの読出し性能を測定後の待機時間を、読出し性能の測定回数に応じて指数関数的に長くするようにしてもよい。言い換えると、測定部１８ｃは、所定の間隔を、読出し性能の測定回数に応じて指数関数的に長くする。図７は、第２の実施形態に係るＶＭ実行部１８による処理動作を説明するための図である。図７の横軸はメモリ空間を示し、縦軸は時間を示す。
【００７２】
図７に示すように、ＶＭ実行部１８において、確保部１８ｂは、領域Ａに固定文字列を書き込む（ステップＳ３１）。続いて、測定部１８ｃは、領域Ａに書き込まれた固定文字列を読出し、読出し速度を測定する（ステップＳ３２）。また、確保部１８ｂは、領域Ｂに乱数列を書き込む（ステップＳ３３）。続いて、測定部１８ｃは、領域Ｂに書き込まれた乱数列を読出し、読出し速度を測定する（ステップＳ３４）。そして、測定部１８ｃは、アクセスを行わない待機時間にはいる（ステップＳ３５）。なお、ここでの待機時間を１分（＝２０分）とする。
【００７３】
測定部１８ｃは、待機時間が経過後、領域Ａに書き込まれた固定文字列を読出し、読出し速度を測定し（ステップＳ３６）、領域Ｂに書き込まれた乱数列を読出し、読出し速度を測定する（ステップＳ３７）。そして、判定部１８ｄは、測定部１８ｃが測定した読出し速度に基づいて、ＫＳＭが有効化されているか否かを判定する。ここで、判定部１８ｄによりＫＳＭが有効化されていないと判定された場合、測定部１８ｃは、アクセスを行わない待機時間にはいる（ステップＳ３８）。なお、ここでの待機時間を２分（＝２１分）とする。
【００７４】
測定部１８ｃは、待機時間が経過後、領域Ａに書き込まれた固定文字列を読出し、読出し速度を測定し（ステップＳ３９）、領域Ｂに書き込まれた乱数列を読出し、読出し速度を測定する（ステップＳ４０）。そして、判定部１８ｄは、測定部１８ｃが測定した読出し速度に基づいて、ＫＳＭが有効化されているか否かを判定する。ここで、判定部１８ｄによりＫＳＭが有効化されていないと判定された場合、測定部１８ｃは、アクセスを行わない待機時間にはいる（ステップＳ４１）。なお、ここでの待機時間を４分（＝２２分）とする。
【００７５】
測定部１８ｃは、待機時間が経過後、領域Ａに書き込まれた固定文字列を読出し、読出し速度を測定し（ステップＳ４２）、領域Ｂに書き込まれた乱数列を読出し、読出し速度を測定する（ステップＳ４３）。そして、判定部１８ｄは、測定部１８ｃが測定した読出し速度に基づいて、ＫＳＭが有効化されているか否かを判定する。ここで、判定部１８ｄによりＫＳＭが有効化されていないと判定された場合、測定部１８ｃは、アクセスを行わない待機時間にはいる。かかる場合、待機時間は８分（＝２３分）となる。このように、測定部１８ｃは、第１のデータの読出し性能及び第２のデータの読出し性能を測定後の待機時間を、読出し性能の測定回数を重ねるに応じて指数関数的に長くする。このように図７に示す例では、参考値を測定後からカウントした測定回数をｎ回とした場合、待機時間は、２ｎ−１分となる。
【００７６】
また、測定部１８ｃが、読出し性能の測定回数を重ねるに応じて指数関数的に待機時間を長くすることにより、読出し性能を測定することによる第１のデータ及び第２のデータに対するアクセス頻度を低下させることができる。これにより、第１のデータのページアウトが生じる確率が高くなり、より正確に、ＫＳＭが有効化されているか否かを判定することができる。
【００７７】
また、判定部１８ｄは、読出し転送速度が測定されている場合、この読出し転送速度を用いて、ＫＳＭが有効化されているか否かを判定してもよい。例えば、ＫＳＭが有効化されていない場合、１ＧＢのメモリ領域からの読出し転送にかかる時間が例えば５（秒）であるとする。ここで、４ＫＢ単位で同じページを繰り返すように１ＧＢのメモリ領域に第２のデータが書き込まれていた場合、１ページ分のデータを転送するだけで済むので読出し転送にかかる時間が、例えば１０（ミリ秒）と有意に速くなる。このため、判定部１８ｄは、第２のデータの読出し転送速度が、第２の参考値を有意に上回る場合、ＫＳＭが有効化されていると判定する。また、確保部１８ｂが計測用領域を等分して第１のデータと第２のデータとを書き込むので、第１の参考値と第２の参考値とは、概ね近似した値となる。このため、判定部１８ｄは、第２のデータの読出し転送速度が、第１のデータの読出し転送速度を有意に上回る場合にも、ＫＳＭが有効化されていると判定することが可能である。
【００７８】
なお、測定部１８ｃは、第１の参考値と第２の参考値とが概ね近似した値となる場合、測定した第１のデータの読出し性能及び第２のデータの読出し性能の平均値に基づいて第１の参考値及び第２の参考値を決定するようにしてもよい。かかる場合、第１の参考値と第２の参考値とが同一となる。
【００７９】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については（例えば、図１〜図７）、特記する場合を除いて任意に変更することができる。
【００８０】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【００８１】
（プログラム）
図８は、コンピュータシステムによる処理を実行するための検出プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。図８に例示するように、コンピュータ３０００は、例えば、メモリ３０１０と、ＣＰＵ３０２０と、ネットワークインタフェース３０７０とを有する。コンピュータ３０００の各部はバス３１００によって接続される。
【００８２】
メモリ３０１０は、図８に例示するように、ＲＯＭ３０１１及びＲＡＭ３０１２を含む。ＲＯＭ３０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。
【００８３】
ここで、図８に例示するように、ハードディスクドライブ３０８０は、例えば、ＯＳ３０８１、アプリケーションプログラム３０８２、プログラムモジュール３０８３、プログラムデータ３０８４を記憶する。すなわち、開示の技術に係る検出プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール３０８３として、例えばハードディスクドライブ３０８０に記憶される。具体的には、上記実施形態で説明したＶＭ実行部１８の各部と同様の情報処理を実行する手順各々が記述されたプログラムモジュール３０８３が、ハードディスクドライブ３０８０に記憶される。
【００８４】
また、検出プログラムによる情報処理に用いられるデータは、プログラムデータ３０８４として、例えばハードディスクドライブ３０８０に記憶される。そして、ＣＰＵ３０２０が、ハードディスクドライブ３０８０に記憶されたプログラムモジュール３０８３やプログラムデータ３０８４を必要に応じてＲＡＭ３０１２に読み出し、各種の手順を実行する。
【００８５】
なお、検出プログラムに係るプログラムモジュール３０８３やプログラムデータ３０８４は、ハードディスクドライブ３０８０に記憶される場合に限られない。例えば、プログラムモジュール３０８３やプログラムデータ３０８４は、着脱可能な記憶媒体に記憶されても良い。この場合、ＣＰＵ３０２０は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、検出プログラムに係るプログラムモジュール３０８３やプログラムデータ３０８４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されても良い。この場合、ＣＰＵ３０２０は、ネットワークインタフェースを介して他のコンピュータにアクセスすることで各種データを読み出す。
【００８６】
（その他）
なお、本実施形態で説明した検出プログラムは、インターネットなどのネットワークを介して配布することができる。また、検出プログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【００８７】
１、１ａ、１ｂ          クライアント端末
１０                    情報処理装置
１１                    通信制御部
１２                    スワップ領域
１３                    記憶部
１３ａ                  物理メモリ管理ＤＢ
１３ｂ                  ページアウト管理ＤＢ
１４                    制御部
１４ａ                  ＶＭ管理部
１４ｂ                  物理メモリ制御部
１４ｃ                  ページング制御部
１４ｄ                  ＫＳＭ制御部
１５                    仮想領域
１６、１７、１８        ＶＭ実行部
１８ａ                  参考値記憶部
１８ｂ                  確保部
１８ｃ                  測定部
１８ｄ                  判定部
【要約】
【課題】内容が同一である複数のページが一つにまとめられているか否かを判定すること。
【解決手段】本願の開示する情報処理装置は、複数の仮想マシンを実現し、各仮想マシンのメモリに物理メモリの一部を割当てる。そして、第１の仮想マシンは、確保部と、測定部と、判定部とを有する。確保部は、物理メモリ内に計測用領域を確保し、計測用領域の第１の領域に対して乱数列を第１のデータとして書き込むとともに、計測用領域の第２の領域に対して固定文字列を第２のデータとして書き込む。測定部は、計測用領域から第１のデータ及び第２のデータの読出しを所定の間隔で行って、第１のデータの読出し性能及び第２のデータの読出し性能を測定する。判定部は、第１のデータの読出し性能及び第２のデータの読出し性能に基づいて、同一のページが物理メモリにおいて共有されているか否かを判定する。
【選択図】図１【図１】
0005563126.tif 000002
【図２】
0005563126.tif 000003
【図３】
0005563126.tif 000004
【図４】
0005563126.tif 000005
【図５】
0005563126.tif 000006
【図６】
0005563126.tif 000007
【図７】
0005563126.tif 000008
【図８】
0005563126.tif 000009