JP5563126B1 - Information processing apparatus and detection method - Google Patents

Information processing apparatus and detection method Download PDF

Info

Publication number
JP5563126B1
JP5563126B1 JP2013117749A JP2013117749A JP5563126B1 JP 5563126 B1 JP5563126 B1 JP 5563126B1 JP 2013117749 A JP2013117749 A JP 2013117749A JP 2013117749 A JP2013117749 A JP 2013117749A JP 5563126 B1 JP5563126 B1 JP 5563126B1
Authority
JP
Japan
Prior art keywords
data
unit
area
physical memory
read performance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013117749A
Other languages
Japanese (ja)
Other versions
JP2014235637A (en
Inventor
毅 近藤
邦夫 波戸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013117749A priority Critical patent/JP5563126B1/en
Application granted granted Critical
Publication of JP5563126B1 publication Critical patent/JP5563126B1/en
Publication of JP2014235637A publication Critical patent/JP2014235637A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】内容が同一である複数のページが一つにまとめられているか否かを判定すること。
【解決手段】本願の開示する情報処理装置は、複数の仮想マシンを実現し、各仮想マシンのメモリに物理メモリの一部を割当てる。そして、第1の仮想マシンは、確保部と、測定部と、判定部とを有する。確保部は、物理メモリ内に計測用領域を確保し、計測用領域の第1の領域に対して乱数列を第1のデータとして書き込むとともに、計測用領域の第2の領域に対して固定文字列を第2のデータとして書き込む。測定部は、計測用領域から第1のデータ及び第2のデータの読出しを所定の間隔で行って、第1のデータの読出し性能及び第2のデータの読出し性能を測定する。判定部は、第1のデータの読出し性能及び第2のデータの読出し性能に基づいて、同一のページが物理メモリにおいて共有されているか否かを判定する。
【選択図】図1
It is determined whether or not a plurality of pages having the same contents are grouped together.
An information processing apparatus disclosed in the present application realizes a plurality of virtual machines and allocates a part of physical memory to the memory of each virtual machine. The first virtual machine includes a securing unit, a measurement unit, and a determination unit. The securing unit secures a measurement area in the physical memory, writes a random number sequence as first data to the first area of the measurement area, and uses a fixed character for the second area of the measurement area. Write the column as second data. The measurement unit reads the first data and the second data from the measurement region at predetermined intervals, and measures the first data read performance and the second data read performance. The determination unit determines whether the same page is shared in the physical memory based on the read performance of the first data and the read performance of the second data.
[Selection] Figure 1

Description

本発明は、情報処理装置及び検出方法に関する。   The present invention relates to an information processing apparatus and a detection method.

近年、クラウドコンピューティングに代表されるように、ネットワークを経由してサービスを提供する情報システム(サービス提供システム)の普及が進んでいる。例えば、サービス提供システムには、ネットワークを経由して仮想マシンをユーザに提供するIaaS(Infrastructure as a Service)がある。   In recent years, as represented by cloud computing, information systems (service providing systems) that provide services via a network have been widely used. For example, a service providing system includes IaaS (Infrastructure as a Service) that provides a user with a virtual machine via a network.

このようなサービス提供システムでは、複数の仮想マシン(以下「VM(Virtual Machine)」と記載する)が実現されており、各VMには物理メモリやCPU(Central Processing Unit)など物理リソースが割当てられる。ここで、各VMに割当てられた物理リソースの総量が、コンピュータが有する物理リソース以上に割当てられる場合がある。これは、オーバーコミットメントと呼ばれる手法であり、全てのVMが同時に全ての物理リソースを使用しないことを前提としている。   In such a service providing system, a plurality of virtual machines (hereinafter referred to as “VM (Virtual Machine)”) are realized, and physical resources such as a physical memory and a CPU (Central Processing Unit) are allocated to each VM. . Here, the total amount of physical resources allocated to each VM may be allocated more than the physical resources of the computer. This is a technique called overcommitment, and assumes that all VMs do not use all physical resources at the same time.

また、オーバーコミットメントの手法の一部として、VMに物理メモリを効率的に配分するKSM(Kernel SamePage Merging)がある。KSMでは、VM内において複数のメモリ領域に格納されたページの内容が同一である場合、或いはVM間において複数のメモリ領域に格納されたページの内容が同一である場合に、内容が同一である複数のページが一つにまとめられて物理メモリ領域に保存される。これによって、例えば、同一のイメージから起動し、内容が同一であるページを保持している複数のVMを実現する場合には、各VMに物理メモリを効率的に割り当てることが可能となる。なお、KSMでは、保存されたページの内容に変更が生じた場合、変更されたページに対して随時新しいメモリ領域が割り当てられる。   As part of the overcommitment method, there is KSM (Kernel SamePage Merging) that efficiently allocates physical memory to VMs. In KSM, when the contents of pages stored in a plurality of memory areas in a VM are the same, or when the contents of pages stored in a plurality of memory areas are the same between VMs, the contents are the same. A plurality of pages are combined into one and stored in the physical memory area. As a result, for example, when realizing a plurality of VMs that start from the same image and hold pages having the same contents, physical memory can be efficiently allocated to each VM. In KSM, when a change occurs in the content of a saved page, a new memory area is allocated to the changed page as needed.

また、このようなメモリのオーバーコミットメントを採用するサービス提供システムにおいて、仮想マシンの繁忙期が重なりリソースが不足した場合、ページング(スワップ)の手法が用いられる。ページングは、利用頻度の低いメモリ領域を、HDD(Hard Disk Drive)等に退避(ページアウト)することで、新たなメモリの利用要求に対応する手法である。   In a service providing system that employs such memory overcommitment, a paging (swap) technique is used when the virtual machine is busy and lacks resources. Paging is a method for responding to a new memory usage request by saving (page out) a memory area with low usage frequency to an HDD (Hard Disk Drive) or the like.

網代 育大、“仮想マシン配置のためのパッキングアルゴリズム”、情報処理学会研究報告、IPSJ SIG Technical Report、Vol.2010−EVA−33、No.4、2010/11/29Adai University, “Packing Algorithm for Virtual Machine Placement”, 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)Red Hat Customer Portal, Chapter 7 KSM, [online], 2013, [Search April 9, 2013], Internet (URL: https://access.redhat.com/knowledge/docs/en-US/ Red_Hat_Enterprise_Linux / 6 / html / Virtualization_Administration_Guide / chap-KSM.html)

しかしながら、従来の技術では、内容が同一である複数のページが一つにまとめられているか否かを判定することができないという課題がある。具体的には、ホストOS(Operating System)やハイパーバイザ等のサービス提供システムの管理主体が、仮想マシンの利用者と異なる場合、仮想マシンの利用者は、KSMが有効になっているか否かを識別することができない。   However, the conventional technique has a problem that it cannot be determined whether or not a plurality of pages having the same content are grouped together. Specifically, when the management subject of a service providing system such as a host OS (Operating System) or a hypervisor is different from the user of the virtual machine, the user of the virtual machine determines whether or not KSM is enabled. Cannot be identified.

開示の実施形態は、上述に鑑みてなされたものであって、内容が同一である複数のページが一つにまとめられているか否かを判定することを目的とする。   An embodiment of the disclosure has been made in view of the above, and an object thereof is to determine whether or not a plurality of pages having the same contents are combined into one.

本願の開示する情報処理装置は、複数の仮想マシンを実現し、各仮想マシンのメモリに物理メモリの一部を割当てる。そして、第1の仮想マシンは、確保部と、測定部と、判定部とを有する。確保部は、物理メモリ内に計測用領域を確保し、計測用領域の第1の領域に対して乱数列を第1のデータとして書き込むとともに、計測用領域の第2の領域に対して固定文字列を第2のデータとして書き込む。測定部は、計測用領域から第1のデータ及び第2のデータの読出しを所定の間隔で行って、第1のデータの読出し性能及び第2のデータの読出し性能を測定する。判定部は、第1のデータの読出し性能及び第2のデータの読出し性能に基づいて、同一のページが物理メモリにおいて共有されているか否かを判定する。   The information processing apparatus disclosed in the present application realizes a plurality of virtual machines and allocates a part of physical memory to the memory of each virtual machine. The first virtual machine includes a securing unit, a measurement unit, and a determination unit. The securing unit secures a measurement area in the physical memory, writes a random number sequence as first data to the first area of the measurement area, and uses a fixed character for the second area of the measurement area. Write the column as second data. The measurement unit reads the first data and the second data from the measurement region at predetermined intervals, and measures the first data read performance and the second data read performance. The determination unit determines whether the same page is shared in the physical memory based on the read performance of the first data and the read performance of the second data.

開示する情報処理装置の一つの態様によれば、内容が同一である複数のページが一つにまとめられているか否かを判定することができるという効果を奏する。   According to one aspect of the information processing device to be disclosed, there is an effect that it can be determined whether or not a plurality of pages having the same contents are grouped into one.

図1は、第1の実施形態に係るコンピュータシステムの全体構成例を示す図である。FIG. 1 is a diagram illustrating an example of the overall configuration of a computer system according to the first embodiment. 図2は、第1の実施形態に係る物理メモリ管理DBが記憶する情報の一例を示す図である。FIG. 2 is a diagram illustrating an example of information stored in the physical memory management DB according to the first embodiment. 図3は、第1の実施形態に係るページアウト管理DBが記憶する情報の一例を示す図である。FIG. 3 is a diagram illustrating an example of information stored in the page-out management DB according to the first embodiment. 図4は、第1の実施形態に係る参考値記憶部が記憶するデータ構造の一例を示す図である。FIG. 4 is a diagram illustrating an example of a data structure stored in the reference value storage unit according to the first embodiment. 図5は、第1の実施形態に係るVM実行部による処理動作を説明するための図である。FIG. 5 is a diagram for explaining the processing operation performed by the VM execution unit according to the first embodiment. 図6は、第1の実施形態に係るVM実行部による検出処理の手順を示すフローチャートである。FIG. 6 is a flowchart illustrating the procedure of the detection process performed by the VM execution unit according to the first embodiment. 図7は、第2の実施形態に係るVM実行部による処理動作を説明するための図である。FIG. 7 is a diagram for explaining the processing operation performed by the VM execution unit according to the second embodiment. 図8は、コンピュータシステムによる処理を実行するための検出プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。FIG. 8 is a diagram showing that information processing by a detection program for executing processing by a computer system is specifically realized using a computer.

以下に、開示する情報処理装置及び検出方法の実施形態について、図面に基づいて詳細に説明する。なお、本実施形態により開示する発明が限定されるものではない。各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。   Hereinafter, embodiments of an information processing apparatus and a detection method to be disclosed will be described in detail based on the drawings. The invention disclosed by this embodiment is not limited. Each embodiment can be appropriately combined as long as the processing contents do not contradict each other.

(第1の実施形態)
図1は、第1の実施形態に係るコンピュータシステムの全体構成例を示す図である。図1に示すように、コンピュータシステムは、クライアント端末1aと、クライアント端末1bと、情報処理装置10とを有する。図1に示す例では、コンピュータシステムは、クライアント端末1aと、クライアント端末1bと、情報処理装置10とは、それぞれ、任意のネットワーク2を介して接続される。また、クライアント端末の数は、図示の数に限られるものではない。
(First embodiment)
FIG. 1 is a diagram illustrating an example of the overall configuration of a computer system according to the first embodiment. As illustrated in FIG. 1, the computer system includes a client terminal 1 a, a client terminal 1 b, and an information processing apparatus 10. In the example illustrated in FIG. 1, in the computer system, a client terminal 1 a, a client terminal 1 b, and an information processing apparatus 10 are connected via an arbitrary network 2. Further, the number of client terminals is not limited to the illustrated number.

クライアント端末1aは、情報処理装置10により提供されるサービスを利用する。例えば、クライアント端末1aは、情報処理装置10により提供されるリソースを利用する。ここで、情報処理装置10により提供されるリソースとは、例えば、仮想マシン(以下「VM(Virtual Machine)」と呼ぶ)である。クライアント端末1aは、例えば、PC(Personal Computer)やサーバ装置等の情報処理装置である。クライアント端末1bは、クライアント端末1aと同様に機能する端末である。このため、クライアント端末1bについての詳細な説明は省略する。また、以下の説明では、クライアント端末1a及び1bを区別しない場合には、クライアント端末1と呼ぶ。なお、第1の実施形態では、クライアント端末1の利用者が、IaaS(Infrastructure as a Service)事業者と契約したサービスの利用者である場合を説明する。   The client terminal 1a uses a service provided by the information processing apparatus 10. For example, the client terminal 1 a uses resources provided by the information processing apparatus 10. Here, the resource provided by the information processing apparatus 10 is, for example, a virtual machine (hereinafter referred to as “VM (Virtual Machine)”). The client terminal 1a is an information processing apparatus such as a PC (Personal Computer) or a server apparatus. The client terminal 1b is a terminal that functions similarly to the client terminal 1a. For this reason, the detailed description about the client terminal 1b is abbreviate | omitted. Moreover, in the following description, when not distinguishing the client terminals 1a and 1b, they are called the client terminals 1. In the first embodiment, a case where the user of the client terminal 1 is a user of a service contracted with an IaaS (Infrastructure as a Service) provider will be described.

情報処理装置10は、例えば、PCやサーバ装置等であり、クライアント端末1からのサービス要求をトリガとして動作し、ネットワーク2を介してVM等の特定のサービスをクライアント端末1に提供する。例えば、情報処理装置10は、複数の仮想マシンを実現し、各仮想マシンのメモリに物理メモリの一部を割当てる。なお、以下の説明では、情報処理装置10が有する物理メモリの全容量のことを「物理リソース」とも言う。   The information processing apparatus 10 is, for example, a PC, a server apparatus or the like, and operates with a service request from the client terminal 1 as a trigger, and provides a specific service such as a VM to the client terminal 1 via the network 2. For example, the information processing apparatus 10 realizes a plurality of virtual machines and allocates a part of the physical memory to the memory of each virtual machine. In the following description, the total capacity of the physical memory included in the information processing apparatus 10 is also referred to as “physical resource”.

また、情報処理装置10において、第1のVMは、物理メモリ内に計測用領域を確保し、計測用領域の第1の領域に対して乱数列を第1のデータとして書き込むとともに、計測用領域の第2の領域に対して固定文字列を第2のデータとして書き込む。また、第1のVMは、計測用領域から第1のデータ及び第2のデータの読出しを所定の間隔で行って、第1のデータの読出し性能及び第2のデータの読出し性能を測定する。そして、第1のVMは、第1のデータの読出し性能及び第2のデータの読出し性能に基づいて、同一のページが物理メモリにおいて共有されているか否かを判定する。   In the information processing apparatus 10, the first VM secures a measurement area in the physical memory, writes a random number sequence as first data to the first area of the measurement area, and also measures the measurement area. A fixed character string is written as second data in the second area. The first VM reads the first data and the second data from the measurement area at a predetermined interval, and measures the first data read performance and the second data read performance. Then, the first VM determines whether the same page is shared in the physical memory based on the read performance of the first data and the read performance of the second data.

引き続き図1を用いて、情報処理装置10の詳細について説明する。図1に示すように、情報処理装置10は、通信制御部11と、スワップ領域12と、記憶部13と、制御部14と、仮想領域15とを有する。   Next, details of the information processing apparatus 10 will be described with reference to FIG. As illustrated in FIG. 1, the information processing apparatus 10 includes a communication control unit 11, a swap area 12, a storage unit 13, a control unit 14, and a virtual area 15.

通信制御部11は、クライアント端末1との通信を制御する処理部である。例えば、通信制御部11は、クライアント端末1から実行要求や操作情報を受信してVM管理部14aに出力する。また、通信制御部11は、VM管理部14aによって受信されたVMの画面情報等をクライアント端末1へ送信する。この通信制御部11は、例えばネットワークインタフェースカードである。   The communication control unit 11 is a processing unit that controls communication with the client terminal 1. For example, the communication control unit 11 receives an execution request or operation information from the client terminal 1 and outputs it to the VM management unit 14a. In addition, the communication control unit 11 transmits the VM screen information received by the VM management unit 14 a to the client terminal 1. The communication control unit 11 is a network interface card, for example.

スワップ領域12は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の記憶媒体により実現される領域である。このスワップ領域12には、物理リソースの不足時に、利用頻度の低いメモリ領域のデータが退避(「ページアウト」とも言う)させられる。   The swap area 12 is an area realized by a storage medium such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive). In this swap area 12, data in a memory area with low usage frequency is saved (also referred to as “page-out”) when physical resources are insufficient.

