WO2021019674A1 - キャッシュ使用指標算出装置、キャッシュ使用指標算出方法、および、キャッシュ使用指標算出プログラム - Google Patents

キャッシュ使用指標算出装置、キャッシュ使用指標算出方法、および、キャッシュ使用指標算出プログラム Download PDF

Info

Publication number
WO2021019674A1
WO2021019674A1 PCT/JP2019/029789 JP2019029789W WO2021019674A1 WO 2021019674 A1 WO2021019674 A1 WO 2021019674A1 JP 2019029789 W JP2019029789 W JP 2019029789W WO 2021019674 A1 WO2021019674 A1 WO 2021019674A1
Authority
WO
WIPO (PCT)
Prior art keywords
cache
application
usage
sensitivity
memory
Prior art date
Application number
PCT/JP2019/029789
Other languages
English (en)
French (fr)
Inventor
中村 哲朗
高田 直樹
Original Assignee
日本電信電話株式会社
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 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to JP2021536509A priority Critical patent/JP7226557B2/ja
Priority to PCT/JP2019/029789 priority patent/WO2021019674A1/ja
Priority to US17/626,862 priority patent/US11822476B2/en
Publication of WO2021019674A1 publication Critical patent/WO2021019674A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to a cache usage index calculation device, a cache usage index calculation method, and a cache usage index calculation program.
  • the cache memory is a high-speed, small-capacity memory used to hide the delay of the main memory when the central processing unit (CPU: Central Processing Unit) accesses data and instructions.
  • Cache memory is important for computers to speed up application processing.
  • FIG. 9 is a graph showing the relationship between the cache occupancy and the performance of each application. Note that FIG. 9 is a citation of the graph published in Non-Patent Document 1. The horizontal axis of the graph shows cache occupancy, and the vertical axis of the graph shows normalized performance. The diamond plot is for Povray. The square plot is for Bzip2. The triangular plot is a plot for MCF. The cross-marked plots are for Bwaves. As shown in this graph, as the cache occupancy decreases, the number of cache misses increases. In Bwaves, the performance is reduced by about 60% when the cache occupancy is 0MB compared to when the cache occupancy is 15MB.
  • Cache Allocation Technology is a function that allows the CPU to limit and control the use of the final level cache for each application.
  • FIG. 10 is a diagram showing an example of 16-bit Cache Allocation Technology. As described in Non-Patent Document 2, from the E5 2600 v3 product family of Intel Xeon® processors released in September 2014, it is a function that can limit and control the use of the final level cache for each application. A Cache Allocation Technology is implemented.
  • the level of Class of Service can be set for each application process, and the range of the final level cache used for each CLOS is controlled by the capacity mask.
  • CLOS [0] shows that four bits from 15 bits to 12 bits are set and only 1/4 of the final level cache is used. It should be noted that only CLOS [0] has a 1 set between 15 bits and 12 bits, indicating that the application related to CLOS [0] occupies the area corresponding to these bits. Each bit of CLOS [n] corresponds to each area of the final level cache.
  • CLOS [1] shows that 4 bits are set from 11 bits to 8 bits, and only 1/4 of the final level cache is used. It should be noted that only CLOS [1] has 1 set from 11 bits to 8 bits, indicating that the application related to CLOS [1] occupies the area corresponding to these bits.
  • CLOS [2] shows that 6 bits are set from 7 bits to 2 bits, and only 3/8 of the final level cache is used.
  • 1 is also set for CLOS [3] from 7 bits to 2 bits, indicating that the area corresponding to these bits is shared by the applications related to CLOS [2] and CLOS [3]. ..
  • CLOS [3] shows that 8 bits are set from 7 bits to 0 bits, and only 1/2 of the final level cache is used. In addition, from 7 bits to 2 bits, 1 is also set in CLOS [3], and the area corresponding to these bits is shared by the application related to CLOS [2] and the application related to CLOS [3]. Shown. Only CLOS [3] has a 1 set between 1 bit and 0 bit, indicating that the application related to CLOS [3] occupies the area corresponding to these bits.
  • the degree to which the performance of multiple operations deteriorates compared to the performance of the application when it operates alone is called the cache sensitivity of this application.
  • the inventors considered a policy of allocating a large amount of cache memory to applications with high cache sensitivity. As a result, the performance of the application can be improved.
  • the degree to which the performance of the other application 11 deteriorates when multiple applications are operated is called the cache pollution degree of this application.
  • the inventors considered a policy of allocating less cache memory to applications with high cache pollution. As a result, it is possible to suppress the influence on other applications when the application operates.
  • an object of the present invention is to calculate the cache sensitivity and the cache pollution degree from the cache usage status in each application.
  • the cache usage index calculation device of the present invention is used.
  • the cache sensitivity and the cache pollution degree can be calculated from the cache usage status in each application.
  • FIG. 7 is a diagram showing the status of each cache when a plurality of applications are simultaneously run on the physical host.
  • FIG. 8 is a diagram showing the status of each cache when a single application is run on the physical host.
  • the physical host 3 includes CPU (Central Processing Unit) cores 31a to 31d, primary cache memories 32a to 32d, secondary cache memories 33a to 33d, tertiary cache memory 34, and main memory 35. Will be done.
  • the main memory 35 is a RAM (Random Access Memory) for reading and writing data.
  • the primary cache memories 32a to 32d, the secondary cache memories 33a to 33d, and the tertiary cache memory 34 are storage areas that can be accessed at a higher speed than the main memory 35.
  • the CPU cores 31a to 31d are central processing units that read and write the primary cache memories 32a to 32d, the secondary cache memories 33a to 33d, the tertiary cache memory 34, and the main memory 35 to execute processing.
  • a plurality of applications 11a to 11d are operating on the physical host 3 shown in FIG.
  • applications 11a to 11d are not particularly distinguished, they are simply referred to as application 11.
  • the application 11a occupies the CPU core 31a, the primary cache memory 32a, and the secondary cache memory 33a, and further shares a part of the tertiary cache memory 34.
  • the application 11b occupies the CPU core 31b, the primary cache memory 32b, and the secondary cache memory 33b, and further shares a part of the tertiary cache memory 34.
  • the application 11c occupies the CPU core 31c, the primary cache memory 32c, and the secondary cache memory 33c, and further shares a part of the tertiary cache memory 34.
  • the application 11d occupies the CPU core 31d, the primary cache memory 32d, and the secondary cache memory 33d, and further shares a part of the tertiary cache memory 34.
  • the tertiary cache memory 34 is polluted by the applications 11a to 11d, and cache misses increase relatively.
  • the CPU core 31 that has caused a cache error must refer to the main memory 35, which takes several times longer access time than the tertiary cache memory 34.
  • Application 11 causes a performance degradation due to such a cache miss penalty. This is called cache contention by a plurality of applications 11.
  • a single application 11a is running on the physical host 3 shown in FIG.
  • the tertiary cache memory 34 which is the shared cache memory, is occupied.
  • the cache is not polluted.
  • FIG. 1 is a configuration diagram of the cache evaluation index acquisition system 1 in the present embodiment.
  • the cache evaluation index acquisition system 1 includes an OS (Operating System) 2 running on the physical host 3, a plurality of applications 11a and 11b running on the OS 2, and a cache usage index calculation unit 12.
  • OS Operating System
  • the cache usage index calculation unit 12 is described as CUI (Cache Usage Indicator calclulation).
  • the physical host 3 is a combination of a central processing unit, a cache, and a memory for operating the OS 2, applications 11a, 11b, and the cache usage index calculation unit 12, and is the same as the physical host 3 shown in FIGS. 7 and 8, for example. It is configured in.
  • OS 2 is basic software for controlling the execution of programs running on the physical host 3, and performs job management, input / output control, data management, and related processing.
  • the applications 11a and 11b are programs that operate in the environment of the physical host 3 and the OS 2, respectively.
  • Applications 11a and 11b may be virtual machines or containers.
  • a desired amount of cache memory can be allocated to the applications 11a and 11b.
  • the applications 11a and 11b are not particularly distinguished, they are simply referred to as application 11.
  • the cache usage index calculation unit 12 is a part for tuning the cache allocation amount of the application 11 running on the physical host 3.
  • the function of the cache usage index calculation unit 12 is realized by the processor (not shown) of the physical host 3 executing the cache tuning program.
  • FIG. 2 is a block diagram showing a cache usage index calculation unit 12.
  • the cache usage index calculation unit 12 includes a cache usage measurement unit 121, an application performance measurement unit 122, a cache evaluation index calculation unit 123, a sensitivity calculation unit 124, a pollution degree calculation unit 125, and a database unit 126. Consists of.
  • the cache usage measurement unit 121 acquires values related to the cache and cache usage parameters regarding the cache usage of the application 11. That is, the cache usage measurement unit 121 functions as a usage status measurement unit that measures the usage status of the tertiary cache memory 34 by the application 11 executed by the CPU core 31.
  • These applications 11 include virtual machines, containers, and the like.
  • the cache-related values and cache usage parameters are, for example, the number of cache prefetches, the number of cache references, the number of cache hits, the number of cache misses, the cache miss rate, the number of dTLB loads, the number of dTLB misses, and the dTLB miss rate.
  • the measured values and cache usage parameters related to the cache of each application 11 are stored in the database unit 126.
  • the application performance measurement unit 122 measures the performance of each application 11.
  • the application performance measurement unit 122 measures the performance when each application 11 is operated alone, and measures the performance when two applications 11 are operated in combination.
  • the measured performance of each application 11 is stored in the database unit 126.
  • the application performance measurement unit 122 calculates the performance deterioration at the time of a plurality of operations with respect to the performance at the time of a single operation of each application 11. That is, the application performance measurement unit 122 functions as a performance measurement unit that measures the cache sensitivity and the cache pollution degree of the application 11.
  • the cache evaluation index calculation unit 123 calculates the cache sensitivity index and the cache pollution degree index from the performance deterioration obtained by the application performance measurement unit 122 and the measurement amount obtained by the cache usage measurement unit 121.
  • the sensitivity calculation unit 124 statistically processes the performance of the application 11 extracted as a representative during single operation and the performance during multiple operations, and calculates the sensitivity of these applications 11. Further, the sensitivity calculation unit 124 calculates the cache sensitivity of the application 11 based on the cache usage condition of the new application 11 and the index of the cache sensitivity.
  • the pollution degree calculation unit 125 statistically processes the performance at the time of single operation and the performance at the time of multiple operations of the application 11 extracted as representative, and calculates the pollution degree of these applications 11. Further, the pollution degree calculation unit 125 calculates the cache pollution degree of the application 11 based on the cache usage condition of the new application 11 and the cache pollution degree index.
  • the sensitivity calculation unit 124 and the pollution degree calculation unit 125 function as a calculation unit for calculating the cache sensitivity and / or the cache pollution degree of the application from the partial regression coefficient and the cache usage status.
  • 3 and 4 are flowcharts showing the calculation processing of the partial regression coefficient of the cache sensitivity and the partial regression coefficient of the cache pollution degree of a typical application 11.
  • the cache usage index calculation unit 12 repeats the process for each application 11 extracted as a representative. Here, it is desirable to extract as many applications as possible used for the CPU benchmark and have the cache usage index calculation unit 12 process them.
  • step S11 the application performance measuring unit 122 measures the performance during single operation, and the cache usage measuring unit 121 measures the cache usage parameter.
  • step S12 the cache usage index calculation unit 12 determines whether or not all the applications 11 have been processed. If there is an unprocessed application 11, the cache usage index calculation unit 12 returns to step S10 and repeats the process. When the cache usage index calculation unit 12 has processed all the applications 11, the cache usage index calculation unit 12 proceeds to step S13.
  • the cache usage index calculation unit 12 repeats the process for the combination of two of the applications whose performance at the time of single operation is measured.
  • the application performance measurement unit 122 operates both the combined applications 11 to measure the performance (S14), and stores the measured performance data in the database unit 126.
  • the application performance measurement unit 122 calculates the degree of deterioration in the performance of both applications 11 (S15), and stores the calculated degree of deterioration in performance in the database unit 126.
  • step S16 the cache usage index calculation unit 12 determines whether or not all the combinations of the applications 11 have been processed. If there is a combination of unprocessed applications 11, the cache usage index calculation unit 12 returns to step S13 and repeats the processing. When the cache usage index calculation unit 12 processes all the combinations of the applications 11, the cache usage index calculation unit 12 proceeds to step S17.
  • the cache usage index calculation unit 12 repeats the process for each application 11 extracted as representative.
  • the sensitivity calculation unit 124 calculates the Cache Sensitivity by averaging the degree of deterioration in the performance during a plurality of operations rather than the performance during a single operation of the application 11 (S18).
  • the pollution degree calculation unit 125 calculates Cache Pollutivity by averaging the degree of deterioration of the performance of the other application 11 (S19).
  • step S20 the cache usage index calculation unit 12 determines whether or not all the applications 11 have been processed. If there is an unprocessed application 11, the cache usage index calculation unit 12 returns to step S17 and repeats the process. When the cache usage index calculation unit 12 has processed all the applications 11, the cache usage index calculation unit 12 proceeds to step S21.
  • Steps S21 to S24 are processes for calculating an index of cache sensitivity
  • steps S25 to S28 are processes for calculating an index of cache pollution degree.
  • the cache evaluation index calculation unit 123 sets the Cache Sensitivity of each application 11 as the objective variable Y (S21).
  • the cache evaluation index calculation unit 123 sets the cache usage parameters of each application as explanatory variables X 0 , X 1, ... (S22).
  • each explanatory variable X 0 , X 1, ... Is assigned the number of cache prefetches, the number of cache references, the number of cache hits, the number of cache misses, the cache miss rate, the number of dTLB loads, the number of dTLB misses, the dTLB miss rate, and the like.
  • the partial regression coefficients b 0 , b 1 , ... are indicators of cache sensitivity.
  • the cache evaluation index calculation unit 123 calculates the partial regression coefficients b 0 , b 1 , ... From the objective variable Y and the explanatory variables X 0 , X 1, ... (S23), and the calculated partial regression coefficients b 0 , b 1 , ... are recorded in the database unit 126 (S24).
  • the cache evaluation index calculation unit 123 sets the Cache Pollutivity of each application 11 as the objective variable Y (S25) and sets the cache usage parameters of each application 11 as the explanatory variables X 0 , X 1, ... (S26).
  • the partial regression coefficients c 0 , c 1 , ... are indicators of cache sensitivity.
  • the cache evaluation index calculation unit 123 calculates the partial regression coefficients c 0 , c 1 , ... From the objective variable Y and the explanatory variables X 0 , X 1, ... (S27). That is, it is investigated which cache usage parameter is related to the cache pollution degree of the application 11, and weighting is performed.
  • the cache evaluation index calculation unit 123 records the calculated partial regression coefficients c 0 , c 1 , ... In the database unit 126 (S28), and ends the process of FIG.
  • the partial regression coefficients b 0 , b 1 , ... are calculated as an index of the cache sensitivity
  • the partial regression coefficients c 0 , c 1 , ... are calculated as an index of the cache pollution degree.
  • FIG. 5 is a diagram illustrating measurement data for calculating the cache sensitivity and the cache pollution degree of each application.
  • Lines 2 to 13 show applications that measure the degree of performance degradation.
  • the second to thirteenth columns show other applications operated in combination with the application shown in each row.
  • the 14th row shows the average value of the values from the 2nd row to the 13th row of each column. This is a measure of cache pollution for the application shown in the first row of this column.
  • the 14th column shows the average value of the values from the 2nd column to the 13th column of each row. This is the measurement result of the cache sensitivity for the application shown in the first column of this row.
  • FIG. 6 is a flowchart showing a calculation process of cache sensitivity and cache pollution degree of an arbitrary application.
  • the cache usage measurement unit 121 measures the cache usage parameter when the arbitrary application 11 is operated (S40).
  • the sensitivity calculation unit 124 calculates the Cache Sensitivity of the application 11 from the pre-calculated partial regression coefficients b 0 , b 1 ... And the cache usage parameters of the application 11 (S41).
  • the sensitivity calculation unit 124 calculates the Cache Pollutivity of the application 11 from the pre-calculated partial regression coefficients c 0 , c 1 ... And the cache usage parameter of the application 11 (S42), and ends the process of FIG. To do.
  • the cache usage index calculation device is Memory to read and write data and A cache that can be accessed faster than the memory, A central processing unit that reads and writes the memory and the cache to execute processing, and A usage status measuring unit that measures the usage status of the cache by an application executed by the central processing unit, and a usage status measuring unit.
  • a performance measuring unit that measures cache sensitivity and cache pollution degree for applications
  • An index calculation unit that calculates an index of cache sensitivity and / or cache pollution degree of each application from the performance deterioration of a plurality of applications selected in advance and the usage status of the cache. It is characterized by having. As a result, the cache sensitivity and the cache pollution degree can be calculated from the cache usage status in each application.
  • the performance measuring unit of the cache usage index calculation device has the plurality of performances when the first application among the plurality of applications selected in advance is operated alone.
  • the average degree of performance deterioration of the first application when the second application of the applications is operated in combination is defined as the cache sensitivity in the first application. This allows the cache sensitivity of the application to be measured.
  • the performance measuring unit of the cache usage index calculation device has the plurality of performances when the first application among the plurality of applications selected in advance is operated alone.
  • the average degree of performance deterioration of the first application when the second application of the applications is operated in combination is defined as the cache pollution degree in the second application. It is characterized by that. This allows you to measure the cache pollution of your application.
  • the index calculation unit of the cache usage index calculation device sets the performance deterioration of each application as an objective variable, and sets the cache usage status as an explanatory variable. Perform multiple regression analysis and calculate the partial regression coefficient, It is characterized by that. This allows you to identify cache usage that contributes to the application's cache sensitivity and / and cache pollution.
  • the cache usage index calculation device is a calculation unit that calculates the cache sensitivity and / and the cache pollution degree of the application from the partial regression coefficient and the cache usage status. It is characterized by further providing. Thereby, the cache sensitivity and / and the cache pollution degree can be calculated by measuring the cache usage status of any application.
  • the cache usage index calculation method is Memory to read and write data and A cache that can be accessed faster than the memory,
  • a computer including a central processing unit that reads and writes the memory and the cache to execute processing
  • the cache sensitivity and the cache pollution degree can be calculated from the cache usage status in each application.
  • the cache usage index calculation method described in (6) is A step of calculating the cache sensitivity or / and cache pollution degree of an application from the index and the cache usage status. Is further executed. Thereby, the cache sensitivity and / and the cache pollution degree can be calculated by measuring the cache usage status of any application.
  • the cache usage index calculation program is Memory to read and write data and A cache that can be accessed faster than the memory, A computer including a central processing unit that reads and writes the memory and the cache to execute processing.
  • Procedure for measuring the usage status of the cache by the application executed by the central processing unit Procedures for measuring cache sensitivity and / and cache pollution for multiple preselected applications, A procedure for calculating an index of cache sensitivity and / or cache pollution degree of each application from the performance deterioration of each application and the usage status of the cache. Is for executing.
  • the cache sensitivity and the cache pollution degree can be calculated from the cache usage status in each application.
  • the application shown in FIG. 5 is an example and is not limited to these applications.
  • the application to be measured may include a virtual machine or a container.
  • C Either one of the cache sensitivity and the cache pollution degree may be calculated.