記憶部13は、プロセッサが実行するプログラムやデータを記憶するとともに、物理メモリ管理DB(Data Base)13aとページアウト管理DB13bとを有する記憶部である。   The storage unit 13 is a storage unit that stores a program and data executed by the processor and includes a physical memory management DB (Data Base) 13a and a page-out management DB 13b.

物理メモリ管理DB13aは、「物理メモリアドレス」と「マシンアドレス」とを対応付けて記憶するデータベースである。図2は、第1の実施形態に係る物理メモリ管理DB13aが記憶する情報の一例を示す図である。図2に示すように、物理メモリ管理DB13aは、「物理メモリアドレス」と、「マシンアドレス」とを対応付けた情報を記憶する。   The physical memory management DB 13a is a database that stores “physical memory address” and “machine address” in association with each other. FIG. 2 is a diagram illustrating an example of information stored in the physical memory management DB 13a according to the first embodiment. As illustrated in FIG. 2, the physical memory management DB 13 a stores information in which “physical memory address” and “machine address” are associated with each other.

ここで、物理メモリ管理DB13aが記憶する「物理メモリアドレス」は、情報処理装置10の物理メモリにおけるアドレスを示す。例えば、「物理メモリアドレス」には、「0x400〜0x24000」、「0x24000〜0x44000」等のデータ値が格納される。また、「マシンアドレス」は、各VMに割当てられたメモリ(仮想メモリとも言う)のアドレスを示す。言い換えると、「マシンアドレス」は、VMから見える物理メモリのアドレスを示す。例えば、「マシンアドレス」には、「0x000〜0x20000」、「0x20000〜0x40000」等のデータ値が格納される。   Here, the “physical memory address” stored in the physical memory management DB 13 a indicates an address in the physical memory of the information processing apparatus 10. For example, data values such as “0x400 to 0x24000” and “0x24000 to 0x44000” are stored in the “physical memory address”. “Machine address” indicates an address of a memory (also referred to as a virtual memory) allocated to each VM. In other words, the “machine address” indicates an address of physical memory that can be seen from the VM. For example, data values such as “0x000 to 0x20000” and “0x20000 to 0x40000” are stored in the “machine address”.

一例をあげると、図2に示す物理メモリ管理DB13aは、「物理メモリアドレス」における「0x400〜0x24000」が「マシンアドレス」の「0x000〜0x20000」に対応することを示す。   As an example, the physical memory management DB 13a illustrated in FIG. 2 indicates that “0x400 to 0x24000” in “physical memory address” corresponds to “0x000 to 0x20000” in “machine address”.

ページアウト管理DB13bは、「マシンアドレス」と「スワップ領域アドレス」とを対応付けて記憶するデータベースである。図3は、第1の実施形態に係るページアウト管理DB13bが記憶する情報の一例を示す図である。図3に示すように、ページアウト管理DB13bは、「マシンアドレス」と、「スワップ領域アドレス」とを対応付けて記憶する。   The page-out management DB 13b is a database that stores “machine address” and “swap area address” in association with each other. FIG. 3 is a diagram illustrating an example of information stored in the page-out management DB 13b according to the first embodiment. As illustrated in FIG. 3, the page-out management DB 13b stores “machine address” and “swap area address” in association with each other.

ここで、ページアウト管理DB13bが記憶する「スワップ領域アドレス」は、スワップ領域12におけるアドレスを示す。例えば、「スワップ領域アドレス」には、「0x800〜0x1000」、「0x1000〜0x1200」等のデータ値が格納される。なお、ページアウト管理DB13bが記憶する「マシンアドレス」は、物理メモリ管理DB13aが記憶する「マシンアドレス」と同様である。   Here, the “swap area address” stored in the page-out management DB 13 b indicates an address in the swap area 12. For example, data values such as “0x800 to 0x1000” and “0x1000 to 0x1200” are stored in the “swap area address”. The “machine address” stored in the page-out management DB 13b is the same as the “machine address” stored in the physical memory management DB 13a.

一例をあげると、図3に示すページアウト管理DB13bは、「マシンアドレス」における「0x1000〜0x1200」が「スワップ領域アドレス」の「0x800〜0x1000」に対応することを示す。   For example, the page-out management DB 13b illustrated in FIG. 3 indicates that “0x1000 to 0x1200” in “machine address” corresponds to “0x800 to 0x1000” in “swap area address”.

制御部14は、VM管理部14aと、物理メモリ制御部14bと、ページング制御部14cと、KSM制御部14dとを有する。   The control unit 14 includes a VM management unit 14a, a physical memory control unit 14b, a paging control unit 14c, and a KSM control unit 14d.

VM管理部14aは、仮想領域15内で、互いに異なる動作環境が構築された複数のVM実行部16、VM実行部17及びVM実行部18を動作させる処理部である。また、VM管理部14aは、各VMで稼動するOS(Operating System)に、仮想プロセッサと仮想メモリとを割り当てる。この結果、各VMは、独立して各種処理を実行することができる。なお、仮想メモリは、情報処理装置10の物理メモリにおける所定領域を、VMのOSが使用するメモリとして割り当てることで実現された仮想的なメモリである。仮想プロセッサは、情報処理装置10のプロセッサにおける所定処理能力をVMのOSが使用するプロセッサとして割り当てることで実現された仮想的なプロセッサである。   The VM management unit 14 a is a processing unit that operates a plurality of VM execution units 16, VM execution units 17, and VM execution units 18 in which different operating environments are constructed in the virtual area 15. In addition, the VM management unit 14a allocates a virtual processor and a virtual memory to an OS (Operating System) operating on each VM. As a result, each VM can execute various processes independently. The virtual memory is a virtual memory realized by allocating a predetermined area in the physical memory of the information processing apparatus 10 as a memory used by the VM OS. The virtual processor is a virtual processor realized by allocating a predetermined processing capability in the processor of the information processing apparatus 10 as a processor used by the VM OS.

物理メモリ制御部14bは、各VMからの要求に応じて、物理メモリへのデータの書込み及び物理メモリからのデータの読出しを制御する。例えば、物理メモリ制御部14bは、後述するVM実行部16(VM実行部17、VM実行部18)から物理メモリ内に所定の文字列を書き込む指示を受付けた場合、指定されたアドレスの物理メモリにデータを書込む。また、物理メモリ制御部14bは、物理メモリからデータを読出す指示を、VM実行部16(VM実行部17、VM実行部18)から受付けた場合、指定されたアドレスの物理メモリからデータを読出す。   The physical memory control unit 14b controls writing of data to the physical memory and reading of data from the physical memory in response to a request from each VM. For example, when the physical memory control unit 14b receives an instruction to write a predetermined character string in the physical memory from the VM execution unit 16 (the VM execution unit 17, the VM execution unit 18), which will be described later, the physical memory at the specified address Write data to. Further, when the physical memory control unit 14b receives an instruction to read data from the physical memory from the VM execution unit 16 (the VM execution unit 17, the VM execution unit 18), the physical memory control unit 14b reads the data from the physical memory at the specified address. put out.

また、例えば、物理メモリ制御部14bは、後述する確保部18bから物理メモリ内に所定の文字列を書き込む指示を受付けた場合、指定されたアドレスの物理メモリにデータを書込む。また、物理メモリ制御部14bは、物理メモリからデータを読出す指示を後述する測定部18cから受付けた場合、指定されたアドレスの物理メモリからデータを読出す。   For example, when the physical memory control unit 14b receives an instruction to write a predetermined character string in the physical memory from the securing unit 18b described later, the physical memory control unit 14b writes the data to the physical memory at the designated address. When the physical memory control unit 14b receives an instruction to read data from the physical memory from the measurement unit 18c described later, the physical memory control unit 14b reads the data from the physical memory at the designated address.

また、物理メモリ制御部14bは、物理メモリへのデータの書込みを要求された際に、物理メモリに空き領域がない場合、後述するページング制御部14cに、ページアウト処理を依頼する。また、物理メモリ制御部14bは、物理メモリからのデータの読出しを要求された際に、要求されたデータがページアウトされていた場合、後述するページング制御部14cに、ページイン処理を依頼する。   When the physical memory control unit 14b is requested to write data to the physical memory and there is no free space in the physical memory, the physical memory control unit 14b requests the paging control unit 14c described later to perform page-out processing. Further, when the requested data is paged out when the physical memory control unit 14b is requested to read data from the physical memory, the physical memory control unit 14b requests the paging control unit 14c described later to perform page-in processing.

ページング制御部14cは、物理メモリ制御部14bからページアウト処理を依頼された場合、いずれかのデータをスワップ領域12にページアウトする。例えば、ページング制御部14cは、利用頻度の低いメモリ領域のデータをスワップ領域に退避させる。また、ページング制御部14cは、物理メモリ制御部14bからページイン処理を依頼された場合、要求されたデータをスワップ領域12から読出し、物理メモリの空き領域にページインする。   The paging control unit 14c pages out any data to the swap area 12 when a page-out process is requested from the physical memory control unit 14b. For example, the paging control unit 14c saves data in a memory area that is not frequently used in a swap area. Further, when the page-in process is requested from the physical memory control unit 14b, the paging control unit 14c reads the requested data from the swap area 12 and pages it into the free area of the physical memory.

KSM制御部14dは、KSMが有効化されている場合、複数のメモリ領域に格納された内容が同一であるページを一つにまとめて物理メモリに保存する。例えば、KSM制御部14dは、物理メモリを走査して、同一の内容のページが存在するか否かを判定する。そして、KSM制御部14dは、同一の内容のページが存在すると判定した場合、同一の内容のページを一つにまとめる。   When KSM is enabled, the KSM control unit 14d stores pages having the same contents stored in a plurality of memory areas into one physical memory. For example, the KSM control unit 14d scans the physical memory and determines whether there is a page having the same content. When the KSM control unit 14d determines that pages with the same content exist, the KSM control unit 14d combines the pages with the same content into one.

また、KSM制御部14dは、まとめたページが更新された場合、更新されたページに新たな物理メモリを割当てる。なお、制御部14は、KSM制御部14dを有さずに構成されてもよい。かかる場合、情報処理装置10において、KSMは有効化されない。   In addition, when the collected pages are updated, the KSM control unit 14d allocates new physical memory to the updated pages. The control unit 14 may be configured without the KSM control unit 14d. In such a case, KSM is not activated in the information processing apparatus 10.

仮想領域15は、VM管理部14aによって管理される領域であり、任意の数のVMを動作させることができる。例えば、仮想領域15では、VM管理部14aの制御の下に、互いに異なる動作環境が構築された複数のVM実行部16、VM実行部17及びVM実行部18が動作する。VM実行部16は、仮想プロセッサや仮想メモリが割当てられた仮想マシンである。ここで、VM実行部16に割当てられた仮想メモリの領域をマシンアドレス「0x000〜0x20000」とする。同様に、VM実行部17は、仮想プロセッサや仮想メモリが割当てられた仮想マシンである。ここで、VM実行部17に割当てられた仮想メモリの領域をマシンアドレス「0x20000〜0x40000」とする。   The virtual area 15 is an area managed by the VM management unit 14a, and an arbitrary number of VMs can be operated. For example, in the virtual area 15, a plurality of VM execution units 16, VM execution units 17, and VM execution units 18 in which different operation environments are constructed operate under the control of the VM management unit 14 a. The VM execution unit 16 is a virtual machine to which a virtual processor and virtual memory are allocated. Here, it is assumed that the virtual memory area allocated to the VM execution unit 16 is a machine address “0x000 to 0x20000”. Similarly, the VM execution unit 17 is a virtual machine to which a virtual processor or virtual memory is allocated. Here, it is assumed that the virtual memory area allocated to the VM execution unit 17 is a machine address “0x20000 to 0x40000”.

VM実行部18は、仮想プロセッサや仮想メモリが割当てられた仮想マシンである。VM実行部18には、VM実行部16及びVM実行部17が有する機能に加えて、以下の機能を有する。すなわち、VM実行部18は、参考値記憶部18aと、確保部18bと、測定部18cと、判定部18dとを有する。なお、VM実行部18のことを「第1の仮想マシン」とも言う。なお、VM実行部18に割当てられた仮想メモリの領域をマシンアドレス「0x40000〜0x60000」とする。   The VM execution unit 18 is a virtual machine to which a virtual processor and virtual memory are allocated. The VM execution unit 18 has the following functions in addition to the functions of the VM execution unit 16 and the VM execution unit 17. That is, the VM execution unit 18 includes a reference value storage unit 18a, a securing unit 18b, a measurement unit 18c, and a determination unit 18d. The VM execution unit 18 is also referred to as a “first virtual machine”. It is assumed that the virtual memory area allocated to the VM execution unit 18 is a machine address “0x40000 to 0x60000”.

参考値記憶部18aは、KSMが有効化されているか否かを判定する所定の参考値を記憶する。言い換えると、参考値記憶部18aは、内容が同一である複数のページが一つにまとめられているか否かを判定する所定の参考値を記憶する。図4は、第1の実施形態に係る参考値記憶部18aが記憶するデータ構造の一例を示す図である。図4に示すように、参考値記憶部18aは、「マシンアドレス」と、「文字列」と、「参考値」とを対応付けた情報を記憶する。   The reference value storage unit 18a stores a predetermined reference value for determining whether or not KSM is enabled. In other words, the reference value storage unit 18a stores a predetermined reference value for determining whether or not a plurality of pages having the same content are grouped into one. FIG. 4 is a diagram illustrating an example of a data structure stored in the reference value storage unit 18a according to the first embodiment. As illustrated in FIG. 4, the reference value storage unit 18 a stores information in which “machine address”, “character string”, and “reference value” are associated with each other.

ここで、参考値記憶部18aが記憶する「マシンアドレス」は、物理メモリ管理DB13aが記憶する「マシンアドレス」と同様である。また、参考値記憶部18aが記憶する「文字列」は、第1のデータ或いは第2のデータとして書き込まれた文字列を示す。例えば、「文字列」には、第1のデータとして書き込まれた乱数列「agjedois・・・」、第2のデータとして書き込まれた固定文字列「000・・・00」などの文字列が格納される。なお、ここで言う「乱数列」とは、暗号化手法により決定されたランダムな文字列であり、KSMが有効化されている場合に一つにまとめられにくい文字列を示し、「固定文字列」とは、他のVM実行部16及び17やVM実行部18が利用するアプリケーションやデータにおいて出現する可能性の高い文字列であり、KSMが有効化されている場合に一つにまとめられやすい文字列を示す。   Here, the “machine address” stored in the reference value storage unit 18a is the same as the “machine address” stored in the physical memory management DB 13a. The “character string” stored in the reference value storage unit 18a indicates a character string written as the first data or the second data. For example, in the “character string”, a character string such as a random number string “agjedois...” Written as the first data and a fixed character string “000... 00” written as the second data is stored. Is done. The “random number sequence” referred to here is a random character string determined by an encryption method, and indicates a character string that is difficult to be combined into one when KSM is enabled. "Is a character string that has a high possibility of appearing in applications and data used by the other VM execution units 16 and 17 and the VM execution unit 18, and is easily combined into one when KSM is enabled. Indicates a character string.

また、参考値記憶部18aが記憶する「参考値」は、KSMが有効化されているか否かを判定する所定の参考値を示す。この参考値は、第1のデータが書き込まれた直後に測定された第1のデータの読出し性能及び第2のデータが書き込まれた直後に測定された第2のデータの読出し性能に基づいて設定される。例えば、「参考値」には、「5.0(秒),8(MB/s)」などの時間を示すデータ値と速度を示すデータ値とが格納される。この参考値は、測定部18cによって設定される。なお、参考値を設定する処理の詳細については、後述する。また、参考値記憶部18aの「参考値」には、時間を示すデータ値又は速度を示すデータ値のいずれか一方が記憶されるようにしてもよい。   Further, the “reference value” stored in the reference value storage unit 18a indicates a predetermined reference value for determining whether or not KSM is activated. The reference value is set based on the read performance of the first data measured immediately after the first data is written and the read performance of the second data measured immediately after the second data is written. Is done. For example, the “reference value” stores a data value indicating a time such as “5.0 (seconds), 8 (MB / s)” and a data value indicating a speed. This reference value is set by the measuring unit 18c. Details of the process for setting the reference value will be described later. In addition, in the “reference value” of the reference value storage unit 18a, either a data value indicating time or a data value indicating speed may be stored.