Abstract

キャッシュ使用指標算出装置(1)は、データを読み書きするメモリと、メモリよりも高速にアクセス可能なキャッシュと、メモリおよびキャッシュを読み書きして処理を実行する中央処理装置と、中央処理装置が実行するアプリケーション(11a,11b)によるキャッシュの使用状況を測定する使用状況測定部と、アプリケーション(11a,11b)に関するキャッシュ感度または/およびキャッシュ汚染度を測定する性能測定部と、予め選択した複数のアプリケーションの性能劣化と前記キャッシュの使用状況とから、各アプリケーションのキャッシュ感度または/およびキャッシュ汚染度の指標を算出する指標算出部とを備える。

Description

キャッシュ使用指標算出装置、キャッシュ使用指標算出方法、および、キャッシュ使用指標算出プログラム
 本発明は、キャッシュ使用指標算出装置、キャッシュ使用指標算出方法、および、キャッシュ使用指標算出プログラムに関する。
 キャッシュメモリとは、中央処理装置(CPU:Central Processing Unit)がデータや命令などにアクセスする際、メインメモリの遅延を隠蔽するために用いられる高速小容量メモリのことである。キャッシュメモリは、コンピュータがアプリケーションの処理を高速化する際に重要である。
 図9は、各アプリケーションのキャッシュ占有量とパフォーマンスとの関係を示すグラフである。なお、この図9は、非特許文献1に掲載されたグラフの引用である。
 グラフの横軸は、キャッシュ占有量を示しており、グラフの縦軸は正規化されたパフォーマンスを示している。菱形のプロットは、Povrayに関するプロットである。四角形のプロットは、Bzip2に関するプロットである。三角形のプロットは、MCFに関するプロットである。バツ印のプロットは、Bwavesに関するプロットである。
 このグラフで示すように、キャッシュの占有量が減少すると、キャッシュミス数が増加する。Bwavesでは、キャッシュ占有量を15MBとしたときと比べて、キャッシュ占有量を0MBとしたときに性能が約60%だけ低下している。
 キャッシュ・アロケーション・テクノロジ(Cache Allocation Technology)とは、CPUが最終レベルキャッシュの利用をアプリケーションごとに制限、制御できる機能のことをいう。
 図10は、16ビットのキャッシュ・アロケーション・テクノロジ(Cache Allocation Technology)の例を示す図である。
 非特許文献2に記載されているように、2014年9月にリリースされたIntel Xeon(登録商標)プロセッサのE5 2600 v3製品ファミリから、最終レベルキャッシュの利用をアプリケーションごとに制限、制御できる機能であるCache Allocation Technologyが実装されている。
 これらのプロセッサでは、アプリケーションプロセスごとにClass of Service(CLOS)のレベルを定めることができ、CLOS毎に最終レベルキャッシュをどの範囲まで使用するかを、キャパシティマスクで制御している。
 図10の例では、CLOS[0]は、15bitから12bitまで4つのビットが立っており、最終レベルキャッシュを1/4だけ使用することを示している。なお、15bitから12bitまでに1が立っているのはCLOS[0]だけであり、これらのbitに対応する領域をCLOS[0]に係るアプリケーションが占有することを示している。なお、CLOS[n]の各ビットは、最終レベルキャッシュの各領域に対応している。
 CLOS[1]は、11bitから8bitまで4つのビットが立っており、最終レベルキャッシュを1/4だけ使用することを示している。なお、11bitから8bitまでに1が立っているのはCLOS[1]だけであり、これらのbitに対応する領域をCLOS[1]に係るアプリケーションが占有することを示している。
 CLOS[2]は、7bitから2bitまで6つのビットが立っており、最終レベルキャッシュを3/8だけ使用することを示している。なお、7bitから2bitまでには、CLOS[3]も同様に1が立っており、これらのbitに対応する領域をCLOS[2]とCLOS[3]に係るアプリケーションが共有することを示している。
 CLOS[3]は、7bitから0bitまで8つのビットが立っており、最終レベルキャッシュを1/2だけ使用することを示している。なお、7bitから2bitまでには、CLOS[3]も同様に1が立っており、これらのbitに対応する領域をCLOS[2]に係るアプリケーションとCLOS[3]に係るアプリケーションが共有することを示している。1bitから0bitまでに1が立っているのはCLOS[3]だけであり、これらのbitに対応する領域をCLOS[3]に係るアプリケーションが占有することを示している。