一例をあげると、図4に示す参考値記憶部18aは、マシンアドレスが「0x40000〜0x40200」であるメモリ領域に文字列「agjedois・・・」が書き込まれており、読み出し性能の参考値が「5.0(秒),8(MB/s)」であることを示す。また、図4に示す参考値記憶部18aは、マシンアドレスが「0x40200〜0x40400」であるメモリ領域に文字列「000・・・00」が書き込まれており、読み出し性能の参考値が「5.5(秒),7.5(MB/s)」であることを示す。   As an example, the reference value storage unit 18a shown in FIG. 4 has a character string “agjedois...” Written in a memory area whose machine address is “0x40000-0x40200”. 5.0 (seconds), 8 (MB / s) ". In the reference value storage unit 18a shown in FIG. 4, the character string “000... 00” is written in the memory area having the machine address “0x40200 to 0x40400”, and the reference value of the reading performance is “5. 5 (seconds), 7.5 (MB / s) ".

確保部18bは、物理メモリ内に計測用領域を確保し、計測用領域の第1の領域に対して乱数列を第1のデータとして書き込むとともに、計測用領域の第2の領域に対して固定文字列を第2のデータとして書き込む。例えば、確保部18bは、検出処理の開始の指示を利用者から受付けた場合に、計測用領域として、マシンアドレス「0x40000〜0x40200」及び「0x40200〜0x40400」を確保する。そして、確保部18bは、マシンアドレス「0x40000〜0x40200」に乱数列「agjedois・・・」を第1のデータとして書き込み、マシンアドレス「0x40200〜0x40400」に固定文字列「000・・・00」を第2のデータとして書き込む。   The securing unit 18b secures a measurement area in the physical memory, writes a random number sequence as first data to the first area of the measurement area, and fixes it to the second area of the measurement area. Write a character string as second data. For example, the securing unit 18b secures machine addresses “0x40000-0x40200” and “0x40200-0x40400” as measurement areas when receiving an instruction to start detection processing from the user. Then, the securing unit 18b writes the random number sequence “agjedois...” As the first data to the machine address “0x40000 to 0x40200”, and the fixed character string “000... 00” to the machine address “0x40200 to 0x40400”. Write as second data.

より具体的には、確保部18bは、2GBを計測用領域として確保した場合、2GBを2等分し、一方の1GBを第1のデータの書込み領域、他方の1GBを第2のデータの書込み領域に割当てる。ここで、1ページは4KBであり、4KBを一つの単位としてメモリ領域に書き込まれる。例えば、確保部18bは、1GBのメモリ領域に、同一のページが繰り返し出現しないように暗号化手法を用いて決定された乱数列を第1のデータとして書き込む。また、確保部18bは、1GBのメモリ領域に、第2のデータとして同一のページを繰り返し書き込む。確保部18bは、例えば、ページ内の文字列の全てが「0」で構成された固定文字列を第2のデータとして書き込む。   More specifically, when 2 GB is secured as a measurement area, the securing unit 18 b divides 2 GB into two equal parts, one 1 GB is written to the first data, and the other 1 GB is written to the second data. Assign to a region. Here, one page is 4 KB, and 4 KB is written in the memory area as one unit. For example, the securing unit 18b writes, as first data, a random number sequence determined using an encryption method so that the same page does not appear repeatedly in a 1 GB memory area. The securing unit 18b repeatedly writes the same page as the second data in the 1 GB memory area. For example, the securing unit 18b writes, as the second data, a fixed character string in which all character strings in the page are configured with “0”.

測定部18cは、計測用領域から第1のデータ及び第2のデータの読出しを所定の間隔で行って、第1のデータの読出し性能及び第2のデータの読出し性能を測定する。例えば、測定部18cは、読出し性能として、データの読出し要求を発行してから、要求したデータが読み出されるまでの時間と読出し転送速度とを測定する。ここで、測定部18cは、待機時間が経過後に定期的に、第1のデータの読出し性能及び第2のデータの読出し性能を測定する。   The measurement unit 18c reads the first data and the second data from the measurement area at predetermined intervals, and measures the first data read performance and the second data read performance. For example, the measurement unit 18c measures the time from when a data read request is issued until the requested data is read and the read transfer rate as the read performance. Here, the measurement unit 18c measures the read performance of the first data and the read performance of the second data periodically after the standby time has elapsed.

具体的には、測定部18cは、計測用領域として2GBが確保され、第1のデータが書き込まれた1GBのメモリ領域と、第2のデータが書き込まれた1GBのメモリ領域をそれぞれ読出して、読出し性能を測定する。測定部18cは、測定した第1のデータの読出し性能及び第2のデータの読出し性能を、判定部18dに受け渡す。   Specifically, the measurement unit 18c secures 2 GB as a measurement area, and reads the 1 GB memory area in which the first data is written and the 1 GB memory area in which the second data is written, respectively. Measure read performance. The measurement unit 18c transfers the measured first data read performance and second data read performance to the determination unit 18d.

また、測定部18cは、確保部18bによって第1のデータ及び第2のデータが書き込まれたときに、第1のデータの読出し性能及び第2のデータの読出し性能を測定する。そして、測定部18cは、測定した第1のデータの読出し性能に基づいて第1の参考値を決定するとともに、第2のデータの読出し性能に基づいて第2の参考値を決定する。続いて、測定部18cは、第1の参考値及び第2の参考値を参考値記憶部18aに設定する。   The measurement unit 18c measures the first data read performance and the second data read performance when the first data and the second data are written by the securing unit 18b. Then, the measurement unit 18c determines the first reference value based on the measured read performance of the first data, and determines the second reference value based on the read performance of the second data. Subsequently, the measurement unit 18c sets the first reference value and the second reference value in the reference value storage unit 18a.

例えば、測定部18cは、第1のデータの読出し性能及び第2のデータの読出し性能を測定する。そして、測定部18cは、各測定値に測定誤差を加味して第1の参考値と第2の参考値とを決定する。ここで、測定誤差として10%を設定し、測定値より10%低下した値を参考値に決定する。測定部18cは、決定した参考値を、参考値記憶部18aが記憶する第1のデータのマシンアドレス及び文字列に対応付けて記憶させる。なお、測定部18cは、読出し性能として、データの読出し要求を発行してから、要求したデータが読み出されるまでの時間及び読出し転送速度のいずれか一方を測定するようにしてもよい。かかる場合、測定部18cは、時間を示すデータ値又は速度を示すデータ値のうち測定したデータ値に基づいて決定した参考値を参考値記憶部18aに記憶させる。   For example, the measurement unit 18c measures the read performance of the first data and the read performance of the second data. Then, the measurement unit 18c determines the first reference value and the second reference value by adding a measurement error to each measurement value. Here, 10% is set as the measurement error, and a value that is 10% lower than the measured value is determined as a reference value. The measurement unit 18c stores the determined reference value in association with the machine address and character string of the first data stored in the reference value storage unit 18a. Note that the measurement unit 18c may measure, as the read performance, either the time from when the data read request is issued until the requested data is read or the read transfer rate. In such a case, the measurement unit 18c causes the reference value storage unit 18a to store the reference value determined based on the measured data value among the data value indicating time or the data value indicating speed.

判定部18dは、第1のデータの読出し性能及び第2のデータの読出し性能に基づいて、同一のページが前記物理メモリにおいて共有されているか否かを判定する。例えば、判定部18dは、第1のデータの読出し性能が所定の参考値未満であり、かつ、第2のデータの読出し性能が所定の参考値以上である場合に、同一のページが物理メモリにおいて共有されていると判定する。   The determination unit 18d determines whether the same page is shared in the physical memory based on the read performance of the first data and the read performance of the second data. For example, the determination unit 18d determines that the same page is stored in the physical memory when the read performance of the first data is less than a predetermined reference value and the read performance of the second data is equal to or higher than the predetermined reference value. It is determined that it is shared.

具体的には、判定部18dは、第1のデータの読出し性能及び第2のデータの読出し性能を測定部18cから取得する。また、判定部18dは、参考値記憶部18aが記憶する「参考値」から、第1の参考値及び第2の参考値を読み出す。そして、判定部18dは、第1のデータの読出し性能及び第2のデータの読出し性能それぞれと第1の参考値及び第2の参考値それぞれとを比較する。   Specifically, the determination unit 18d acquires the reading performance of the first data and the reading performance of the second data from the measurement unit 18c. Further, the determination unit 18d reads out the first reference value and the second reference value from the “reference value” stored in the reference value storage unit 18a. Then, the determination unit 18d compares the first data read performance and the second data read performance with the first reference value and the second reference value, respectively.

ここで、判定部18dは、第2のデータの読出し性能が第2の参考値以上であり、第1のデータの読出し性能が第1の参考値未満である場合、第2のデータがページアウトされておらず、第1のデータがページアウトされていると推測する。言い換えると、読出し性能の測定に際して、第1のデータ及び第2のデータに同じ頻度でアクセスしているにも関わらず、固定文字列である第2のデータがページアウトされていないので、判定部18dは、この第2のデータが物理メモリ上で共有されており、他のVM実行部16及び17によってアクセスされていたと推測する。このため、かかる場合、判定部18dは、同一のページが物理メモリにおいて共有されていると判定する。すなわち、判定部18dは、KSMが有効化されていると判定する。なお、第2のデータの読出し性能が第2の参考値以上であり、第1のデータの読出し性能が第1の参考値未満である場合、偶然この第1のデータがページアウトの対象として選択される場合もある。かかる場合の判定部18dの処理については、後述する。   Here, when the reading performance of the second data is equal to or higher than the second reference value and the reading performance of the first data is less than the first reference value, the determination unit 18d determines that the second data is paged out. It is not assumed that the first data is paged out. In other words, when the read performance is measured, the second data that is a fixed character string is not paged out even though the first data and the second data are accessed at the same frequency. 18d infers that the second data is shared on the physical memory and accessed by the other VM execution units 16 and 17. Therefore, in such a case, the determination unit 18d determines that the same page is shared in the physical memory. That is, the determination unit 18d determines that KSM is enabled. If the reading performance of the second data is equal to or higher than the second reference value and the reading performance of the first data is less than the first reference value, the first data is accidentally selected as a page-out target. Sometimes it is done. The processing of the determination unit 18d in such a case will be described later.

また、判定部18dは、第1のデータの読出し性能が第1の参考値以上であり、第2のデータの読出し性能が第2の参考値未満である場合、第2のデータがページアウトされており、第1のデータがページアウトされていないと推測する。言い換えると、読出し性能の測定に際して、第1のデータ及び第2のデータに同じ頻度でアクセスしているにも関わらず、第1のデータがページアウトされていないのに第2のデータがページアウトされているので、判定部18dは、偶然この第2のデータがページアウトの対象として選択されたと推測する。このため、かかる場合、判定部18dは、現時点でKSMが有効化されているとは判定できないと判定する。なお、かかる場合、この第2のデータが物理メモリ上で共有されておらず、他のVM実行部16及び17によってアクセスされていた可能性が低いと考えられる。   In addition, when the first data read performance is equal to or higher than the first reference value and the second data read performance is lower than the second reference value, the determination unit 18d pages out the second data. And the first data is estimated not to be paged out. In other words, when the read performance is measured, the first data is not paged out even though the first data and the second data are accessed at the same frequency, but the second data is paged out. Therefore, the determination unit 18d guesses that the second data is accidentally selected as a page-out target. For this reason, in such a case, the determination unit 18d determines that it cannot be determined that KSM is currently enabled. In such a case, it is considered that the second data is not shared on the physical memory and is unlikely to be accessed by other VM execution units 16 and 17.

また、判定部18dは、第1のデータの読出し性能が第1の参考値未満であり、第2のデータの読出し性能が第2の参考値未満である場合、第1のデータも第2のデータもページアウトされていると推測する。かかる場合、判定部18dは、現時点でKSMが有効化されているとは判定できないと判定する。なお、かかる場合、仮にKSMが有効化されていて第2のデータが共有されていても、この第2のデータがページアウトすることから、物理メモリが逼迫している可能性が考えられる。   In addition, when the reading performance of the first data is less than the first reference value and the reading performance of the second data is less than the second reference value, the determination unit 18d also sets the first data to the second value. I guess the data is also paged out. In such a case, the determination unit 18d determines that it cannot be determined that KSM is currently enabled. In such a case, even if KSM is enabled and the second data is shared, the second data is paged out, so the physical memory may be tight.

また、判定部18dは、第1のデータの読出し性能が第1の参考値以上であり、第2のデータの読出し性能が第2の参考値以上である場合、第1のデータも第2のデータもページアウトされておらず、現時点でKSMが有効化されているとは判定できないと判定する。   In addition, when the first data read performance is equal to or higher than the first reference value and the second data read performance is equal to or higher than the second reference value, the determination unit 18d also sets the first data to the second reference value. It is determined that the data is not paged out and it cannot be determined that KSM is currently enabled.

図5は、第1の実施形態に係るVM実行部18による処理動作を説明するための図である。図5の横軸はメモリ空間を示し、縦軸は時間を示す。なお、図5では、測定部18cは、待機時間を一定の間隔であるとし、この待機時間が経過後に読み出し性能として読出し速度を測定するものとする。   FIG. 5 is a diagram for explaining the processing operation performed by the VM execution unit 18 according to the first embodiment. The horizontal axis in FIG. 5 indicates the memory space, and the vertical axis indicates time. In FIG. 5, it is assumed that the measurement unit 18c measures the reading speed as the reading performance after the waiting time has elapsed at regular intervals.

図5に示すように、VM実行部18において、確保部18bは、領域Aに固定文字列を書き込む(ステップS1)。続いて、測定部18cは、領域Aに書き込まれた固定文字列を読出し、読出し速度を測定する(ステップS2)。また、確保部18bは、領域Bに乱数列を書き込む(ステップS3)。続いて、測定部18cは、領域Bに書き込まれた乱数列を読出し、読出し速度を測定する(ステップS4)。そして、測定部18cは、アクセスを行わない待機時間にはいる(ステップS5)。なお、ここでの待機時間を1分とする。   As shown in FIG. 5, in the VM execution unit 18, the securing unit 18b writes the fixed character string in the area A (step S1). Subsequently, the measuring unit 18c reads the fixed character string written in the area A and measures the reading speed (step S2). Further, the securing unit 18b writes a random number sequence in the region B (step S3). Subsequently, the measuring unit 18c reads the random number sequence written in the region B and measures the reading speed (step S4). Then, the measurement unit 18c enters a standby time during which access is not performed (step S5). The waiting time here is 1 minute.

測定部18cは、待機時間が経過後、領域Aに書き込まれた固定文字列を読出し、読出し速度を測定し(ステップS6)、領域Bに書き込まれた乱数列を読出し、読出し速度を測定する(ステップS7)。そして、判定部18dは、測定部18cが測定した読出し速度に基づいて、KSMが有効化されているか否かを判定する。ここで、判定部18dによりKSMが有効化されていないと判定された場合、測定部18cは、アクセスを行わない待機時間にはいる(ステップS8)。なお、ここでの待機時間も同様に1分である。   After the standby time elapses, the measuring unit 18c reads the fixed character string written in the area A, measures the reading speed (step S6), reads the random number sequence written in the area B, and measures the reading speed (step S6). Step S7). Then, the determination unit 18d determines whether or not KSM is enabled based on the reading speed measured by the measurement unit 18c. Here, when the determination unit 18d determines that KSM is not enabled, the measurement unit 18c enters a standby time during which access is not performed (step S8). The waiting time here is also 1 minute.

測定部18cは、待機時間が経過後、領域Aに書き込まれた固定文字列を読出し、読出し速度を測定し(ステップS9)、領域Bに書き込まれた乱数列を読出し、読出し速度を測定する(ステップS10)。そして、判定部18dは、測定部18cが測定した読出し速度に基づいて、KSMが有効化されているか否かを判定する。ここで、判定部18dによりKSMが有効化されていないと判定された場合、測定部18cは、アクセスを行わない待機時間にはいる。かかる場合、待機時間は同様に1分である。このように、測定部18cは、第1のデータの読出し性能及び第2のデータの読出し性能を測定後の待機時間を、一定の間隔(1分)とする。   After the standby time elapses, the measuring unit 18c reads the fixed character string written in the area A, measures the reading speed (step S9), reads the random number sequence written in the area B, and measures the reading speed ( Step S10). Then, the determination unit 18d determines whether or not KSM is enabled based on the reading speed measured by the measurement unit 18c. Here, when the determination unit 18d determines that KSM is not enabled, the measurement unit 18c enters a standby time during which access is not performed. In such a case, the waiting time is likewise 1 minute. As described above, the measuring unit 18c sets the waiting time after measuring the reading performance of the first data and the reading performance of the second data to a constant interval (1 minute).

次に、図6を用いて、VM実行部18による検出処理の手順を説明する。図6は、第1の実施形態に係るVM実行部18による検出処理の手順を示すフローチャートである。なお、VM実行部18は、例えば、ユーザから検出処理の開始の指示を受付けたことを契機に処理を実行する。   Next, a detection process procedure performed by the VM execution unit 18 will be described with reference to FIG. FIG. 6 is a flowchart illustrating a procedure of detection processing by the VM execution unit 18 according to the first embodiment. For example, the VM execution unit 18 executes the process when receiving an instruction to start the detection process from the user.

図6に示すように、確保部18bは、物理メモリ内に複数の計測用領域を確保する(ステップS101)。そして、確保部18bは、確保した計測用領域の一方に固定文字列を書き込み、他方に乱数列を書き込む(ステップS102)。   As shown in FIG. 6, the securing unit 18b secures a plurality of measurement areas in the physical memory (step S101). Then, the securing unit 18b writes a fixed character string in one of the secured measurement areas and writes a random number sequence in the other (step S102).

続いて、測定部18cは、各領域に対して読出しを行い、読出し遅延、読出し転送速度を測定する(ステップS103)。また、測定部18cは、測定結果に基づいて参考値を設定する(ステップS104)。   Subsequently, the measuring unit 18c reads out each area, and measures a read delay and a read transfer rate (step S103). Moreover, the measurement part 18c sets a reference value based on a measurement result (step S104).

そして測定部18cは、待機時間に入り(ステップS105)、所定の時間が経過したか否かを判定する(ステップS106)。ここで、測定部18cは、所定の時間が経過したと判定した場合(ステップS106、Yes)、各領域に対して読出しを行い、読出し遅延、読出し転送速度を測定する(ステップS107)。なお、測定部18cは、所定の時間が経過しなかったと判定した場合(ステップS106、No)、ステップS106の判定処理を繰り返す。   Then, the measurement unit 18c enters a standby time (step S105) and determines whether or not a predetermined time has elapsed (step S106). Here, when it is determined that the predetermined time has elapsed (Yes in Step S106), the measurement unit 18c reads out each area, and measures the read delay and the read transfer rate (Step S107). In addition, the measurement part 18c repeats the determination process of step S106, when it determines with predetermined time not having passed (step S106, No).

判定部18dは、第1のデータの読出し性能が第1の参考値未満であり、かつ、第2のデータの読出し性能が第2の参考値以上であるか否かを判定する。言い換えると、判定部18dは、第1のデータの読出し性能だけが参考値未満であるか否かを判定する(ステップS108)。ここで、判定部18dは、第1のデータの読出し性能だけが参考値未満ではないと判定した場合(ステップS108、No)、KSMが有効化されているか否かは現時点では不明であると判定する(ステップS109)。この場合、計測用のVM実行部18では、測定部18cがステップS105に移行して、待機時間に入る。   The determination unit 18d determines whether or not the read performance of the first data is less than the first reference value and the read performance of the second data is equal to or higher than the second reference value. In other words, the determination unit 18d determines whether only the read performance of the first data is less than the reference value (step S108). Here, when the determination unit 18d determines that only the first data read performance is not less than the reference value (step S108, No), it is determined that it is currently unknown whether or not KSM is enabled. (Step S109). In this case, in the VM execution unit 18 for measurement, the measurement unit 18c moves to step S105 and enters a standby time.

一方、判定部18dは、第1のデータの読出し性能だけが参考値未満であると判定した場合(ステップS108、Yes)、KSMが有効化されていると判定する(ステップS110)。VM実行部18は、ステップS110の後、検出処理を終了する。なお、VM実行部18は、KSMが有効化されていると判定した場合、利用者に対してKSMが有効化されている旨を通知するようにしてもよい。   On the other hand, when the determination unit 18d determines that only the read performance of the first data is less than the reference value (Yes in step S108), the determination unit 18d determines that KSM is activated (step S110). The VM execution unit 18 ends the detection process after step S110. When the VM execution unit 18 determines that KSM is enabled, the VM execution unit 18 may notify the user that KSM is enabled.