Nguyen, Khang T,"Intel's Cache Monitoring Technology: Use Models and Data",[online],published on December 11,2014, updated March 31, 2016,[令和1年7月25日検索],インターネット<URL:https://software.intel.com/en-us/blogs/2014/12/11/intels-cache-monitoring-technology-use-models-and-data> "Usage Models for Cache Allocation Technology in the Intel Xeon Processor E5 v4 family",[online],[令和1年7月25日検索],インターネット<URL:https://software.intel.com/en-us/articles/cache-allocation-technology-usage-models>
 アプリケーションの単体動作時の性能よりも複数動作時の性能が劣化した度合いを、このアプリケーションのキャッシュ感度という。Cache Allocation Technologyによるチューニングを行う際、発明者らは、キャッシュ感度の高いアプリケーションには、キャッシュメモリを多く割り当てるポリシを考えた。これにより、当該アプリケーションの性能を向上させることができる。
 アプリケーションを複数動作させた場合に、他方のアプリケーション11の性能を劣化させた度合いを、このアプリケーションのキャッシュ汚染度という。発明者らは、キャッシュ汚染度の高いアプリケーションには、キャッシュメモリを少なく割り当てるポリシを考えた。これにより、当該アプリケーションが動作した際の他のアプリケーションへの影響を抑止することができる。
 そこで、本発明は、各アプリケーションにおけるキャッシュ使用状況から、キャッシュ感度やキャッシュ汚染度を算出することを課題とする。
 前記した課題を解決するため、本発明のキャッシュ使用指標算出装置は、
 データを読み書きするメモリと、
 前記メモリよりも高速にアクセス可能なキャッシュと、
 前記メモリおよび前記キャッシュを読み書きして処理を実行する中央処理装置と、
 前記中央処理装置が実行するアプリケーションによる前記キャッシュの使用状況を測定する使用状況測定部と、
 アプリケーションに関するキャッシュ感度とキャッシュ汚染度を測定する性能測定部と、
 予め選択した複数のアプリケーションの性能劣化と前記キャッシュの使用状況とから、各前記アプリケーションのキャッシュ感度または/およびキャッシュ汚染度の指標を算出する指標算出部と、
 を備えることを特徴とする。
 その他の手段については、発明を実施するための形態のなかで説明する。
 本発明によれば、各アプリケーションにおけるキャッシュ使用状況から、キャッシュ感度やキャッシュ汚染度を算出できる。