また、仮にKSMが有効化されていない場合でも、第1のデータがページアウトされ、第2のデータがページアウトされない場合が偶然的に生じる場合がある。かかる場合、判定部18dは、第1のデータの読出し性能だけが参考値未満であると判定する。すなわち、判定部18dは、誤判定を行う場合がある。このようなことから、VM実行部18は、第1のデータの読出し性能だけが参考値未満であると判定部18dによって判定された場合(ステップS108、Yes)、検出処理を終了せずに、ステップS105に移行して検出処理を繰り返すようにしてもよい。かかる場合、VM実行部18は、例えば、第1のデータの読出し性能だけが参考値未満であると判定された後に、所定の回数検出処理を繰り返し実行し、第1のデータの読出し性能だけが参考値未満であると連続して判定された場合に、KSMが有効化されていると判定する。これにより、VM実行部18は、偶然生じる誤判定を防止し、より正確に、KSMが有効化されているか否かを判定することができる。   Even if KSM is not activated, the first data may be paged out and the second data may not be paged out. In such a case, the determination unit 18d determines that only the read performance of the first data is less than the reference value. That is, the determination unit 18d may make an erroneous determination. For this reason, when the determination unit 18d determines that only the first data read performance is less than the reference value (step S108, Yes), the VM execution unit 18 does not end the detection process. You may make it transfer to step S105 and repeat a detection process. In this case, for example, after it is determined that only the read performance of the first data is less than the reference value, the VM execution unit 18 repeatedly executes the detection process a predetermined number of times, and only the read performance of the first data is obtained. If it is continuously determined that the value is less than the reference value, it is determined that KSM is activated. As a result, the VM execution unit 18 can prevent accidental misjudgment and more accurately determine whether or not KSM is activated.

上述したように、第1の実施形態に係る情報処理装置10において、VM実行部18は、物理メモリ内に計測用領域を確保し、計測用領域の第1の領域に対して乱数列を第1のデータとして書き込むとともに、計測用領域の第2の領域に対して固定文字列を第2のデータとして書き込む。また、VM実行部18は、計測用領域から第1のデータ及び第2のデータの読出しを所定の間隔で行って、第1のデータの読出し性能及び第2のデータの読出し性能を測定する。そして、VM実行部18は、第1のデータの読出し性能及び第2のデータの読出し性能に基づいて、同一のページが前記物理メモリにおいて共有されているか否かを判定する。例えば、VM実行部18は、第1のデータの読出し性能が第1の参考値未満であり、かつ、第2のデータの読出し性能が第2の参考値以上である場合に、同一のページが物理メモリにおいて共有されていると判定する。これにより、第1の実施形態に係る情報処理装置10は、内容が同一である複数のページが一つにまとめられているか否かを判定することができる。言い換えると、第1の実施形態に係る情報処理装置10は、KSMが有効化されているか否かを判定することができる。   As described above, in the information processing apparatus 10 according to the first embodiment, the VM execution unit 18 secures a measurement area in the physical memory, and stores a random number sequence for the first area of the measurement area. 1 is written, and a fixed character string is written as second data to the second area of the measurement area. In addition, the VM execution unit 18 reads the first data and the second data from the measurement area at a predetermined interval, and measures the read performance of the first data and the read performance of the second data. Then, the VM execution unit 18 determines whether or not the same page is shared in the physical memory based on the read performance of the first data and the read performance of the second data. For example, if the read performance of the first data is less than the first reference value and the read performance of the second data is greater than or equal to the second reference value, the VM execution unit 18 displays the same page. It is determined that the physical memory is shared. Thereby, the information processing apparatus 10 according to the first embodiment can determine whether or not a plurality of pages having the same contents are combined into one. In other words, the information processing apparatus 10 according to the first embodiment can determine whether or not KSM is activated.

また、KSMが有効化されている場合、VMが起動後、各VMがさまざまな処理を実行することで、内容が同一であるページが変更され、変更されたページに対して新しいメモリ領域が割り当てられる。すなわち、KSMが有効化されている場合、VMの起動時間に従って、共有されるメモリ領域が減少する場合がある。ここで、従来の技術では、ホストOSやハイパーバイザ等のサービス提供システムの管理主体が、仮想マシンの利用者と異なる場合、仮想マシンの利用者は、KSMが有効になっているか否かを識別することができない。かかる場合、仮想マシンの利用者は、空きメモリが逼迫してリソースが不足しても、VMの性能低下を予測することができなかった。   In addition, when KSM is enabled, each VM executes various processes after the VM is started, so that a page having the same content is changed, and a new memory area is allocated to the changed page. It is done. That is, when KSM is enabled, the shared memory area may decrease according to the VM startup time. Here, in the conventional technology, when the management subject of the service providing system such as the host OS or the hypervisor is different from the user of the virtual machine, the user of the virtual machine identifies whether or not KSM is enabled. Can not do it. In such a case, the user of the virtual machine could not predict the VM performance degradation even if the free memory is tight and the resources are insufficient.

具体的には、リソースが不足した状態時では、CPUリソースは、複数のVM間で取り合いになり、通常時よりもVMの処理性能が低下する。さらに、深刻なリソースの不足時には、CPUが時分割で共有されているため、頻繁に発生する切り替えのオーバーヘッドにより、VMの処理性能が更に低下する。また、リソースが不足した状態において、CPUの時分割共有に対応したVMの切り替え頻度が上がるに従って、スワップ領域と物理メモリとの間のコピー頻度が上がる。また、スワップ領域は、データの読出し及びデータの書込みが物理メモリよりも低速であるので、VMから見たメモリアクセス時間は、VMの切り替え頻度に伴って長くなる。すなわち、VMから見たメモリアクセス速度が大幅に低下する。   Specifically, when resources are insufficient, CPU resources are shared among a plurality of VMs, and VM processing performance is lower than normal. Further, when the resources are seriously short, since the CPU is shared in a time division manner, the processing performance of the VM is further deteriorated due to the frequently occurring switching overhead. Further, in a state where resources are insufficient, the frequency of copying between the swap area and the physical memory increases as the switching frequency of the VM corresponding to the time division sharing of the CPU increases. In the swap area, data reading and data writing are slower than the physical memory. Therefore, the memory access time viewed from the VM becomes longer with the switching frequency of the VM. That is, the memory access speed viewed from the VM is greatly reduced.

一方、第1の実施形態に係る情報処理装置10では、KSMが有効化されているか否かを判定することが可能である。これにより、第1のVMの利用者は、将来メモリ不足になる可能性を予測することが可能となる。さらに、第1のVMの利用者は、リソースの不足時には、パフォーマンスが低下した状態でVMを使用し続けることを回避することができる。   On the other hand, in the information processing apparatus 10 according to the first embodiment, it is possible to determine whether or not KSM is activated. As a result, the user of the first VM can predict the possibility of a memory shortage in the future. Further, the user of the first VM can avoid continuing to use the VM in a state where the performance is deteriorated when the resource is insufficient.

(第2の実施形態)
さて、これまで本発明の実施形態について説明したが、本発明は上述した実施形態以外にも、その他の実施形態にて実施されてもよい。そこで、以下では、その他の実施形態を示す。
(Second Embodiment)
Although the embodiments of the present invention have been described so far, the present invention may be implemented in other embodiments besides the above-described embodiments. Therefore, other embodiments will be described below.

(システム構成)
また、第1の実施形態では、IaaS事業者と契約したサービスの利用者である場合を説明したが、これに限定されるものではない。例えば、IaaS事業者と契約する前に、試験的にサーバ装置を利用する場合にも利用可能である。かかる場合、利用者は、例えば、複数のIaaS事業者が提供するサービスについてのKSMが有効化されているか否かを判定することで、最適なIaaS事業者を選定することができる。
(System configuration)
In the first embodiment, the case where the user is a service user contracted with an IaaS provider has been described. However, the present invention is not limited to this. For example, it is also possible to use the server device on a trial basis before making a contract with an IaaS provider. In such a case, for example, the user can select an optimum IaaS provider by determining whether KSM for services provided by a plurality of IaaS providers is enabled.

また、確保部18bは、例えば、2GBを計測用領域として確保した場合、2GBを2等分し、一方の1GBを第1のデータの書込み領域、他方の1GBを第2のデータの書込み領域に割当てるものとして説明したがこれに限定されるものではない。例えば、確保部18bは、2GBを計測用領域として確保した場合、2GBを4等分してもよい。かかる場合、確保部18bは、2つの0.5GBのメモリ領域各々に異なる第1のデータ(第1のデータA及び第1のデータBとする)を書込み、2つの0.5GBのメモリ領域各々に異なる第2のデータ(第2のデータA及び第2のデータBとする)を書き込む。そして、測定部18cは、読出し性能を測定するごとに、4つの領域からデータを読出してもよく、或いは、2つの領域からデータを読出してもよい。2つの領域からデータを読み出す場合、測定部18cは、例えば、第1のデータA及び第2のデータAの読み出しと、第1のデータB及び第2のデータBの読み出しとを交互に実行する。   Further, for example, when 2 GB is secured as a measurement area, the securing unit 18 b divides 2 GB into two equal parts, one 1 GB is used as a first data writing area, and the other 1 GB is used as a second data writing area. Although described as what is allocated, it is not limited to this. For example, when 2 GB is secured as the measurement area, the securing unit 18 b may divide 2 GB into four equal parts. In this case, the securing unit 18b writes different first data (referred to as first data A and first data B) to each of the two 0.5 GB memory areas, and each of the two 0.5 GB memory areas. Are written with different second data (referred to as second data A and second data B). Then, each time the reading performance is measured, the measuring unit 18c may read data from four areas, or may read data from two areas. When reading data from two areas, for example, the measurement unit 18c alternately executes reading of the first data A and the second data A and reading of the first data B and the second data B. .

また、第1の実施形態において、測定部18cは、待機時間を一定の間隔であるとし、この待機時間が経過後に読み出し性能を測定するものとして説明したがこれに限定されるものではない。例えば、測定部18cは、第1のデータの読出し性能及び第2のデータの読出し性能を測定後の待機時間を、読出し性能の測定回数に応じて指数関数的に長くするようにしてもよい。言い換えると、測定部18cは、所定の間隔を、読出し性能の測定回数に応じて指数関数的に長くする。図7は、第2の実施形態に係るVM実行部18による処理動作を説明するための図である。図7の横軸はメモリ空間を示し、縦軸は時間を示す。   In the first embodiment, the measurement unit 18c has been described as assuming that the standby time is a constant interval, and the read performance is measured after the standby time has elapsed. However, the measurement unit 18c is not limited thereto. For example, the measurement unit 18c may increase the standby time after measuring the read performance of the first data and the read performance of the second data exponentially according to the number of times of measurement of the read performance. In other words, the measurement unit 18c lengthens the predetermined interval exponentially according to the number of reading performance measurements. FIG. 7 is a diagram for explaining the processing operation performed by the VM execution unit 18 according to the second embodiment. The horizontal axis in FIG. 7 indicates the memory space, and the vertical axis indicates time.

図7に示すように、VM実行部18において、確保部18bは、領域Aに固定文字列を書き込む(ステップS31)。続いて、測定部18cは、領域Aに書き込まれた固定文字列を読出し、読出し速度を測定する(ステップS32)。また、確保部18bは、領域Bに乱数列を書き込む(ステップS33)。続いて、測定部18cは、領域Bに書き込まれた乱数列を読出し、読出し速度を測定する(ステップS34)。そして、測定部18cは、アクセスを行わない待機時間にはいる(ステップS35)。なお、ここでの待機時間を1分(=2分)とする。 As shown in FIG. 7, in the VM execution unit 18, the securing unit 18b writes a fixed character string in the area A (step S31). Subsequently, the measuring unit 18c reads the fixed character string written in the area A and measures the reading speed (step S32). Further, the securing unit 18b writes a random number sequence in the area B (step S33). Subsequently, the measuring unit 18c reads the random number sequence written in the region B and measures the reading speed (step S34). Then, the measurement unit 18c enters a standby time during which access is not performed (step S35). It is assumed here 1 minute waiting time (= 2 0 min).

測定部18cは、待機時間が経過後、領域Aに書き込まれた固定文字列を読出し、読出し速度を測定し(ステップS36)、領域Bに書き込まれた乱数列を読出し、読出し速度を測定する(ステップS37)。そして、判定部18dは、測定部18cが測定した読出し速度に基づいて、KSMが有効化されているか否かを判定する。ここで、判定部18dによりKSMが有効化されていないと判定された場合、測定部18cは、アクセスを行わない待機時間にはいる(ステップS38)。なお、ここでの待機時間を2分(=2分)とする。 After the standby time elapses, the measuring unit 18c reads the fixed character string written in the area A, measures the reading speed (step S36), reads the random number sequence written in the area B, and measures the reading speed ( Step S37). Then, the determination unit 18d determines whether or not KSM is enabled based on the reading speed measured by the measurement unit 18c. Here, when the determination unit 18d determines that KSM is not enabled, the measurement unit 18c enters a standby time during which access is not performed (step S38). The waiting time here is 2 minutes (= 2 1 minutes).

測定部18cは、待機時間が経過後、領域Aに書き込まれた固定文字列を読出し、読出し速度を測定し(ステップS39)、領域Bに書き込まれた乱数列を読出し、読出し速度を測定する(ステップS40)。そして、判定部18dは、測定部18cが測定した読出し速度に基づいて、KSMが有効化されているか否かを判定する。ここで、判定部18dによりKSMが有効化されていないと判定された場合、測定部18cは、アクセスを行わない待機時間にはいる(ステップS41)。なお、ここでの待機時間を4分(=2分)とする。 After the standby time elapses, the measuring unit 18c reads the fixed character string written in the area A, measures the reading speed (step S39), reads the random number sequence written in the area B, and measures the reading speed ( Step S40). Then, the determination unit 18d determines whether or not KSM is enabled based on the reading speed measured by the measurement unit 18c. Here, when the determination unit 18d determines that KSM is not enabled, the measurement unit 18c enters a standby time during which access is not performed (step S41). The waiting time here is 4 minutes (= 22 minutes).

測定部18cは、待機時間が経過後、領域Aに書き込まれた固定文字列を読出し、読出し速度を測定し(ステップS42)、領域Bに書き込まれた乱数列を読出し、読出し速度を測定する(ステップS43)。そして、判定部18dは、測定部18cが測定した読出し速度に基づいて、KSMが有効化されているか否かを判定する。ここで、判定部18dによりKSMが有効化されていないと判定された場合、測定部18cは、アクセスを行わない待機時間にはいる。かかる場合、待機時間は8分(=2分)となる。このように、測定部18cは、第1のデータの読出し性能及び第2のデータの読出し性能を測定後の待機時間を、読出し性能の測定回数を重ねるに応じて指数関数的に長くする。このように図7に示す例では、参考値を測定後からカウントした測定回数をn回とした場合、待機時間は、2n−1分となる。 After the standby time elapses, the measuring unit 18c reads the fixed character string written in the area A, measures the reading speed (step S42), reads the random number sequence written in the area B, and measures the reading speed (step S42). Step S43). Then, the determination unit 18d determines whether or not KSM is enabled based on the reading speed measured by the measurement unit 18c. Here, when the determination unit 18d determines that KSM is not enabled, the measurement unit 18c enters a standby time during which access is not performed. In such a case, the standby time is 8 minutes (= 23 minutes). As described above, the measuring unit 18c increases the standby time after measuring the read performance of the first data and the read performance of the second data exponentially as the number of times of measurement of the read performance is repeated. As described above, in the example illustrated in FIG. 7, when the number of measurements counted after measuring the reference value is n, the standby time is 2 n−1 minutes.

また、測定部18cが、読出し性能の測定回数を重ねるに応じて指数関数的に待機時間を長くすることにより、読出し性能を測定することによる第1のデータ及び第2のデータに対するアクセス頻度を低下させることができる。これにより、第1のデータのページアウトが生じる確率が高くなり、より正確に、KSMが有効化されているか否かを判定することができる。   Further, the measurement unit 18c decreases the access frequency to the first data and the second data by measuring the read performance by increasing the standby time exponentially as the read performance measurement is repeated. Can be made. This increases the probability that the first data will be paged out, and more accurately determines whether or not KSM is enabled.

また、判定部18dは、読出し転送速度が測定されている場合、この読出し転送速度を用いて、KSMが有効化されているか否かを判定してもよい。例えば、KSMが有効化されていない場合、1GBのメモリ領域からの読出し転送にかかる時間が例えば5(秒)であるとする。ここで、4KB単位で同じページを繰り返すように1GBのメモリ領域に第2のデータが書き込まれていた場合、1ページ分のデータを転送するだけで済むので読出し転送にかかる時間が、例えば10(ミリ秒)と有意に速くなる。このため、判定部18dは、第2のデータの読出し転送速度が、第2の参考値を有意に上回る場合、KSMが有効化されていると判定する。また、確保部18bが計測用領域を等分して第1のデータと第2のデータとを書き込むので、第1の参考値と第2の参考値とは、概ね近似した値となる。このため、判定部18dは、第2のデータの読出し転送速度が、第1のデータの読出し転送速度を有意に上回る場合にも、KSMが有効化されていると判定することが可能である。   Further, when the read transfer rate is measured, the determination unit 18d may determine whether or not KSM is enabled using the read transfer rate. For example, when KSM is not activated, it is assumed that the time required for read transfer from a 1 GB memory area is 5 (seconds), for example. Here, when the second data is written in the 1 GB memory area so that the same page is repeated in units of 4 KB, it is only necessary to transfer the data for one page. Milliseconds). For this reason, the determination unit 18d determines that KSM is enabled when the read transfer rate of the second data is significantly higher than the second reference value. In addition, since the securing unit 18b equally divides the measurement area and writes the first data and the second data, the first reference value and the second reference value are approximately approximate values. Therefore, the determination unit 18d can determine that KSM is enabled even when the read transfer rate of the second data is significantly higher than the read transfer rate of the first data.

なお、測定部18cは、第1の参考値と第2の参考値とが概ね近似した値となる場合、測定した第1のデータの読出し性能及び第2のデータの読出し性能の平均値に基づいて第1の参考値及び第2の参考値を決定するようにしてもよい。かかる場合、第1の参考値と第2の参考値とが同一となる。   When the first reference value and the second reference value are approximately approximate, the measurement unit 18c is based on the measured average value of the first data read performance and the second data read performance. Thus, the first reference value and the second reference value may be determined. In such a case, the first reference value and the second reference value are the same.

また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については(例えば、図1〜図7)、特記する場合を除いて任意に変更することができる。   Also, among the processes described in this embodiment, all or part of the processes described as being performed automatically can be performed manually, or the processes described as being performed manually can be performed. All or a part can be automatically performed by a known method. In addition, the processing procedures, control procedures, specific names, and information including various data and parameters shown in the above-mentioned documents and drawings (for example, FIGS. 1 to 7) are arbitrary unless otherwise specified. Can be changed.

また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。   Further, each component of each illustrated apparatus is functionally conceptual, and does not necessarily need to be physically configured as illustrated. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or a part of the distribution / integration may be functionally or physically distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured.

(プログラム)
図8は、コンピュータシステムによる処理を実行するための検出プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。図8に例示するように、コンピュータ3000は、例えば、メモリ3010と、CPU3020と、ネットワークインタフェース3070とを有する。コンピュータ3000の各部はバス3100によって接続される。
(program)
FIG. 8 is a diagram showing that information processing by a detection program for executing processing by a computer system is specifically realized using a computer. As illustrated in FIG. 8, the computer 3000 includes, for example, a memory 3010, a CPU 3020, and a network interface 3070. Each part of the computer 3000 is connected by a bus 3100.

メモリ3010は、図8に例示するように、ROM3011及びRAM3012を含む。ROM3011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。   The memory 3010 includes a ROM 3011 and a RAM 3012 as illustrated in FIG. The ROM 3011 stores a boot program such as BIOS (Basic Input Output System).

ここで、図8に例示するように、ハードディスクドライブ3080は、例えば、OS3081、アプリケーションプログラム3082、プログラムモジュール3083、プログラムデータ3084を記憶する。すなわち、開示の技術に係る検出プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール3083として、例えばハードディスクドライブ3080に記憶される。具体的には、上記実施形態で説明したVM実行部18の各部と同様の情報処理を実行する手順各々が記述されたプログラムモジュール3083が、ハードディスクドライブ3080に記憶される。   Here, as illustrated in FIG. 8, the hard disk drive 3080 stores, for example, an OS 3081, an application program 3082, a program module 3083, and program data 3084. In other words, the detection program according to the disclosed technology is stored in, for example, the hard disk drive 3080 as the program module 3083 in which instructions executed by the computer are described. More specifically, the hard disk drive 3080 stores a program module 3083 in which each procedure for executing the same information processing as each unit of the VM execution unit 18 described in the above embodiment is described.

また、検出プログラムによる情報処理に用いられるデータは、プログラムデータ3084として、例えばハードディスクドライブ3080に記憶される。そして、CPU3020が、ハードディスクドライブ3080に記憶されたプログラムモジュール3083やプログラムデータ3084を必要に応じてRAM3012に読み出し、各種の手順を実行する。   Data used for information processing by the detection program is stored as program data 3084 in, for example, the hard disk drive 3080. The CPU 3020 reads the program module 3083 and program data 3084 stored in the hard disk drive 3080 to the RAM 3012 as necessary, and executes various procedures.

なお、検出プログラムに係るプログラムモジュール3083やプログラムデータ3084は、ハードディスクドライブ3080に記憶される場合に限られない。例えば、プログラムモジュール3083やプログラムデータ3084は、着脱可能な記憶媒体に記憶されても良い。この場合、CPU3020は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、検出プログラムに係るプログラムモジュール3083やプログラムデータ3084は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されても良い。この場合、CPU3020は、ネットワークインタフェースを介して他のコンピュータにアクセスすることで各種データを読み出す。   Note that the program module 3083 and the program data 3084 related to the detection program are not limited to being stored in the hard disk drive 3080. For example, the program module 3083 and the program data 3084 may be stored in a removable storage medium. In this case, the CPU 3020 reads data via a removable storage medium such as a disk drive. Similarly, the program module 3083 and the program data 3084 related to the detection program may be stored in another computer connected via a network (LAN (Local Area Network), WAN (Wide Area Network), etc.). . In this case, the CPU 3020 reads various data by accessing another computer via the network interface.