本実施形態におけるキャッシュ評価指標取得システムの構成図である。 キャッシュ使用指標算出部を示すブロック図である。 代表的なアプリケーションのキャッシュ感度の偏回帰係数とキャッシュ汚染度の偏回帰係数の算出処理を示すフローチャート(その1)である。 代表的なアプリケーションのキャッシュ感度の偏回帰係数とキャッシュ汚染度の偏回帰係数の算出処理を示すフローチャート(その2)である。 各アプリケーションのキャッシュ感度とキャッシュ汚染度とを算出する動作を説明する図である。 任意のアプリケーションのキャッシュ感度とキャッシュ汚染度の算出処理を示すフローチャートである。 物理ホスト上に複数のアプリケーションを同時に動かしたときの各キャッシュの状況を示す図である。 物理ホスト上に単一のアプリケーションを動かしたときの各キャッシュの状況を示す図である。 各アプリケーションのキャッシュ占有量とパフォーマンスとの関係を示すグラフである。 16ビットのキャッシュ・アロケーション・テクノロジの例を示す図である。
 以降、本発明を実施するための形態を、各図を参照して詳細に説明する。
《発明の背景説明》
 物理ホスト上で複数の仮想マシンを同時に動かした場合、キャッシュ競合が起こり、性能が低下するおそれがある。
 図7は、物理ホスト上に複数のアプリケーションを同時に動かしたときの各キャッシュの状況を示す図である。図8は、物理ホスト上に単一のアプリケーションを動かしたときの各キャッシュの状況を示す図である。
 物理ホスト3は、CPU(Central Processing Unit)コア31a~31dと、1次キャッシュメモリ32a~32dと、2次キャッシュメモリ33a~33dと、3次キャッシュメモリ34と、メインメモリ35とを含んで構成される。メインメモリ35は、データを読み書きするためのRAM(Random Access Memory)である。1次キャッシュメモリ32a~32dと、2次キャッシュメモリ33a~33dと、3次キャッシュメモリ34とは、メインメモリ35よりも高速にアクセス可能な記憶領域である。CPUコア31a~31dは、1次キャッシュメモリ32a~32dと、2次キャッシュメモリ33a~33dと、3次キャッシュメモリ34と、メインメモリ35とを読み書きして処理を実行する中央処理装置である。
 現在のCPUで主流となっているマルチコア構成では、3次キャッシュメモリ34のような低次キャッシュを複数のCPUコア31a~31dが共有することが一般的である。以下、CPUコア31a~31dを特に区別しないときには、単にCPUコア31と記載する。
 図7に示す物理ホスト3上には、複数のアプリケーション11a~11dが動作している。以下、アプリケーション11a~11dを特に区別しないときには、単にアプリケーション11と記載する。
 アプリケーション11aは、CPUコア31aと、1次キャッシュメモリ32aと、2次キャッシュメモリ33aとを占有し、更に3次キャッシュメモリ34の一部を共有している。
 アプリケーション11bは、CPUコア31bと、1次キャッシュメモリ32bと、2次キャッシュメモリ33bとを占有し、更に3次キャッシュメモリ34の一部を共有している。
 アプリケーション11cは、CPUコア31cと、1次キャッシュメモリ32cと、2次キャッシュメモリ33cとを占有し、更に3次キャッシュメモリ34の一部を共有している。
 アプリケーション11dは、CPUコア31dと、1次キャッシュメモリ32dと、2次キャッシュメモリ33dとを占有し、更に3次キャッシュメモリ34の一部を共有している。
 同じノード上で複数のアプリケーション11a~11dが稼働している場合、アプリケーション11a~11dによって3次キャッシュメモリ34が汚され、キャッシュミスが相対的に増える。キャッシュミスを起こしたCPUコア31は、3次キャッシュメモリ34より数倍アクセス時間のかかるメインメモリ35まで参照しにいかなければならない。アプリケーション11は、このようなキャッシュミスのペナルティにより、性能低下を引きおこす。これを複数のアプリケーション11によるキャッシュ競合と呼ぶ。
 これに対して図8に示す物理ホスト3上には、単一のアプリケーション11aが動作している。アプリケーション11aを単体で動かしたときは、共有キャッシュメモリである3次キャッシュメモリ34を占有した状態になる。このとき、他のアプリケーション11は動作していないので、キャッシュの汚染は発生しない。
《本発明の実施形態》
 図1は、本実施形態におけるキャッシュ評価指標取得システム1の構成図である。
 キャッシュ評価指標取得システム1は、物理ホスト3の上で動作するOS(Operating System)2と、このOS2上で動作する複数のアプリケーション11a,11bと、キャッシュ使用指標算出部12とを含んで構成される。なお、図1では、キャッシュ使用指標算出部12のことをCUI(Cache Usage Indicator calclulation)と記載している。
 物理ホスト3は、これらOS2やアプリケーション11a,11bやキャッシュ使用指標算出部12を動作させるための中央処理装置とキャッシュとメモリの組み合わせであり、例えば図7や図8で示した物理ホスト3と同様に構成されている。
 OS2は、物理ホスト3上で動作するプログラムの実行を制御するための基本ソフトウェアであり、ジョブ管理、入出力制御、データ管理およびこれらに関連した処理を行う。
 アプリケーション11a,11bは、それぞれ物理ホスト3とOS2の環境で動作するプログラムである。アプリケーション11a,11bは、仮想マシンやコンテナであってもよい。
 アプリケーション11a,11bに対応するCLOSのキャパシティマスクを立てることにより、アプリケーション11a,11bに対して所望量のキャッシュメモリを割り当てることができる。以下、各アプリケーション11a,11bを特に区別しないときには、単にアプリケーション11と記載する。
 キャッシュ使用指標算出部12は、物理ホスト3上で動作するアプリケーション11のキャッシュ割当量をチューニングする部位である。物理ホスト3の不図示のプロセッサが、キャッシュチューニングのプログラムを実行することにより、キャッシュ使用指標算出部12の機能が具現化される。
 図2は、キャッシュ使用指標算出部12を示すブロック図である。
 キャッシュ使用指標算出部12は、キャッシュ使用量測定部121と、アプリケーション性能測定部122と、キャッシュ評価指標計算部123と、感度算出部124と、汚染度算出部125と、データベース部126とを含んで構成される。
 キャッシュ使用量測定部121は、アプリケーション11のキャッシュの使用具合について、キャッシュに関連する値やキャッシュ利用パラメータを取得する。つまりキャッシュ使用量測定部121は、CPUコア31が実行するアプリケーション11による3次キャッシュメモリ34の使用状況を測定する使用状況測定部として機能する。これらアプリケーション11には、仮想マシンやコンテナなどが含まれる。
 キャッシュに関連する値やキャッシュ利用パラメータとは、例えばキャッシュプリフェッチ数、キャッシュリファレンス数、キャッシュヒット数、キャッシュミス数、キャッシュミスレート、dTLBロード数、dTLBミス数、dTLBミスレートである。測定した各アプリケーション11のキャッシュに関連する値やキャッシュ利用パラメータは、データベース部126に格納される。
 アプリケーション性能測定部122は、各アプリケーション11の性能を測定する。アプリケーション性能測定部122は、各アプリケーション11を単体で動作させた場合の性能を測定し、アプリケーション11を2つ組み合わせて動作させた場合における性能を測定する。測定した各アプリケーション11の性能は、データベース部126に格納される。これにより、アプリケーション性能測定部122は、各アプリケーション11の単体動作時の性能に対する複数動作時の性能劣化を算出する。つまりアプリケーション性能測定部122は、アプリケーション11に関するキャッシュ感度とキャッシュ汚染度を測定する性能測定部として機能する。
 キャッシュ評価指標計算部123は、アプリケーション性能測定部122で得られた性能劣化と、キャッシュ使用量測定部121で得られた測定量から、キャッシュ感度の指標とキャッシュ汚染度の指標を算出する。
 感度算出部124は、代表的であるとして抽出されたアプリケーション11の単体動作時の性能と複数動作時の性能を統計的に処理して、これらアプリケーション11の感度を算出する。更に感度算出部124は、新たなアプリケーション11のキャッシュの使用具合とキャッシュ感度の指標に基づき、このアプリケーション11のキャッシュ感度を算出する。
 汚染度算出部125は、代表的であるとして抽出されたアプリケーション11の単体動作時の性能と複数動作時の性能を統計的に処理して、これらアプリケーション11の汚染度を算出する。更に汚染度算出部125は、新たなアプリケーション11のキャッシュの使用具合とキャッシュ汚染度の指標に基づき、このアプリケーション11のキャッシュ汚染度を算出する。
 これら感度算出部124と汚染度算出部125は、偏回帰係数とキャッシュの使用状況とから、アプリケーションのキャッシュ感度または/およびキャッシュ汚染度を算出する算出部として機能する。
 図3と図4は、代表的なアプリケーション11のキャッシュ感度の偏回帰係数とキャッシュ汚染度の偏回帰係数の算出処理を示すフローチャートである。
 ステップS10~S12において、キャッシュ使用指標算出部12は、代表的として抽出された各アプリケーション11について処理を繰り返す。ここでは、CPUベンチマークに使用されるような極力多くのアプリケーションを抽出して、キャッシュ使用指標算出部12に処理させることが望ましい。
 ステップS11において、アプリケーション性能測定部122は単体動作時の性能を測定し、キャッシュ使用量測定部121はキャッシュ利用パラメータを測定する。
 ステップS12において、キャッシュ使用指標算出部12は、全てのアプリケーション11を処理したか否かを判定する。キャッシュ使用指標算出部12は、未処理のアプリケーション11が有るならば、ステップS10に戻って処理を繰り返す。キャッシュ使用指標算出部12は、全てのアプリケーション11を処理したならば、ステップS13に進む。
 ステップS13~S16において、キャッシュ使用指標算出部12は、単体動作時の性能を測定したアプリケーションのうち2つの組合せについて処理を繰り返す。
 アプリケーション性能測定部122は、組み合わせた両アプリケーション11を動作させて性能を測定し(S14)、測定した性能データをデータベース部126に格納する。
 更にアプリケーション性能測定部122は、両アプリケーション11の性能の劣化度合いを算出し(S15)、算出した性能劣化度合いをデータベース部126に格納する。
 ステップS16において、キャッシュ使用指標算出部12は、全てのアプリケーション11の組み合わせを処理したか否かを判定する。キャッシュ使用指標算出部12は、未処理のアプリケーション11の組み合わせが有るならば、ステップS13に戻って処理を繰り返す。キャッシュ使用指標算出部12は、全てのアプリケーション11の組み合わせを処理したならば、ステップS17に進む。
 ステップS17~S20において、キャッシュ使用指標算出部12は、代表的であるとして抽出された各アプリケーション11について処理を繰り返す。
 感度算出部124は、アプリケーション11の単体動作時の性能よりも複数動作時の性能が劣化した度合いを平均してCache Sensitivity(キャッシュ感度)を算出する(S18)。
 汚染度算出部125は、アプリケーション11を複数動作させた場合に、他方のアプリケーション11の性能を劣化させた度合いを平均してCache Pollutivity(キャッシュ汚染度)を算出する(S19)。
 ステップS20において、キャッシュ使用指標算出部12は、全てのアプリケーション11を処理したか否かを判定する。キャッシュ使用指標算出部12は、未処理のアプリケーション11が有るならば、ステップS17に戻って処理を繰り返す。キャッシュ使用指標算出部12は、全てのアプリケーション11を処理したならば、ステップS21に進む。
 図4に進み説明を続ける。ステップS21~S24はキャッシュ感度の指標を計算する処理であり、ステップS25~S28はキャッシュ汚染度の指標を計算する処理である。
 キャッシュ評価指標計算部123は、各アプリケーション11のCache Sensitivityを目的変数Yとする(S21)。
 キャッシュ評価指標計算部123は、各アプリケーションのキャッシュ利用パラメータを説明変数X0, X1,…とする(S22)。ここで各説明変数X0, X1,…には、キャッシュプリフェッチ数、キャッシュリファレンス数、キャッシュヒット数、キャッシュミス数、キャッシュミスレート、dTLBロード数、dTLBミス数、dTLBミスレートなどが割り当てられる。なお、目的変数Yと説明変数X0, X1,…は、以下の式(1)を満たす。