(その他)
なお、本実施形態で説明した検出プログラムは、インターネットなどのネットワークを介して配布することができる。また、検出プログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
(Other)
Note that the detection program described in the present embodiment can be distributed via a network such as the Internet. The detection program can also be executed by being recorded on a computer-readable recording medium such as a hard disk, a flexible disk (FD), a CD-ROM, an MO, or a DVD, and being read from the recording medium by the computer.

1、1a、1b クライアント端末
10 情報処理装置
11 通信制御部
12 スワップ領域
13 記憶部
13a 物理メモリ管理DB
13b ページアウト管理DB
14 制御部
14a VM管理部
14b 物理メモリ制御部
14c ページング制御部
14d KSM制御部
15 仮想領域
16、17、18 VM実行部
18a 参考値記憶部
18b 確保部
18c 測定部
18d 判定部
1, 1a, 1b Client terminal 10 Information processing device 11 Communication control unit 12 Swap area 13 Storage unit 13a Physical memory management DB
13b Page-out management DB
14 control unit 14a VM management unit 14b physical memory control unit 14c paging control unit 14d KSM control unit 15 virtual region 16, 17, 18 VM execution unit 18a reference value storage unit 18b securing unit 18c measurement unit 18d determination unit

Claims (6)

複数の仮想マシンを実現し、各仮想マシンのメモリに物理メモリの一部を割当てる情報処理装置において、
第1の仮想マシンは、
前記物理メモリ内に計測用領域を確保し、前記計測用領域の第1の領域に対して乱数列を第1のデータとして書き込むとともに、前記計測用領域の第2の領域に対して固定文字列を第2のデータとして書き込む確保部と、
前記計測用領域から前記第1のデータ及び前記第2のデータの読出しを所定の間隔で行って、前記第1のデータの読出し性能及び前記第2のデータの読出し性能を測定する測定部と、
前記第1のデータの読出し性能及び前記第2のデータの読出し性能に基づいて、同一のページが前記物理メモリにおいて共有されているか否かを判定する判定部と
を有することを特徴とする情報処理装置。
In an information processing apparatus that realizes a plurality of virtual machines and allocates a part of physical memory to the memory of each virtual machine,
The first virtual machine is
A measurement area is secured in the physical memory, a random number sequence is written as first data to the first area of the measurement area, and a fixed character string is written to the second area of the measurement area A securing unit for writing as second data,
A measurement unit that reads the first data and the second data from the measurement area at predetermined intervals, and measures the read performance of the first data and the read performance of the second data;
A determination unit that determines whether or not the same page is shared in the physical memory based on the read performance of the first data and the read performance of the second data. apparatus.
前記判定部は、前記第1のデータの読出し性能が第1の参考値未満であり、かつ、前記第2のデータの読出し性能が第2の参考値以上である場合に、同一のページが前記物理メモリにおいて共有されていると判定することを特徴とする請求項1に記載の情報処理装置。   The determination unit has the same page when the first data read performance is less than a first reference value and the second data read performance is equal to or higher than a second reference value. The information processing apparatus according to claim 1, wherein the information processing apparatus determines that the physical memory is shared. 前記測定部は、データの読出し性能として読出し転送速度を測定し、
前記判定部は、前記第2のデータの読出し転送速度が、前記第1のデータの読出し転送速度を有意に上回る場合に、同一のページが前記物理メモリにおいて共有されていると判定する
ことを特徴とする請求項1又は2に記載の情報処理装置。
The measurement unit measures the read transfer rate as the data read performance,
The determination unit determines that the same page is shared in the physical memory when a read transfer rate of the second data significantly exceeds a read transfer rate of the first data. The information processing apparatus according to claim 1 or 2.
前記測定部は、前記所定の間隔を、読出し性能の測定回数に応じて指数関数的に長くすることを特徴とする請求項1〜3のいずれか一つに記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the measurement unit lengthens the predetermined interval exponentially according to the number of reading performance measurements. 前記測定部は、前記確保部によって前記第1のデータ及び前記第2のデータが書き込まれたときに、前記第1のデータの読出し性能及び前記第2のデータの読出し性能を測定し、測定した前記第1のデータの読出し性能に基づいて前記第1の参考値を決定するとともに、前記第2のデータの読出し性能に基づいて前記第2の参考値を決定し、当該第1の参考値及び第2の参考値を記憶部に設定することを特徴とする請求項に記載の情報処理装置。 The measuring unit measures and measures the reading performance of the first data and the reading performance of the second data when the first data and the second data are written by the securing unit. The first reference value is determined based on the read performance of the first data, and the second reference value is determined based on the read performance of the second data, and the first reference value and The information processing apparatus according to claim 2 , wherein the second reference value is set in the storage unit. 複数の仮想マシンを実現し、各仮想マシンのメモリに物理メモリの一部を割当てる情報処理装置で実行される検出方法であって、
第1の仮想マシンが、
前記物理メモリ内に計測用領域を確保し、前記計測用領域の第1の領域に対して乱数列を第1のデータとして書き込むとともに、前記計測用領域の第2の領域に対して固定文字列を第2のデータとして書き込む確保工程と、
前記計測用領域から前記第1のデータ及び前記第2のデータの読出しを所定の間隔で行って、前記第1のデータの読出し性能及び前記第2のデータの読出し性能を測定する測定工程と、
前記第1のデータの読出し性能及び前記第2のデータの読出し性能に基づいて、同一のページが前記物理メモリにおいて共有されているか否かを判定する判定工程と
を含んだことを特徴とする検出方法。
A detection method executed by an information processing apparatus that realizes a plurality of virtual machines and allocates a part of physical memory to the memory of each virtual machine,
The first virtual machine is
A measurement area is secured in the physical memory, a random number sequence is written as first data to the first area of the measurement area, and a fixed character string is written to the second area of the measurement area Securing process for writing as second data;
A measurement step of reading the first data and the second data from the measurement area at a predetermined interval to measure the read performance of the first data and the read performance of the second data;
And a determination step for determining whether the same page is shared in the physical memory based on the read performance of the first data and the read performance of the second data. Method.
JP2013117749A 2013-06-04 2013-06-04 Information processing apparatus and detection method Active JP5563126B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013117749A JP5563126B1 (en) 2013-06-04 2013-06-04 Information processing apparatus and detection method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013117749A JP5563126B1 (en) 2013-06-04 2013-06-04 Information processing apparatus and detection method

Publications (2)

Publication Number Publication Date
JP5563126B1 true JP5563126B1 (en) 2014-07-30
JP2014235637A JP2014235637A (en) 2014-12-15

Family

ID=51417048

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013117749A Active JP5563126B1 (en) 2013-06-04 2013-06-04 Information processing apparatus and detection method

Country Status (1)

Country Link
JP (1) JP5563126B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10203912B2 (en) 2015-07-22 2019-02-12 Samsung Electronics Co., Ltd. Storage device for supporting virtual machine, storage system including the storage device, and method of operating the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010033206A (en) * 2008-07-28 2010-02-12 Fujitsu Ltd Virtual machine monitor device, program, and memory sharing management method between virtual machines
US20120137045A1 (en) * 2010-11-29 2012-05-31 International Business Machines Corporation Efficiently determining identical pieces of memory used by virtual machines

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010033206A (en) * 2008-07-28 2010-02-12 Fujitsu Ltd Virtual machine monitor device, program, and memory sharing management method between virtual machines
US20120137045A1 (en) * 2010-11-29 2012-05-31 International Business Machines Corporation Efficiently determining identical pieces of memory used by virtual machines

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSNG201200721020; 中尾 司ピエール TSUKASAPIERRE NAKAO: 'Linux仮想化環境におけるメモリコミットの分析 An observation of the memory commitment on Linux V' 情報処理学会研究報告 2012(平成24)年度▲3▼ [CD-ROM] , 20120914, 第2頁右欄, 一般社団法人情報処理学会 *
JPN6014011905; 中尾 司ピエール TSUKASAPIERRE NAKAO: 'Linux仮想化環境におけるメモリコミットの分析 An observation of the memory commitment on Linux V' 情報処理学会研究報告 2012(平成24)年度▲3▼ [CD-ROM] , 20120914, 第2頁右欄, 一般社団法人情報処理学会 *
JPN6014011905; 中尾 司ピエール: 'Linux仮想化環境におけるメモリコミットの分析' 情報処理学会研究報告 2012(平成24)年度3 [CD-ROM] , 20120914, 第2頁右欄, 一般社団法人情報処理学会 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10203912B2 (en) 2015-07-22 2019-02-12 Samsung Electronics Co., Ltd. Storage device for supporting virtual machine, storage system including the storage device, and method of operating the same

Also Published As

Publication number Publication date
JP2014235637A (en) 2014-12-15

Similar Documents

Publication Publication Date Title
US9361218B2 (en) Method of allocating referenced memory pages from a free list
US8261267B2 (en) Virtual machine monitor having mapping data generator for mapping virtual page of the virtual memory to a physical memory
US11340945B2 (en) Memory congestion aware NUMA management
US10318325B2 (en) Host-side cache migration
US9052990B2 (en) Techniques for managing pinned memory
US9164899B2 (en) Administering thermal distribution among memory modules of a computing system
US20070073993A1 (en) Memory allocation in a multi-node computer
CN108475201B (en) Data acquisition method in virtual machine starting process and cloud computing system
JP2014206884A (en) Information processor, information processing method, and program
US20220058044A1 (en) Computer system and management method
EP3304294A1 (en) Method and system for allocating resources for virtual hosts
US11188365B2 (en) Memory overcommit by speculative fault
US9542100B2 (en) Management of memory pages
US20210357258A1 (en) Method, device and medium for allocating resource based on type of pci device
US20160239428A1 (en) Placement engine for a block device
US10552374B2 (en) Minimizing file creation and access times using skip optimization
US10817322B2 (en) Virtual machine management apparatus and virtual machine management method
CN114442910B (en) Method for managing storage system, electronic device and computer readable medium
CN107329798B (en) Data replication method and device and virtualization system
JP5563126B1 (en) Information processing apparatus and detection method
WO2015161804A1 (en) Cache partitioning method and device
AU2021325335B2 (en) Minimizing delay while migrating direct memory access (dma) mapped pages
US10228859B2 (en) Efficiency in active memory sharing
JP2014157476A (en) Measurement device and measurement method
US11442668B2 (en) Prioritizing volume accesses in multi-volume storage device based on execution path of a service

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140513

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140610

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140611

R150 Certificate of patent or registration of utility model

Ref document number: 5563126

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150