Figure JPOXMLDOC01-appb-M000001
 ここで偏回帰係数b0,b1,…は、キャッシュ感度の指標である。
 キャッシュ評価指標計算部123は、目的変数Yと説明変数X0, X1,…から、偏回帰係数b0,b1,…を算出し(S23)、算出した偏回帰係数b0,b1,…をデータベース部126に記録する(S24)。
 キャッシュ評価指標計算部123は、各アプリケーション11のCache Pollutivityを目的変数Yとし(S25)各アプリケーション11のキャッシュ利用パラメータを説明変数X0, X1,…とする(S26)。なお、目的変数Yと説明変数X0, X1,…は、以下の式(2)を満たす。
Figure JPOXMLDOC01-appb-M000002
 ここで偏回帰係数c0,c1,…は、キャッシュ感度の指標である。
 キャッシュ評価指標計算部123は、目的変数Yと説明変数X0, X1,…から、偏回帰係数c0,c1,…を算出する(S27)。すなわち、どのキャッシュ利用パラメータがアプリケーション11のキャッシュ汚染度に関係しているかを調べ、重みづけを行う。キャッシュ評価指標計算部123は、算出した偏回帰係数c0,c1,…をデータベース部126に記録し(S28)、図4の処理を終了する。
 この処理により、キャッシュ感度の指標として偏回帰係数b0,b1,…が算出され、キャッシュ汚染度の指標として偏回帰係数c0,c1,…が算出される。これら偏回帰係数と未知のアプリケーション11について説明変数X0, X1,…に相当するキャッシュ利用パラメータの測定により、目的変数Yに相当するキャッシュ感度とキャッシュ汚染度とを算出することができる。
 図5は、各アプリケーションのキャッシュ感度とキャッシュ汚染度とを算出するための計測データを説明する図である。
 第2行から第13行は、性能が劣化した度合いを測定したアプリケーションを示している。第2列から第13列は、各行に示したアプリケーションと組み合わせて動作させた他のアプリケーションを示している。
 第14行は、各列の第2行から第13行までの値の平均値を示している。これは、この列の第1行目に示されたアプリケーションに係るキャッシュ汚染度の測定値である。
 第14列は、各行の第2列から第13列までの値の平均値を示している。これは、この行の第1列目に示されたアプリケーションに係るキャッシュ感度の測定結果である。
 図6は、任意のアプリケーションのキャッシュ感度とキャッシュ汚染度の算出処理を示すフローチャートである。
 最初、キャッシュ使用量測定部121は、任意のアプリケーション11を動作させた時のキャッシュ利用パラメータを測定する(S40)。
 感度算出部124は、予め計算されている偏回帰係数b0,b1 …と、このアプリケーション11のキャッシュ利用パラメータから、このアプリケーション11のCache Sensitivityを算出する(S41)。
 感度算出部124は、予め計算されている偏回帰係数c0,c1 …と、このアプリケーション11のキャッシュ利用パラメータから、このアプリケーション11のCache Pollutivityを算出し(S42)、図6の処理を終了する。
《本実施形態の効果》
 任意のアプリケーションのCache SensitivityやCache Pollutivityを容易に測定することができる。これにより、キャッシュメモリのチューニングのための指標を運用者に提供することができる。
《上記実施形態の構成とその作用効果》
(1) キャッシュ使用指標算出装置は、
 データを読み書きするメモリと、
 前記メモリよりも高速にアクセス可能なキャッシュと、
 前記メモリおよび前記キャッシュを読み書きして処理を実行する中央処理装置と、
 前記中央処理装置が実行するアプリケーションによる前記キャッシュの使用状況を測定する使用状況測定部と、
 アプリケーションに関するキャッシュ感度とキャッシュ汚染度を測定する性能測定部と、
 予め選択した複数のアプリケーションの性能劣化と前記キャッシュの使用状況とから、各前記アプリケーションのキャッシュ感度または/およびキャッシュ汚染度の指標を算出する指標算出部と、
 を備えることを特徴とする。
 これにより、各アプリケーションにおけるキャッシュ使用状況から、キャッシュ感度やキャッシュ汚染度が算出できる。
(2) (1)に記載のキャッシュ使用指標算出装置の前記性能測定部は、予め選択した複数のアプリケーションのうちの第1のアプリケーションを単体で動作させたときの性能に対して、前記複数のアプリケーションのうちの第2のアプリケーションを組み合わせて動作させたときの前記第1のアプリケーションの性能劣化の度合いの平均を、前記第1のアプリケーションにおけるキャッシュ感度とする、
 これにより、アプリケーションのキャッシュ感度が測定できる。
 ことを特徴とする。
(3) (1)に記載のキャッシュ使用指標算出装置の前記性能測定部は、予め選択した複数のアプリケーションのうちの第1のアプリケーションを単体で動作させたときの性能に対して、前記複数のアプリケーションのうちの第2のアプリケーションを組み合わせて動作させたときの第1のアプリケーションの性能劣化の度合いの平均を、前記第2のアプリケーションにおけるキャッシュ汚染度とする、
 ことを特徴とする。
 これにより、アプリケーションのキャッシュ汚染度が測定できる。
(4) (1)から(3)のうち何れか1項に記載のキャッシュ使用指標算出装置の前記指標算出部は、各前記アプリケーションの性能劣化を目的変数とし、前記キャッシュの使用状況を説明変数として重回帰分析を行い、偏回帰係数を算出する、
 ことを特徴とする。
 これにより、アプリケーションのキャッシュ感度または/およびキャッシュ汚染度に寄与するキャッシュの使用状況を特定できる。
(5) (4)に記載のキャッシュ使用指標算出装置は、前記偏回帰係数と前記キャッシュの使用状況とから、アプリケーションのキャッシュ感度または/およびキャッシュ汚染度を算出する算出部、
 を更に備えることを特徴とする。
 これにより、任意のアプリケーションのキャッシュ使用状況を測定することにより、キャッシュ感度または/およびキャッシュ汚染度が算出できる。
(6) キャッシュ使用指標算出方法は、
 データを読み書きするメモリと、
 前記メモリよりも高速にアクセス可能なキャッシュと、
 前記メモリおよび前記キャッシュを読み書きして処理を実行する中央処理装置を備えるコンピュータは、
 前記中央処理装置が実行するアプリケーションによる前記キャッシュの使用状況を測定するステップと、
 予め選択した複数のアプリケーションに関するキャッシュ感度または/およびキャッシュ汚染度を測定するステップと、
 各前記アプリケーションの性能劣化と前記キャッシュの使用状況とから、各前記アプリケーションのキャッシュ感度または/およびキャッシュ汚染度の指標を算出するステップと、
 を実行することを特徴とする。
 これにより、各アプリケーションにおけるキャッシュ使用状況から、キャッシュ感度やキャッシュ汚染度が算出できる。
(7) (6)に記載のキャッシュ使用指標算出方法は、
 前記指標と前記キャッシュの使用状況とから、アプリケーションのキャッシュ感度または/およびキャッシュ汚染度を算出するステップ、
 を更に実行することを特徴とする。
 これにより、任意のアプリケーションのキャッシュ使用状況を測定することにより、キャッシュ感度または/およびキャッシュ汚染度が算出できる。
(8) キャッシュ使用指標算出プログラムは、
 データを読み書きするメモリと、
 前記メモリよりも高速にアクセス可能なキャッシュと、
 前記メモリおよび前記キャッシュを読み書きして処理を実行する中央処理装置を備えるコンピュータに、
 前記中央処理装置が実行するアプリケーションによる前記キャッシュの使用状況を測定する手順、
 予め選択した複数のアプリケーションに関するキャッシュ感度または/およびキャッシュ汚染度を測定する手順、
 各前記アプリケーションの性能劣化と前記キャッシュの使用状況とから、各前記アプリケーションのキャッシュ感度または/およびキャッシュ汚染度の指標を算出する手順、
 を実行させるためのものである。
 これにより、各アプリケーションにおけるキャッシュ使用状況から、キャッシュ感度やキャッシュ汚染度が算出できる。
《変形例》
 本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能であり、例えば、次の(a)~(c)のようなものがある。
(a) 図5に示したアプリケーションは一例であり、これらのアプリケーションに限定されない。
(b) 計測対象となるアプリケーションには、仮想マシンやコンテナが含まれていてもよい。
(c) キャッシュ感度とキャッシュ汚染度のうち何れか一方を算出するものであってもよい。
1 キャッシュ評価指標取得システム
11,11a~11d アプリケーション
12 キャッシュ使用指標算出部
121 キャッシュ使用量測定部 (使用状況測定部)
122 アプリケーション性能測定部 (性能測定部)
123 キャッシュ評価指標計算部 (指標算出部)
124 感度算出部 (算出部)
125 汚染度算出部 (算出部)
126 データベース部
2 OS
3 物理ホスト
31,31a~31d CPUコア (中央処理装置)
32a~32d 1次キャッシュメモリ
33a~33d 2次キャッシュメモリ
34 3次キャッシュメモリ (キャッシュ)
35 メインメモリ (メモリ)

Claims (8)

  1.  データを読み書きするメモリと、
     前記メモリよりも高速にアクセス可能なキャッシュと、
     前記メモリおよび前記キャッシュを読み書きして処理を実行する中央処理装置と、
     前記中央処理装置が実行するアプリケーションによる前記キャッシュの使用状況を測定する使用状況測定部と、
     アプリケーションに関するキャッシュ感度とキャッシュ汚染度を測定する性能測定部と、
     予め選択した複数のアプリケーションの性能劣化と前記キャッシュの使用状況とから、各前記アプリケーションのキャッシュ感度または/およびキャッシュ汚染度の指標を算出する指標算出部と、
     を備えることを特徴とするキャッシュ使用指標算出装置。
  2.  前記性能測定部は、予め選択した複数のアプリケーションのうちの第1のアプリケーションを単体で動作させたときの性能に対して、前記複数のアプリケーションのうちの第2のアプリケーションを組み合わせて動作させたときの前記第1のアプリケーションの性能劣化の度合いの平均を、前記第1のアプリケーションにおけるキャッシュ感度とする、
     ことを特徴とする請求項1に記載のキャッシュ使用指標算出装置。
  3.  前記性能測定部は、予め選択した複数のアプリケーションのうちの第1のアプリケーションを単体で動作させたときの性能に対して、前記複数のアプリケーションのうちの第2のアプリケーションを組み合わせて動作させたときの第1のアプリケーションの性能劣化の度合いの平均を、前記第2のアプリケーションにおけるキャッシュ汚染度とする、
     ことを特徴とする請求項1に記載のキャッシュ使用指標算出装置。
  4.  前記指標算出部は、各前記アプリケーションの性能劣化を目的変数とし、前記キャッシュの使用状況を説明変数として重回帰分析を行い、偏回帰係数を算出する、
     ことを特徴とする請求項1から3のうち何れか1項に記載のキャッシュ使用指標算出装置。
  5.  前記偏回帰係数と前記キャッシュの使用状況とから、アプリケーションのキャッシュ感度または/およびキャッシュ汚染度を算出する算出部、
     を更に備えることを特徴とする請求項4に記載のキャッシュ使用指標算出装置。
  6.  データを読み書きするメモリと、
     前記メモリよりも高速にアクセス可能なキャッシュと、
     前記メモリおよび前記キャッシュを読み書きして処理を実行する中央処理装置を備えるコンピュータは、
     前記中央処理装置が実行するアプリケーションによる前記キャッシュの使用状況を測定するステップと、
     予め選択した複数のアプリケーションに関するキャッシュ感度または/およびキャッシュ汚染度を測定するステップと、
     各前記アプリケーションの性能劣化と前記キャッシュの使用状況とから、各前記アプリケーションのキャッシュ感度または/およびキャッシュ汚染度の指標を算出するステップと、
     を実行することを特徴とするキャッシュ使用指標算出方法。
  7.  前記指標と前記キャッシュの使用状況とから、アプリケーションのキャッシュ感度または/およびキャッシュ汚染度を算出するステップ、
     を更に実行することを特徴とする請求項6に記載のキャッシュ使用指標算出方法。
  8.  データを読み書きするメモリと、
     前記メモリよりも高速にアクセス可能なキャッシュと、
     前記メモリおよび前記キャッシュを読み書きして処理を実行する中央処理装置を備えるコンピュータに、
     前記中央処理装置が実行するアプリケーションによる前記キャッシュの使用状況を測定する手順、
     予め選択した複数のアプリケーションに関するキャッシュ感度または/およびキャッシュ汚染度を測定する手順、
     各前記アプリケーションの性能劣化と前記キャッシュの使用状況とから、各前記アプリケーションのキャッシュ感度または/およびキャッシュ汚染度の指標を算出する手順、
     を実行させるためのキャッシュ使用指標算出プログラム。
PCT/JP2019/029789 2019-07-30 2019-07-30 キャッシュ使用指標算出装置、キャッシュ使用指標算出方法、および、キャッシュ使用指標算出プログラム WO2021019674A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021536509A JP7226557B2 (ja) 2019-07-30 2019-07-30 キャッシュ使用指標算出装置、キャッシュ使用指標算出方法、および、キャッシュ使用指標算出プログラム
PCT/JP2019/029789 WO2021019674A1 (ja) 2019-07-30 2019-07-30 キャッシュ使用指標算出装置、キャッシュ使用指標算出方法、および、キャッシュ使用指標算出プログラム
US17/626,862 US11822476B2 (en) 2019-07-30 2019-07-30 Cache usage index calculation device, cache usage index calculation method, and cache usage index calculation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/029789 WO2021019674A1 (ja) 2019-07-30 2019-07-30 キャッシュ使用指標算出装置、キャッシュ使用指標算出方法、および、キャッシュ使用指標算出プログラム

Publications (1)

Publication Number Publication Date
WO2021019674A1 true WO2021019674A1 (ja) 2021-02-04

Family

ID=74229388

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/029789 WO2021019674A1 (ja) 2019-07-30 2019-07-30 キャッシュ使用指標算出装置、キャッシュ使用指標算出方法、および、キャッシュ使用指標算出プログラム

Country Status (3)

Country Link
US (1) US11822476B2 (ja)
JP (1) JP7226557B2 (ja)
WO (1) WO2021019674A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017073045A (ja) * 2015-10-09 2017-04-13 日本電信電話株式会社 キャッシュ競合管理システム、リソース割当サーバおよびリソース割当方法
JP2018112946A (ja) * 2017-01-12 2018-07-19 富士通株式会社 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006195867A (ja) * 2005-01-17 2006-07-27 Matsushita Electric Ind Co Ltd バス調停方法及び半導体装置
US8275942B2 (en) * 2005-12-22 2012-09-25 Intel Corporation Performance prioritization in multi-threaded processors
US8560779B2 (en) * 2011-05-20 2013-10-15 International Business Machines Corporation I/O performance of data analytic workloads
KR102441178B1 (ko) * 2015-07-29 2022-09-08 삼성전자주식회사 컴퓨팅 장치에서 캐시 플루딩 프로세스를 관리하기 위한 장치 및 방법
US10725878B2 (en) * 2015-07-31 2020-07-28 Hitachi, Ltd. Storage apparatus, storage system, and control method of storage system for dynamically securing free space when a storage apparatus is disused

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017073045A (ja) * 2015-10-09 2017-04-13 日本電信電話株式会社 キャッシュ競合管理システム、リソース割当サーバおよびリソース割当方法
JP2018112946A (ja) * 2017-01-12 2018-07-19 富士通株式会社 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NAKAMURA, TETSURO ET AL.: "A method of avoiding conflicts of resource in CPU cache under the virtual environment and its evaluation", LECTURE PROCEEDINGS 2 OF THE 2016 COMMUNICATION SOCIETY CONFERENCE OF IEICE, 6 September 2016 (2016-09-06) *

Also Published As

Publication number Publication date
US11822476B2 (en) 2023-11-21
JP7226557B2 (ja) 2023-02-21
JPWO2021019674A1 (ja) 2021-02-04
US20220261348A1 (en) 2022-08-18

Similar Documents

Publication Publication Date Title
US9477601B2 (en) Apparatus and method for determining a sector division ratio of a shared cache memory
US9971548B1 (en) Storage resource management employing performance analytics
US8495318B2 (en) Memory page management in a tiered memory system
US10025504B2 (en) Information processing method, information processing apparatus and non-transitory computer readable medium
AU2014271274B2 (en) System and method predicting effect of cache on query elapsed response time during application development stage
US20190227936A1 (en) Heterogeneous computing system configured to adaptively control cache coherency
JP2019517690A (ja) キャッシュ置換ポリシーのスケーリングされたセットデュエリング
CN116755634A (zh) 计算机存储器的性能计数器
US11048540B2 (en) Methods and apparatus to manage heat in a central processing unit
CN111258927B (zh) 一种基于采样的应用程序cpu末级高速缓存缺失率曲线的预测方法
US8359291B2 (en) Architecture-aware field affinity estimation
WO2021019674A1 (ja) キャッシュ使用指標算出装置、キャッシュ使用指標算出方法、および、キャッシュ使用指標算出プログラム
GB2547189A (en) Cache and method
JP6145193B2 (ja) メモリへの読取り又は書込み
JP7259967B2 (ja) キャッシュチューニング装置、キャッシュチューニング方法、および、キャッシュチューニングプログラム
US20220114097A1 (en) System performance management using prioritized compute units
JP5521687B2 (ja) 分析装置、分析方法および分析プログラム
JP7013360B2 (ja) 情報処理装置、情報処理方法、およびプログラム
CN110196819B (zh) 内存访问方法与硬件
KR20200077391A (ko) 클라우드 환경 내에서 가상 머신을 위한 마이그레이션을 수행하기 위한 전자 장치 및 그의 동작 방법
EP4312123A1 (en) Memory aware context switching
JP6405331B2 (ja) キャッシュ管理システム、評価方法、管理サーバ、物理サーバ、および、測定サーバ
CN105404587B (zh) 一种数据搬移方法及装置
Ho et al. Evolution of application-specific cache mappings

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19939463

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021536509

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19939463

Country of ref document: EP

Kind code of ref document: A1