Performance information collecting program, performance information collecting method, and information processor

The performance information collection program addresses the increased burden on information processing devices by using hash values to identify identical processes, enabling efficient measurement and transmission of performance information for detailed analysis.

JP2025169753APending Publication Date: 2025-11-14FUJITSU LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024074808
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-05-02
Publication Date
2025-11-14

AI Technical Summary

Technical Problem

The burden on information processing devices to measure and transmit performance information increases with the number of types of performance information to be measured, leading to increased network load and decreased measurement accuracy.

Method used

A performance information collection program that calculates hash values for processes using a hash function and determines process identity based on matching hash values, allowing selective measurement and transmission of performance information.

Benefits of technology

Reduces the burden on information processing devices by minimizing the amount of information communicated while ensuring sufficient types of performance information for detailed system performance analysis, maintaining measurement accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025169753000001_ABST
    Figure 2025169753000001_ABST
Patent Text Reader

Abstract

To reduce a burden on an information processor for measuring and transmitting performance information.SOLUTION: An information processor 100 subject performance analysis acquires a value of relevant information 30 related to each of multiple processes 4 executed on the information processor 100 subject to performance analysis to calculate a hash value 50 for each of the multiple processes 4 by inputting the acquired values of the relevant information 30 for each of the multiple processes 4 into a hash function 40, then if the hash values 50 calculated for a first process 4-1 and a second process 4-3 included in the multiple processes 4 match, measures second performance information 72 that differs at least partially from first performance information 7-1 measured in an execution state of the first process, in an execution state of the second process 4-3.SELECTED DRAWING: Figure 9
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a performance information collection program, a performance information collection method, and an information processing device. [Background technology]

[0002] A system performance analysis is known that finds causes of performance degradation based on performance information acquired from an information processing device. In order to prevent pressure on a database due to an increase in the amount of performance information stored, a technique is known in which a correlation coefficient between the performance information and model data is calculated at regular intervals, and performance information whose correlation coefficient is higher than a threshold is not stored. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2004-104154 Summary of the Invention [Problem to be solved by the invention]

[0004] As the number of types of performance information to be measured increases, the burden on the information processing device that is the target of performance analysis to measure the performance information and to transmit the performance information to the analysis device increases.

[0005] In one aspect, an object of the present invention is to reduce the burden on a target information processing device to measure and transmit performance information. [Means for solving the problem]

[0006] In one aspect, a performance information collection program causes a computer to execute the following processing. The processing acquires values ​​of associated information related to each of a plurality of processes executed in an information processing device that is the target of performance analysis. The processing calculates a hash value for each of the plurality of processes by inputting the acquired values ​​of the associated information for each of the plurality of processes into a hash function. The processing determines whether the hash values ​​calculated for a first process and a second process included in the plurality of processes (4) match. If the calculated hash values ​​match, the processing measures, in the execution state of the second process, second performance information that is at least partially different from the first performance information measured in the execution state of the first process. [Effects of the Invention]

[0007] According to one aspect, the present invention can reduce the burden on an information processing device that is the target of performance analysis to measure and transmit performance information. [Brief explanation of the drawings]

[0008] [Figure 1] FIG. 1 is a diagram illustrating an example of the configuration of a system according to an embodiment. [Figure 2] FIG. 2 is a block diagram showing an example of the hardware (HW) configuration of a computer that realizes a target server according to an embodiment. [Figure 3] FIG. 2 is a diagram illustrating a system performance analysis in the system shown in FIG. [Figure 4] FIG. 10 is a diagram showing the relationship between the number of counters and the number of types of performance information in the target server in the first comparative example. [Figure 5] FIG. 10 is a diagram illustrating an example of a relationship between a plurality of pieces of performance information and a performance information set according to an embodiment. [Figure 6] FIG. 10 is a diagram illustrating an example of a performance information collection process by a target server according to an embodiment. [Figure 7] FIG. 10 is a diagram showing a process identity determination mode in a second comparative example. [Figure 8] FIG. 2 is a block diagram illustrating an example of a functional configuration of a target server according to an embodiment. [Figure 9] FIG. 10 is a diagram illustrating an example of a process identity determination process by a target server according to an embodiment. [Figure 10] FIG. 10 is a diagram illustrating an example of a determination result of process identity. [Figure 11] 10 is an example of a priority table 60 that determines a priority for each of a plurality of pieces of related information. [Figure 12] FIG. 10 is a diagram illustrating an example of a measurement process of performance information by a target server according to an embodiment. [Figure 13] FIG. 10 is a diagram illustrating a first example in which environmental variables are used as related information. [Figure 14] FIG. 10 is a diagram showing the calculation result of a hash value in the first example case. [Figure 15] FIG. 10 is a diagram illustrating a second example in which memory map information is used as related information. [Figure 16] FIG. 10 is a diagram showing the calculation result of a hash value in the second example. [Figure 17] FIG. 10 is a diagram illustrating a third example in which the number of times an execution address is used is used as the value of related information. [Figure 18] FIG. 10 is a diagram illustrating a third example in which the number of times an execution address is used is used as the value of related information. [Figure 19] FIG. 10 is a diagram illustrating calculation results of hash values ​​in the third example. [Figure 20] 10 is a flowchart illustrating an example of the operation of a performance information collection process by a target server according to an embodiment. [Figure 21] 10 is a flowchart illustrating an example of an operation of a process identity determination process by a target server according to an embodiment. [Figure 22] 10 is a flowchart illustrating an example of the operation of storing related information and comparing hash values ​​by a target server according to an embodiment. [Figure 23]10 is a flowchart illustrating an example of an operation of a performance information selection and measurement process by a target server according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0009] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. However, the embodiment described below is merely an example, and is not intended to exclude various modifications or application of techniques not explicitly described below. For example, this embodiment can be implemented with various modifications within the scope of its spirit. In the drawings used in the following description, parts with the same reference numerals represent the same or similar parts unless otherwise specified.

[0010] [A] Explanation of an example system 1 is a diagram showing an example of the configuration of a system 1 according to an embodiment. As will be described later, the system 1 of this embodiment determines the identity between processes based on the collision state (i.e., identity) of hash values ​​obtained by inputting values ​​of related information related to each process 4 to be executed into a hash function. The processing content will be described below.

[0011] The system 1 processes a job 3 input from a user terminal 2 or the like. The job 3 is a processing unit input from a shell that constitutes an OS (Operating System).

[0012] A job 3 includes multiple processes 4. A process 4 may be a program running in memory and is a processing unit from the perspective of the kernel that constitutes the OS. A process 4 is also called a computational process. A current process 4 is referred to as a process 4-i, and one or more preceding processes 4 that have already been executed may be referred to as preceding processes 4-t. A preceding process 4-t is an example of a first process, and a current process 4-i is an example of a second process. In one example, the second process is a subsequent process that follows the preceding process 4-t.

[0013] The system 1 of this embodiment is widely used in various fields, such as the quantum simulator field and the HPC (high-performance computing) field. In particular, jobs 3 in the quantum simulator field and the HPC field tend to repeatedly execute multiple common processes 4. The system 1 utilizes this tendency to reduce the amount of information communicated between multiple target servers 100 and the collection server 20.

[0014] In the example shown in FIG. 1, the system 1 includes a job scheduler 10, a collection server 20, and a plurality of target servers 100-1, 100-2, . . . , 100-N (sometimes collectively referred to as target servers 100).

[0015] The job scheduler 10 controls the start and end of multiple jobs 3 in the system 1. The job scheduler 10 may monitor or report the execution status and end status of the jobs 3. In one example, the job scheduler 10 is called a job management system.

[0016] The collection server 20 collects a plurality of pieces of performance information 5 from each target server 100. The collection server 20 performs a system performance analysis based on the collected plurality of pieces of performance information 5. The results of the system performance analysis may be reported to the user via a user terminal 2 or the like.

[0017] The target server 100 is an example of an information processing device that executes a process 4 included in a job 3. A plurality of target servers 100 constitute a target server group. The target servers 100 are information processing devices that are the subject of system performance analysis. The configuration of the target server 100 is shown using the target server 100-1 as an example. The configurations of the target servers 100-2 to 100-N are similar to the configuration of the target server 100-1.

[0018] [B] Hardware configuration example The functions of the target server 100 according to one embodiment may be realized by one computer or two or more computers. Furthermore, at least a part of the functions of the target server 100 may be realized using HW (Hardware) resources and NW (Network) resources provided by a cloud environment.

[0019] 2 is a block diagram showing an example of a hardware (HW) configuration of the target server 100 that realizes the functions of the target server 100 according to an embodiment. When multiple computers are used as HW resources that realize the functions of the target server 100, each computer may have the HW configuration shown in FIG.

[0020] As shown in FIG. 2, the target server 100 may include, as its HW configuration, a processor 100a, a memory 100b, a storage device 100c, an IF (Interface) device 100d, an IO (Input / Output) device 100e, and a reading device 100f, for example.

[0021] The processor 100a is an example of a processing unit that performs various controls and calculations. The processor 100a may be connected to each block in the target server 100 via a system bus 100i so that they can communicate with each other. The processor 100a may be a multiprocessor including multiple processors, a multi-core processor having multiple processor cores, or a configuration having multiple multi-core processors.

[0022] The processor 100a may be, for example, an integrated circuit (IC) such as a CPU, MPU, GPU, APU, DSP, ASIC, or FPGA. Note that the processor 100a may be a combination of two or more of these integrated circuits. CPU is an abbreviation for Central Processing Unit, MPU is an abbreviation for Micro Processing Unit, GPU is an abbreviation for Graphics Processing Unit, and APU is an abbreviation for Accelerated Processing Unit. DSP is an abbreviation for Digital Signal Processor, ASIC is an abbreviation for Application Specific IC, and FPGA is an abbreviation for Field-Programmable Gate Array.

[0023] The memory 100b is an example of HW that stores various types of data, programs, and other information. The memory 100b may be, for example, a volatile memory such as a dynamic random access memory (DRAM) or a non-volatile memory such as a persistent memory (PM), or both.

[0024] The storage device 100c is an example of HW that stores various types of data, programs, and other information. Examples of the storage device 100c include various storage devices such as a magnetic disk device such as a hard disk drive (HDD), a semiconductor drive device such as an SSD, and a nonvolatile memory. Examples of nonvolatile memory include a flash memory, a storage class memory (SCM), and a read-only memory (ROM).

[0025] The storage device 100c may store a program 100g (performance information collection program) that realizes all or part of the various functions of the target server 100. The program 100g may include an OS (Operating System) and the like in addition to the performance information collection program. In one example, the program 100g in this embodiment may operate as a daemon that operates mainly in the background in a multitasking OS.

[0026] For example, the processor 100a can implement the function of a control unit (control unit 110 in FIG. 8, which will be described later) of the target server 100 by loading a program 100g stored in the storage device 100c into the memory 100b and executing it.

[0027] The target server 100 that is the subject of system performance analysis may act as a computer and execute a performance information collection program to perform each process of performance information collection.

[0028] The IF device 100d is an example of a communication IF that controls connections and communications between various networks including a network between the target server 100 and other devices. Examples of other devices include computers such as the job scheduler 10 and user terminal 2 that provide data to the target server 100, and computers such as the user terminal 2 or collection server 20 that acquire data output from the target server 100.

[0029] For example, the IF device 100d may include an adapter that complies with a LAN (Local Area Network) such as Ethernet (registered trademark) or optical communication such as FC (Fibre Channel). The adapter may be compatible with either or both of wireless and wired communication methods.

[0030] The program 100g may be downloaded to the target server 100 from the network via the communication IF device 100d and stored in the storage device 100c.

[0031] The IO device 100e may include one or both of an input device and an output device. Examples of input devices include a keyboard, a mouse, and a touch panel. Examples of output devices include a monitor, a projector, and a printer. The IO device 100e may also include a touch panel that combines an input device and an output device.

[0032] The reading device 100f is an example of a reader that reads data or program information recorded on the recording medium 100h. The reading device 100f may include a connection terminal or device to which the recording medium 100h can be connected or inserted. Examples of the reading device 100f include an adapter that complies with USB (Universal Serial Bus) or the like, a drive device that accesses a recording disk, and a card reader that accesses a flash memory such as an SD card. Note that the recording medium 100h may store a program 100g, or the reading device 100f may read the program 100g from the recording medium 100h and store it in the storage device 100c.

[0033] Examples of the recording medium 100h include non-transitory computer-readable recording media such as magnetic / optical disks and flash memories. Examples of magnetic / optical disks include flexible disks, CDs (Compact Discs), DVDs (Digital Versatile Discs), Blu-ray Discs, and HVDs (Holographic Versatile Discs). Examples of flash memories include semiconductor memories such as USB memories and SD cards.

[0034] The above-described HW configuration of the target server 100 is an example. Therefore, the HW in the target server 100 may be increased or decreased (for example, adding or deleting any block), divided, integrated in any combination, or the addition or deletion of buses, etc., as appropriate.

[0035] [C] System performance analysis and performance information explanation FIG. 3 is a diagram illustrating system performance analysis in the system 1 shown in FIG. 1. Various applications run on the target server 100. In the target server 100, below the application layer are layers of middleware and OS. Compared to information from the applications and middleware, information about the hardware and information about the OS obtained from the OS is more suitable for detailed system performance analysis. Therefore, the target server 100 measures (collects) multiple pieces of performance information 5 related to the hardware and OS.

[0036] The performance information 5 may include the available memory size (MB) of the memory 100b of the target server 100, memory usage (bytes), the number of pages transferred per second (pages / second), and disk usage (%) of the storage device 100c. The performance information 5 may also include the number of connected users (number of active sessions) and the utilization rate (%) of the processor 100a. The performance information 5 is information on the target server 100 when it is executing each process 4.

[0037] The multiple performance information 5 may include the average utilization rate (%) of the processor 100a, the maximum utilization rate (%) of the processor 100a, the processor busy rate (%) of the processor 100a, the number of context switches per second, and the number of interrupts per second, etc.

[0038] The plurality of performance information 5 may also include the number of pages read per second, the number of pages input per second, the number of page faults per second, and the percentage (%) of hard page faults in the memory 100b. The plurality of performance information 5 may also include the network transfer volume (megabytes per second / number), the transmission volume (MBit) per second, and the reception volume (MBit) per second in the IF device 100d. The plurality of performance information 5 may also include the number of storage transfers per second and the storage transfer volume (MByte) per second in the storage device 100c. The plurality of performance information 5 may also include the host bus transfer volume (MByte) per second in the system bus 100i.

[0039] However, the plurality of pieces of performance information 5 is not limited to the above-mentioned information. The plurality of pieces of performance information 5 does not have to include all of the above-mentioned information, and may include some of the above-mentioned information. The plurality of pieces of performance information 5 is measured while the target server 100 is executing the process 4. The measured plurality of pieces of performance information 5 is sent to the collection server 20. The target server 100 may measure the performance information 5 on its own initiative and send it to the collection server 20. However, the collection server 20 may access the target server 100 and collect the measurement results of the performance information 5 stored in the target server 100.

[0040] 3, the collection server 20 has a machine operation analysis unit 21 and an application property analysis unit 22. The machine operation analysis unit 21 analyzes the operation of the target server 100 based on the collected performance information 5. The application property analysis unit 22 uses the analysis results of the operation of the target server 100 to analyze the cause of performance degradation when the application is executed. The analysis results are sent to the user terminal 2.

[0041] The amount of information communicated between the multiple target servers 100 and the collection server 20 can be estimated by multiplying the number of target servers 100 by the number of types of performance information 5 that each target server 100 measures at one time.

[0042] An increase in the amount of information causes an increase in communication overhead. Specifically, an increase in the amount of information increases the network load and also increases the processor load of the collection server 20.

[0043] Furthermore, the number of types of performance information 5 affects the measurement overhead and measurement accuracy of the performance information 5. Fig. 4 is a diagram showing the relationship between the number of counters in the target server 100 in the first comparative example and the number of types of performance information 5. Note that in the first comparative example, the same component numbers as in the embodiment are used in the explanation.

[0044] To perform a detailed system performance analysis, it is desirable to increase the number of types of performance information 5. However, as the number of types of performance information 5 to be measured increases, the processing load required to perform the measurements, i.e., the measurement overhead, also increases.

[0045] The target server 100 includes a counter 6. The counter 6 is an abstraction layer that includes an interface for measuring (collecting) performance information 5. The counter 6 is called a performance counter. The number of counters in the counter 6 is the number of types of measurement quantities that can be measured at one time.

[0046] If the number of types of performance information 5 to be measured exceeds the number of counters, the performance information 5 to be measured is switched at predetermined intervals within one current process 4. However, when switching the performance information 5 to be measured within one process 4, the time to measure the performance information 5 to be switched becomes shorter, which may result in a decrease in measurement accuracy.

[0047] The system 1 of this embodiment reduces the burden on the target server 100 of measuring and transmitting the performance information 5 while ensuring a sufficient number of types of performance information 5 for detailed system performance analysis.

[0048] 5 is a diagram showing an example of the relationship between a plurality of pieces of performance information 5 and a performance information set 7 according to one embodiment. In FIG. 5, the plurality of pieces of performance information 5 include performance information 5-1 to 5-12. The plurality of pieces of performance information 5 are divided into a plurality of performance information sets 7-1 (#1), 7-2 (#2), and 7-3 (#3). Each of the performance information sets 7-1 to 7-3 (hereinafter sometimes collectively referred to as performance information set 7) includes one or more pieces of predetermined performance information 5 and is the result of a single performance measurement.

[0049] The number of types of performance information 5-1 to 5-12, the number of performance information sets 7, and the types of performance information 5 included in each performance information set 7 are not limited to the example shown in Fig. 5. The number of performance information sets 7 and the types of performance information 5 included in the performance information sets 7 are determined in advance.

[0050] The number of types of performance information 5 included in each performance information set 7 may be different or the same. It is desirable that the number of types of performance information 5 included in each performance information set 7 is equal to or less than the number of counters. When the number of types of performance information 5 included in each performance information set 7 is equal to or less than the number of counters, it is not necessary to switch the performance information 5 to be measured within one process, and therefore it is possible to prevent a decrease in measurement accuracy.

[0051] 6 is a diagram showing an example of a performance information collection process by the target server 100 according to an embodiment. Each target server 100 receives a process 4 included in a job 3 from the job scheduler 10.

[0052] Each target server 100 acquires related information relating to each process 4. The related information will be described in detail later. Each target server 100 uses a data structure called a hash table 8 to manage the related information value (key) and the corresponding hash value as a set.

[0053] A hash function is predetermined for each piece of related information. A hash function is a function that receives an arbitrary value (key) as input and generates an output called a hash value. A hash function outputs the same hash value for the same input value. A hash function outputs different hash values ​​for different input values. There are no particular limitations on the hash function. Any known hash function may be used, so a detailed explanation of the hash function itself will be omitted.

[0054] The hash value is called an index (subscript). In the hash table 8, data is stored at an array position (element) with the hash value as the subscript. The data may include at least one of the process name and the value of the related information. However, the data stored in the hash table 8 is not limited, and it may not even be possible for data to be stored.

[0055] The target server 100 determines the identity of a previous process 4-t and a current process 4-i based on whether the hash values ​​calculated in the previous process 4-t and the current process 4-i included in the multiple processes 4 match. If the hash values ​​calculated in the previous process 4-t and the current process 4-i match, the array positions overlap. If the hash values ​​match, this is sometimes referred to as a hash value collision.

[0056] If the hash values ​​calculated for the preceding process 4-t and the other process match, the selection unit 117 selects second performance information that is at least partially different from the first performance information measured in the execution state of the preceding process 4-t from the plurality of performance information 5. The measurement unit 118 measures the selected second performance information in the execution state of the other process.

[0057] 7 is a diagram showing a process identity determination in a second comparative example. In the second comparative example, multiple processes 4 each have a user ID (UID), a process ID (PID), and a process name (PCOMM). The processor then determines the identity between a previous process 4-t and a current process 4-i based on the PID, PCOMM, and UID.

[0058] However, as shown on the left side of Figure 7, even if the UID and PCOMM are the same among multiple processes 4, different processes may be executed by switching parameters. Therefore, it may be difficult to determine the identity among multiple processes 4 based on the UID and PCOMM.

[0059] Also, as shown on the right side of Figure 7, in the master-worker system, the master determines the work items to be executed and places each item in a shared queue. The master monitors the completion status of each item and terminates its own process when all items are completed. Multiple workers (such as target servers) each retrieve a work item from the shared queue and execute each process. In such cases, multiple processes may have different PIDs but be identical. In this case, it is difficult to determine the identity between multiple processes 4 based on PID. Even in cases where it is difficult to determine the identity between a previous process 4-t and a current process 4-i based on the PID, PCOMM, and UID as described above, it is desirable to be able to determine the identity between multiple processes 4.

[0060] [D] Functional configuration example 8 is a block diagram showing an example of the functional configuration of the target server 100 according to an embodiment. The target server 100 is an example of a computer (information processing device).

[0061] 8, the target server 100 includes a control unit 110 and a memory unit 120. The control unit 110 includes a related information acquisition unit 111, a hash value calculation unit 115, a determination unit 116, a selection unit 117, a measurement unit 118, and a communication unit 119.

[0062] The memory unit 120 is an example of a storage area, and stores various data used by the control unit 110. The memory unit 120 may be realized, for example, by a storage area included in one or both of the memory 100b and the storage device 100c shown in FIG.

[0063] 8, the memory unit 120 may be capable of storing, for example, a hash table 8 and set information 121. The memory unit 120 may also be capable of storing measurement results of a plurality of pieces of performance information 5.

[0064] The set information 121 may include information on the number of performance information sets 7 (in one example, three: #1 to #3), the type of performance information 5 included in each performance information set 7, and the order in which the performance information sets 7 are measured (in one example, the order #1, #2, and #3).

[0065] 9, the hash table 8 includes a different hash function 41 (#AH), a hash function 42 (#BH), and a hash function 43 (#CH) for each of the associated information 31, 32, and 33 (sometimes collectively referred to as associated information 30). The hash table 8 includes hash values ​​51, 52, and 53 calculated for each of the multiple processes 4 by inputting the values ​​of the associated information 31, 32, and 33 into the corresponding hash functions 41 to 43 (sometimes collectively referred to as hash functions 40). The hash values ​​51, 52, and 53 may sometimes be collectively referred to as hash value 50.

[0066] 9 to 12 show an example of the operation of the control unit 110. The related information 30 is information related to a plurality of processes 4, and is information related to determining whether the plurality of processes 4 are identical.

[0067] FIG. 9 is a diagram illustrating an example of a process identity determination process by the target server 100 according to an embodiment.

[0068] As an example, the related information acquisition unit 111 may include at least one or all of an environment variable acquisition unit 112, a memory map acquisition unit 113, and an execution address acquisition unit 114.

[0069] The related information 30 may include environment variables, which will be described later. The environment variables may be variables set for items such as jobs, tasks, processors, or nodes in the execution of the processes 4-1 to 4-3. The environment variable acquisition unit 112 acquires the environment variables.

[0070] The related information 30 may include memory map information, which will be described later. The memory map information is an example of information about memory addresses that can be used in the execution of each of the processes 4-1 to 4-3. The memory map acquisition unit 113 acquires the memory map information.

[0071] The related information 30 may include an execution address, which will be described later. The execution address may be address information used to execute multiple instructions in each process 4. The execution address acquisition unit 114 acquires the number of times the execution address is used, etc.

[0072] The hash value calculation unit 115 calculates a hash value 50 by inputting the value of the related information 30 into the corresponding hash function 40 .

[0073] The determination unit 116 compares the hash values ​​51, 52, and 53 between the preceding process 4-t (e.g., processes 4-1 to 4-2 in FIG. 9) and the current process 4-i (e.g., process 4-3 in FIG. 9). Based on the comparison result, the determination unit 116 determines whether the hash values ​​51, 52, and 53 between the preceding process 4-t (processes 4-1 to 4-2 in FIG. 9) and the current process 4-i match.

[0074] The selection unit 117 selects second performance information from the plurality of pieces of performance information 5, the second performance information being at least partially different from the first performance information measured in the execution state of the preceding process 4-t. The measurement unit 118 measures the selected second performance information in the execution state of the current process 4-i. The communication unit 119 transmits the measurement results of the performance information 5 obtained by the measurement unit 118 to another device such as the collection server 20.

[0075] In FIG. 9, the target server 100 executes a plurality of processes 4 in the order of processes 4-1 (#1), 4-2 (#2), and 4-3 (#3).

[0076] The related information acquisition unit 111 acquires the value of related information 30 for each of the multiple processes 4. In FIG. 9, in process 4-1, the values ​​of related information 31, 32, and 33 are x, xx, and xxx, respectively. In process 4-2, the values ​​of related information 31, 32, and 33 are y, xx, and yyy, respectively. In process 4-3, the values ​​of related information 31, 32, and 33 are x, xx, and xxx, respectively. Note that in FIG. 9, prc1, prc2, and prc3 are the process names of processes 4-1, 4-2, and 4-3.

[0077] The hash value calculation unit 115 inputs the values ​​of the related information 31, 32, 33 into predetermined hash functions 41, 42, 43 to calculate hash values ​​51, 52, 53 for each of the multiple processes 4.

[0078] 9, in process 4-1 (prc1), xA, xB, and xC are calculated as hash values ​​50 for the associated information 31, 32, and 33. In process 4-2 (prc2), yA, xB, and yC are calculated as hash values ​​50 for the associated information 31, 32, and 33. In process 4-3 (prc3), xA, xB, and xC are calculated as hash values ​​50 for the associated information 31, 32, and 33.

[0079] In the case of FIG. 9, the hash value 50 (xA, xB, xC) calculated in the process 4-1 matches the hash value 50 (xA, xB, xC) calculated in the process 4-3.

[0080] The determination unit 116 determines whether the hash values ​​50 of the associated information 30 match between one or more preceding processes 4-t (e.g., process 4-1) and the current process 4-i (e.g., process 4-3) included in the multiple processes 4. In other words, the determination unit 116 determines whether there is a collision of hash values ​​50 between the preceding process 4-t and the current process 4-i.

[0081] The determination unit 116 may use, for example, the chain method to perform the process of determining whether there is a collision of hash values ​​50. However, the determination unit 116 may use the open address method instead of the chain method to perform the process of determining whether there is a collision of hash values ​​50. The determination process method used by the determination unit 116 is not limited as long as it is a technique that determines whether there is a collision state of the hash values ​​50 between the preceding process 4-t and the current process 4-i, that is, whether the hash values ​​50 match.

[0082] The chaining method is a method for resolving collisions that occur when searching for data using the hashing method, and it prepares and manages lists for the number of collisions placed in one position. Therefore, the hash table 8 is an array of lists.

[0083] The open address method is a method of performing a rehash to find another free storage location using a separate means when a collision occurs. The chain method and the open address method themselves can use existing technology, so a detailed description will be omitted.

[0084] If the hash values ​​50 of the preceding process 4-t and the current process 4-i match, the selection unit 117 selects a performance information set 7-2 that includes performance information that is at least partially different from the performance information set 7-1 (#1) measured in the execution state of the preceding process 4-t. The measurement unit 118 measures the selected performance information set 7-2 (#2) in the execution state of the current process 4-3.

[0085] Therefore, the determination unit 116 determines identity between the multiple processes 4 based on the hash value 50. Specifically, if the hash values ​​51 are the same between the multiple processes 4, the determination unit 116 determines that the associated information 31 (#A) between the multiple processes 4 is the same. Similarly, if the hash values ​​52 are the same between the multiple processes 4, the determination unit 116 determines that the associated information 32 (#B) is the same. Similarly, if the hash values ​​53 are the same between the multiple processes 4, the determination unit 116 determines that the associated information 33 (#C) is the same. Note that the number of the multiple processes 4 and the number of the multiple pieces of associated information 30 are not limited to those in FIG. 9.

[0086] 10 is a diagram showing an example of a process identity determination result. The determination unit 116 determines that the related information #A, B, and C are identical between the process 4-3 with the process name prc3 and the preceding process 4-1 with the process name prc1. On the other hand, the determination unit 116 determines that the related information #B is identical between the process 4-3 with the process name prc3 and the preceding process 4-2 with the process name prc2, but the related information #A and #C are not identical. As a result, the determination unit 116 determines that the process 4-3 with the process name prc3 is identical to the preceding process 4-1 with the process name prc1, but is not identical to the preceding process 4-2 with the process name prc2.

[0087] A plurality of processes 4 are said to be "identical" if they share at least some of the hash values ​​51, 52, and 53 calculated for predetermined related information #A, #B, and #C. However, the determination unit 116 may determine that a plurality of processes 4 are identical when all items of related information 31, 32, and 33 are identical between the plurality of processes 4, that is, when all of the hash values ​​51, 52, and 53 are identical.

[0088] Fig. 11 is an example of a priority table 60 that determines priorities 61 for multiple pieces of related information #A, B, and C. In Fig. 11, priorities 61 are determined for related information 31 (#A), 32 (#B), and 33 (#C). In Fig. 11, a first priority 61a is determined for related information 31 (#A) and 32 (#B), and a second priority 61b is determined for related information 33 (#C). The priority level of the first priority 61a is higher than the priority level of the second priority 61b.

[0089] 11, when the first priority 61a is set as the criterion, the determination unit 116 may determine that the multiple processes 4 are identical if the hash values ​​51, 52 of the related information 31 and 32, whose priority 61 is equal to or higher than the criterion, are common among the multiple processes 4. In this case, the determination unit 116 may omit comparison of the remaining hash values ​​53 among the multiple processes 4.

[0090] Note that when multiple processes 4 have "identity," it also includes cases where other additional information is different from each other. Therefore, "identity" may also be referred to as similarity or commonality.

[0091] 12 is a diagram showing an example of a measurement process of performance information 5 by the target server 100 according to an embodiment. In FIG. 12, processes 4-1, 4-3, and 4-6 are determined to be processes 4 that are identical to one another based on a hash value 50. The fact that processes 4-1, 4-3, and 4-6 are identical to one another is indicated by a frame (rectangle).

[0092] In the target server 100 of this embodiment, the measurement unit 118 does not need to complete measurement of all of the multiple performance information 5 during the execution of one process 4 (e.g., process 4-1). The measurement unit 118 measures multiple performance information 5 in a distributed manner among multiple identical processes 4 (e.g., processes 4-1 and 4-3). In FIG. 12, of the multiple performance information 5, performance information set 7-1 (for example, performance information 5-1 to 5-4 in FIG. 5) is measured during the execution state of process 4-1. Of the multiple performance information 5, performance information set 7-2 (for example, performance information 5-5 to 5-8 in FIG. 5) is measured during the execution state of process 4-3. Furthermore, performance information set 7-3 (for example, performance information 5-9 to 5-12 in FIG. 5) is measured during the execution state of process 4-6.

[0093] The greater the number of identical processes 4, the greater the amount of performance information 5 to be measured. Even without increasing the number of types of performance information 5 to be measured in one process, it is possible to measure a sufficient number of types of performance information 5 to enable detailed system performance analysis.

[0094] The number of types of performance information 5 included in each performance information set 7 may be different or the same. It is desirable that the number of types of performance information 5 included in each performance information set 7 is equal to or less than the number of counters. When the number of types of performance information 5 included in each performance information set 7 is equal to or less than the number of counters, it is not necessary to switch the performance information 5 to be measured within one process 4, and therefore it is possible to prevent a decrease in measurement accuracy.

[0095] [D-1] First example of identity judgment in process 4 FIG. 13 is a diagram showing a first example in which an environment variable 30a is used as the related information 30. FIG. 13 is a diagram illustrating an example of the environment variable 30a, and shows the environment variable 30a in correspondence with its meaning. In the first example, the environment variable acquisition unit 112 acquires the value of the environment variable (environment variable name) 30a as an example of the value of the related information 30 (31, 32, 33). The environment variables 30a listed in FIG. 13 are one example. The number and contents of the environment variables 30a are not limited. The items of the environment variables 30a may be determined in advance. The determination unit 116 can determine that the processes are not the same if the environment variables 30a obtained from the job scheduler 10 are different.

[0096] The environment variables 30a may be variables set for at least one of a job, a task, a processor, and a node. The environment variables 30a themselves are known, and therefore a detailed description thereof will be omitted.

[0097] The environment variable acquisition unit 112 may acquire the value of the environment variable 30a from the job scheduler 10 (for example, Slurm Workload Manager).

[0098] Fig. 14 is a diagram showing the calculation result of the hash value 50 in the first example. In Fig. 14, environment variables #A_1 and #B_1 are given as environment variables 30a. #AH_1 is provided as the hash function 40 corresponding to environment variable #A_1, and #BH_1 is provided as the hash function 40 corresponding to environment variable #B_1.

[0099] In the process 4-1 (process name prc1), the values ​​of the environment variables #A_1 and #B_1 are x_1 and xx_1, respectively. The environment variable acquisition unit 112 acquires the values ​​of the environment variables #A_1 and #B_1.

[0100] The hash value calculation unit 115 inputs the values ​​of environment variables #A_1 and #B_1 to hash functions 40, #AH_1 and #BH_1, to calculate xA_1 and xB_1 as #AV_1 and #BV_1, which are hash values ​​50. The hash value calculation unit 115 similarly calculates xA_1 and xB_1 as hash values ​​50 in process 4-3 (process name prc3).

[0101] When the judgment unit 116 refers to the array positions indicated by xA and xB, which are the calculated hash values ​​50, in the subsequent process 4-3 (prc3), it detects that the environment variables 30a of the preceding process 4-1 have already been assigned to the same array positions. In other words, the judgment unit 116 determines that the hash values ​​50 collide. The collision of hash values ​​50 means that the hash values ​​50 (xA_1, xB_1) calculated in the preceding process 4-1 (prc1) and the subsequent process 4-3 (prc3) match. In this case, the judgment unit 116 determines that the preceding process 4-1 (prc1) and the subsequent process 4-3 (prc3) are the same.

[0102] On the other hand, the hash values ​​50 (yA_1, xB_1) calculated in the preceding process 4-2 (prc2) and the subsequent process 4-3 (prc3) do not match (xA_1, xB_1). In this case, the judgment unit 116 judges that the preceding process 4-2 (prc2) and the subsequent process 4-3 (prc3) are different.

[0103] [D-2] Second example of identity judgment in process 4 FIG. 15 is a diagram showing an example of related information 30 used in a second example of identity determination of processes 4. In the second example, the memory map acquisition unit 113 acquires the value of memory map information 30b as an example of the value of related information 30 (31, 32, 33). The memory map information 30b is an example of information about memory addresses available in the execution state of each process 4, and may be information about virtual address space information. The determination unit 116 can determine that multiple processes 4 with different memory map information 30b are not the same process.

[0104] The values ​​of the memory map information 30b are given as the values ​​of available memory addresses for each path (path name). A path is a character string that indicates the location of a specific resource in a computer, and may be a file path, for example.

[0105] In one example, the memory map acquisition unit 113 acquires a PID (process identification). The memory map acquisition unit 113 acquires the memory map information 30b by, for example, using a procfs (Process Filesystem) to read a maps file from a proc directory according to the PID.

[0106] The memory map acquisition unit 113 may acquire the UID that executed the exec() system call in each process 4 by tracing the kernel using a toolkit that uses an extended BPF (Berkeley Packet Filter).

[0107] The path name (path) of the mapped file is used as an item of the memory map information 30b. The address of the mapping is used as a value of the memory map information 30b. The address of the mapping may include a start address and an end address.

[0108] 15, in a process 4-1 (process name prc1) whose PID is pid1, the items of memory map information 30b are path name #A_2 and path name #B_2, and the values ​​of memory map information 30b are the addresses of the respective mappings. In a process 4-2 (process name prc2) whose PID is pid2, the item of memory map information 30b is path name #A_2, and the value of memory map information 30b is the address of the mapping corresponding to path name #A_2.

[0109] 16 is a diagram showing the calculation result of the hash value 50 in the case of Example 2. #AH_2 is provided as the hash function 40 corresponding to the path name #A_2, and #BH_2 is provided as the hash function 40 corresponding to the path name #B_2.

[0110] In process 4-1 (process name prc1), the addresses of path name #A_2 and path name #B_2 are x_2 and xx_2, respectively. The memory map acquisition unit 113 acquires the addresses of path name #A_2 and path name #B_2. The addresses may be at least one of the start address and end address of the mapping. The addresses correspond to the value of the related information 30.

[0111] The hash value calculation unit 115 inputs the address of the path name #A_2 and the address of the path name #B_2 into the hash functions 40 #AH_2 and #BH_2 to calculate xA_2 and xB_2 as the hash values ​​50 #AV_2 and #BV_2.

[0112] On the other hand, in the subsequent process 4-2 (process name prc2), the address of the path name #A_2 is x_2, but the address of the path name #B_2 does not exist. The memory map acquisition unit 113 acquires the address of the path name #A_2 and acquires information that each address of the path name #B_2 does not exist.

[0113] 16, since the addresses of the path name #B_2 do not exist in the process 4-2 (process name prc2), the hash value 50, #BV_2, does not exist either. In this case, it may be determined that the hash values ​​50 calculated in the preceding process 4-1 (prc1) and the subsequent process 4-2 (prc2) do not match. The determination unit 116 determines that the preceding process 4-1 (prc1) and the subsequent process 4-2 (prc2) are different.

[0114] [D-3] Third example of identity judgment in process 4 17 and 18 show a third example in which the number of uses of the execution address 30c is used as the value of the related information 30. FIG. 17 shows an example of the number of uses of the execution address 30c in process 4-1 (prc1) whose PID is #4532. FIG. 18 shows an example of the execution address 30c in process 4-2 (prc2) whose PID is #738665. Note that an example of the related information 30 in process 4-3 (prc3) is omitted, but is the same as the case shown in FIG. 17.

[0115] In the third example, the execution address acquisition unit 114 acquires the number of uses of the execution address 30c as an example of the value of the related information 30 (31, 32, 33). If the number of uses of the execution address 30c differs among the multiple processes 4, the determination unit 116 can determine that the multiple processes 4 are not the same process. The number of uses of the execution address 30c includes a value based on the number of uses, such as the frequency of use.

[0116] The execution address 30c may be address information used to execute each instruction in each process 4. In this example, the execution address 30c is an instruction pointer (i.e., an instruction pointer) that points to the address to be executed next.

[0117] The execution address acquisition unit 114 acquires the instruction pointer to be used. The execution address acquisition unit 114 can acquire the instruction pointer using a technique such as Linux perf (Performance analysis tools for Linux) or BPF (Berkeley Packet Filter) tracing. The acquisition of the instruction pointer itself is similar to existing techniques, so a detailed explanation will be omitted. The execution address acquisition unit 114 accumulates the number of times the instruction pointer is used. Linux is a registered trademark.

[0118] 19 is a diagram showing the calculation result of the hash value 50 in the third example. In Fig. 19, instruction pointer #A_3 and instruction pointer #B_3 are given as the execution address 30c. #AH_3 is provided as the hash function 40 corresponding to the instruction pointer #A_3, and #BH_3 is provided as the hash function 40 corresponding to the instruction pointer #B_3.

[0119] In the process 4-1 (process name prc1), the use counts of the instruction pointer #A_3 and the instruction pointer #B_3 are x_3 and xx_3, respectively. The execution address acquisition unit 114 acquires the use counts of the instruction pointer #A_3 and the instruction pointer #B_3.

[0120] The hash value calculation unit 115 inputs the respective usage counts of the instruction pointer #A_3 and the instruction pointer #B_3 as values ​​to #AH_3 and #BH_3, which are hash functions 40. As a result, the hash value calculation unit 115 calculates xA_3 and xB_3 as #AV_3 and #BV_3, which are hash values ​​50. Similarly, in the process 4-3 (process name prc3), the hash value calculation unit 115 calculates xA_3 and xB_3 as hash values ​​50.

[0121] When the judgment unit 116 refers to the array positions indicated by xA and xB, which are the calculated hash values ​​50, in the subsequent process 4-3 (prc3), it detects that the execution address 30c of the preceding process 4-1 has already been assigned to the same array position. In other words, the judgment unit 116 determines that the hash values ​​50 collide. A collision of hash values ​​50 means that the hash values ​​50 (xA_3, xB_3) calculated in the preceding process 4-1 (prc1) and the subsequent process 4-3 (prc3) match. In this case, the judgment unit 116 determines that the preceding process 4-1 (prc1) and the subsequent process 4-3 (prc3) are the same.

[0122] On the other hand, the hash values ​​50 (yA_3, xB_3) calculated in the preceding process 4-2 (prc2) and the subsequent process 4-3 (prc3) do not match (xA_3, xB_3). In this case, the judgment unit 116 judges that the preceding process 4-2 (prc2) and the subsequent process 4-3 (prc3) are different.

[0123] 13 to 19 are merely examples. The related information 30 may include at least one of the environmental variables 30a, the memory map information 30b, and the execution addresses 30c. The related information 30 may include all of the environmental variables 30a, the memory map information 30b, and the execution addresses 30c. Furthermore, the related information 30 is not limited to the environmental variables 30a, the memory map information 30b, and the execution addresses 30c. In one example, the related information 30 may be CPI (Cycles Per Instruction), which is an index indicating the number of clock cycles required per instruction. Since CPI is often acquired in all of the multiple processes 4, an increase in new load is suppressed. [E] Example of operation FIG. 20 is a flowchart showing an example of the operation of the performance information collection process by the target server 100 according to an embodiment.

[0124] 20, if the control unit 110 of the target server 100 does not receive an instruction to execute process 4 (see the No route in step S2), it continues to wait for processing (idle state) (step S1). Process 4 is a calculation process. If process 4 is to be executed (see the Yes route in step S2), the process proceeds to step S3.

[0125] The control unit 110 executes a process identity determination process to determine the identity of the current process 4-i and the preceding process 4-t based on the hash value 50 obtained by inputting the value of the acquired related information 30 into the hash function 40 (step S3).

[0126] The control unit 110 acquires the values ​​of the associated information 30 acquired between the preceding process 4-t and the current process 4-i. A hash function 40 is predefined corresponding to the associated information 30. The control unit 110 inputs the values ​​of the associated information 30 into the hash function 40 to calculate a hash value 50 for each of the multiple processes 4.

[0127] The control unit 110 executes a performance information selection and measurement process based on the determination result of whether or not the hash values ​​50 for the corresponding related information 30 match between the multiple processes 4 (step S4). The performance information selection and measurement process includes a process of selecting performance information 5 to be measured in the current execution state of the process 4-i, and a process of measuring the selected performance information 5. Note that the control unit 110 executes a calculation process (not shown) for the process 4 in parallel with step S4.

[0128] The communication unit 119 transfers the measured data of the performance information 5 to the collection server 20 (step S5).

[0129] The control unit 110 repeats the processing of steps S3 to S6 for each process 4 until all processes 4 included in the job 3 are completed (see the No route in step S6). When the control unit 110 completes all processes 4 included in the job 3 (see the Yes route in step S6), the control unit 110 ends the processing. Note that the control unit 110 may end the processing even if a forced termination instruction is received before all processes 4 included in the job 3 are executed.

[0130] 21 is a diagram showing an example of the operation of the process identity determination process by the target server 100 according to an embodiment. The flowchart in FIG. 21 is an example of the process of step S3 shown in FIG.

[0131] The related information acquisition unit 111 acquires the values ​​of the related information 30 related to each of the multiple processes 4 executed in the target server 100 that is the subject of performance analysis (step S11).

[0132] Next, the control unit 110 executes processing for storing the related information 30 and comparing the hash values ​​50 (step S12). An example of the processing in step S12 will be described with reference to FIG.

[0133] FIG. 22 is a diagram showing an example of the operation of the target server 100 according to an embodiment, in which the related information 30 is stored and the hash value 50 is compared.

[0134] The hash value calculation unit 115 inputs the value of the associated information 30 into the corresponding hash function 40 to calculate a hash value 50. The hash value calculation unit 115 stores the value of the associated information 30 in the hash table 8 (hash table) using the calculated hash value 50 as an index (i.e., an array position) (step S21). The processing of step S21 is an example of processing for calculating a hash value 50 for each of the multiple processes 4 to be executed by inputting the value of the associated information 30 related to each of the multiple processes 4 to a predetermined hash function 40.

[0135] The determination unit 116 refers to the priority table 60 and determines whether there is a difference in the priority 61 of each piece of related information 30 (step S22). If there is a difference in the priority 61 of each piece of related information 30 (Yes route in step S22), the determination unit 116 selects uncompared related information 30 in descending order of priority 61 (step S23). If there is no difference in the priority 61 of each piece of related information 30 (No route in step S22), the determination unit 116 selects uncompared related information 30 (step S24).

[0136] In one example, the determination unit 116 may list each piece of related information 30 and determine whether it has been compared based on a flag.

[0137] When multiple pieces of related information 30 coexist, some of the pieces of related information 30 have the same priority 61 and others have different priorities 61, the determination unit 116 sorts the related information 30 using a stable sorting method based on the priority 61. Stable sorting is a method of preserving the order of the same values ​​(in this example, the magnitude relationship of the priorities 61) without changing. For example, consider a case where the priority 61 has two levels: a first priority 61a and a second priority 61b that is lower than the first priority 61a, and where multiple pieces of related information 30 have the first priority 61a and multiple pieces of related information 30 have the second priority 61b. In this case, the determination unit 116 selects multiple pieces of related information 30 that have the first priority 61a. Because there is no difference in the priorities 61 between the multiple pieces of related information 30 that have the same first priority 61a, the determination unit 116 selects uncompared related information 30 according to the stable sorting order. When selection of all of the multiple related information 30 having the first priority 61a is completed, the determination unit 116 calculates multiple related information 30 having a second priority 61b, which is the next highest priority after the first priority 61a. Since there is no difference in the priority 61 between the multiple related information 30 having the same second priority 61b, the determination unit 116 arbitrarily selects uncompared related information 30 in accordance with the stable sort order. When the priority ranking is three or more levels, the determination unit 116 may repeat the same process.

[0138] The determination unit 116 extracts the process name of the process 4 in which a collision of hash values ​​50 occurs in the hash table 8 corresponding to the selected related information 30 (step S25).

[0139] In one example, the determination unit 116 determines whether a collision of hash values ​​50 occurs in the hash table 8 corresponding to the selected related information 30. In other words, for each piece of related information 30, the determination unit 116 may determine whether the hash values ​​50 calculated by inputting the value of the related information 30 into the hash function 40 are the same among the multiple processes 4.

[0140] The process returns to step S13 in Fig. 21. In step S13, the determination unit 116 determines whether there is a preceding process 4-t whose hash value 50 conflicts with the current process 4-i. In other words, the determination unit 116 determines whether there is a preceding process 4-t whose hash value 50 matches that of the current process 4-i.

[0141] If there is a preceding process 4-t whose hash value 50 collides with the current process 4-i (see the Yes route in step S13), the judgment unit 116 judges that the preceding process 4-t and the current process 4-i are identical (step S14).If there is no preceding process 4-t whose hash value 50 collides with the current process 4-i (see the No route in step S13), the judgment unit 116 judges that the preceding process 4-t and the current process 4-i are not identical (step S15).

[0142] 23 is a diagram showing an example of the operation of the performance information selection and measurement process by the target server 100 according to an embodiment. The flowchart in FIG. 23 is an example of the process of step S4 shown in FIG.

[0143] If there is no preceding process 4-t that is identical to the current process 4-i, the processes in steps S31 and S32 are executed, and the process ends.

[0144] The selection unit 117 selects one performance information set 7-1 (for example, #1) from the multiple performance information sets 7 (#1, #2, #3) (step S31). Specifically, if the determination unit 116 determines that the current process 4-i and the preceding process 4-t do not have identity, the selection unit 117 selects the first performance information set 7-1 (#1) in order according to the set information 121.

[0145] The measuring unit 118 measures the performance information 5 included in the plurality of performance information sets 7 selected by the selecting unit 117 in the current execution state of the process 4-i (step S32), and the processing ends.

[0146] If there is a preceding process 4-t that is identical to the current process 4-i, the processes of steps S33 to S36 and step S32 are executed.

[0147] The selection unit 117 determines whether there is an unmeasured performance information set 7 (step S33). If there is a performance information set 7 (e.g., #2, #3) among the multiple pieces of performance information 5 that has not been measured in the execution state of the preceding process 4-t (see the Yes route in step S33), the selection unit 117 proceeds to step S34.

[0148] The selection unit 117 selects one unmeasured performance information set 7 (for example, #2) from among the multiple performance information sets 7 (step S34). Specifically, when there are multiple unmeasured performance information sets 7 (for example, #2, #3), the selection unit 117 may select the performance information set 7 (for example, #2) based on information regarding the order in the set information 121.

[0149] If the selection unit 117 determines that there is no unmeasured performance information set 7 (see the No route in step S33), the selection unit 117 proceeds to the processing of step S35. The selection unit 117 checks whether there is a setting for remeasurement (step S35). The setting for remeasurement means a setting to remeasure already measured performance information 5 (i.e., first performance information) in the current execution state of the process 4-i, and may be set based on a user instruction.

[0150] If there is a setting for remeasurement (Yes route in step S35), the selection unit 117 reselects a measured performance information set 7 (e.g., #1) from among multiple performance information sets 7 (e.g., #1, #2, #3) (step S36). The measurement unit 118 measures the performance information 5 included in the reselected performance information set 7 (e.g., #1) in the execution state of the current process 4-i (step S32), and ends the processing. That is, the processing in step S36 is an example of processing when the hash values ​​50 calculated in the preceding process (4-t) and the current process (4-i) match, and all performance information different from the first performance information among the multiple performance information 5 has been measured. In this case, the measurement unit 118 remeasures the first performance information that has already been measured in the execution state of the current process (4-i).

[0151] On the other hand, if remeasurement is not set (No route in step S35), the measurement unit 118 ends the processing without measuring the performance information 5 in the current execution state of the process 4-i. Not measuring the performance information 5 in the current execution state of the process 4-i is an example of suppressing the measurement of the performance information 5.

[0152] According to the process illustrated in FIG. 23, it is possible to reduce measurement overhead and communication overhead in the target server 100 in the performance information selection and measurement process (step S4) in FIG. 20 and the next step S5.

[0153] Although the performance information collection method according to one embodiment has been described above, it is not limited to this description and various modifications are possible. For example, the functional blocks of the target server 100 may be combined in any combination or may be separated.

[0154] 12, an example has been described in which multiple processes 4 are executed serially. However, the current process 4-i and the preceding process 4-t, which are the targets for determining whether the hash values ​​50 obtained from the values ​​of the related information 30 match, may be processes 4 in parallel processing. Therefore, the method of one embodiment can also be used in a configuration in which the processes 4 are executed in parallel.

[0155] Furthermore, the target server 100 may be a configuration (system) in which a plurality of devices cooperate with each other via a network to realize each processing function. As an example, the memory unit 120 may be a DB server, and the blocks 111 to 119 may be Web servers or application servers.

[0156] [F] Effect of one embodiment According to a technique according to one embodiment, the target server 100 acquires values ​​of associated information 30 associated with each of a plurality of processes 4 executed on the target server 100. The target server 100 calculates a hash value 50 for each of the plurality of processes 4 by inputting the values ​​of the associated information 30 acquired for each of the plurality of processes 4 into a predetermined hash function 40. If the hash values ​​50 calculated for a previous process 4-t and a current process 4-i included in the plurality of processes 4 match, the target server 100 measures second performance information in the execution state of the current process 4-i. The second performance information is performance information 5 that is at least partially different from first performance information measured in the execution state of the previous process 4-t among the plurality of performance information 5.

[0157] This allows multiple pieces of performance information 5 to be divided into first performance information and second performance information, and measurements can be taken in the execution states of multiple processes 4 whose hash values ​​50 match. For example, the first performance information is performance information set 7-1 (#1), and the second performance information is performance information set 7-2 (#2). Compared to measuring all performance information 5 up to the upper limit of the counter value in one process 4, concentration of measurement processing is alleviated. As a result, measurement overhead is reduced, and the measurement load is lightened. The CPU usage rate in measurement processing can be reduced.

[0158] The communication unit 119 can transmit the measurement results of the performance information 5 obtained by the measurement unit 118 to the collection server 20 in the order of measurement. This alleviates the concentration of processes for transmitting the measurement results of the performance information 5. This reduces communication overhead and the communication load. Since the amount of communication between the collection server 20 and each target server 100 can be reduced, congestion on communication lines can be avoided and communication speed can be improved.

[0159] The number of types of performance information 5 included in the first performance information can be set to be equal to or less than the number of counters, and the number of types of performance information 5 included in the second performance information can be set to be equal to or less than the number of counters. Compared to switching the performance information 5 to be measured within one process 4, it is possible to ensure the measurement time for the performance information 5. Therefore, even if the number of types of performance information 5 is increased, it is possible to prevent a decrease in measurement accuracy. Since it is easy to increase the number of types of performance information 5, detailed system performance analysis becomes possible.

[0160] In particular, the hash function 40 can be used to easily determine identity between a plurality of processes 4, thereby reducing the occurrence of additional overhead.

[0161] In particular, even when it is difficult to determine the identity of the preceding process 4-t and the current process 4-i based on the PID, PCOMM, and UID, the identity of the preceding process 4-t and the current process 4-i can be determined based on the hash value 50. Therefore, the performance information 5 can be measured in a distributed manner among multiple processes 4 that have the same identity.

[0162] For a plurality of pieces of related information 30, a different hash function 40 is predetermined for each piece of related information.

[0163] This makes it possible to determine identity between a plurality of processes 4 based on the collision state of hash values ​​50 based on the hash table 8. Therefore, it is possible to reduce additional processing load.

[0164] Each target server 100 that is the subject of system performance analysis acts as a computer and executes the above-mentioned processes such as selecting the performance information 5. When the collection server 20 (analysis device) executes the processes such as selecting the performance information 5, it is not possible to reduce the amount of communication between each target server 100 and the collection server 20, whereas the method according to one embodiment makes it possible to reduce the amount of communication.

[0165] A priority 61 may be set for each of the plurality of pieces of related information 30. If the hash values ​​50 of the preceding process 4-t and the current process 4-i match for a portion of the related information 30 selected according to the priority 61, the determination unit 116 omits comparison of the hash values ​​50 for the remaining pieces of related information. The measurement unit 118 measures the second performance information in the execution state of the current process.

[0166] This omits the comparison process for some of the hash values ​​50, thereby reducing the processing load.

[0167] The related information 30 may be environment variables 30 a set for a job, a task, a processor, or a node in the execution of each process 4 .

[0168] This allows the determination unit 116 to determine whether the preceding process 4-t and the current process 4-i are identical based on the hash value 50 calculated by inputting the value of the environment variable 30a, which can be obtained from the job scheduler 10 or the like, into the hash function 40. Therefore, the processing time required to determine whether there is identity between multiple processes 4 is shortened, and the processing load can be reduced.

[0169] The related information 30 may be memory map information 30b, which is information about memory addresses that can be used in the execution of each process 4.

[0170] This allows the determination unit 116 to determine whether the preceding process 4-t and the current process 4-i are identical based on the hash value 50 calculated by inputting an address value that can be obtained by reading the maps file or the like into the hash function 40. Therefore, the processing time required to determine whether there is identity between multiple processes 4 is shortened, and the processing load can be reduced.

[0171] The associated information 30 may be an execution address 30c, which is address information used to execute each instruction in each process 4.

[0172] This allows the determination unit 116 to determine whether the preceding process 4-t and the current process 4-i are identical based on the hash value 50 calculated by inputting the number of uses of the execution address 30c, which can be obtained by Linux perf tracing or the like, into the hash function 40. Therefore, the processing time required to determine whether there is identity between multiple processes 4 is shortened, and the processing load can be reduced.

[0173] Assumed benefits in business scenarios include the ability to perform system performance analysis while reducing the measurement and communication burden for performance information 5, and application to various fields that pursue computing power, which is important for processing massive amounts of data. In particular, the measurement and communication burden can be reduced in calculation processes in the fields of quantum simulators and high-performance computing.

[0174] [G] Notes The following additional notes are further disclosed regarding the above embodiment.

[0175] (Appendix 1) acquiring values ​​of related information relating to each of a plurality of processes executed in the information processing device that is the target of performance analysis; calculating a hash value for each of the plurality of processes by inputting the value of the associated information obtained for each of the plurality of processes into a hash function; If the hash values ​​calculated for a first process and a second process included in the plurality of processes match, second performance information is measured in the execution state of the second process, the second performance information being at least partially different from first performance information measured in the execution state of the first process. A performance information collection program that causes a computer to execute processing.

[0176] (Appendix 2) A different hash function is predetermined for each of the plurality of pieces of related information acquired. The performance information collection program described in Appendix 1.

[0177] (Appendix 3) a priority is set for each of the plurality of pieces of related information; When the hash values ​​of the first process and the second process match for a part of the plurality of pieces of related information selected according to the priority, the comparison of the hash values ​​of the first process and the second process for the remaining pieces of the plurality of pieces of related information is omitted, and the second performance information is measured in an execution state of the second process. The performance information collection program described in Appendix 2.

[0178] (Appendix 4) The related information includes environment variables set for a job, task, processor, or node in the execution of each process. Attachment 1: A performance information processing program.

[0179] (Appendix 5) The related information includes information about memory addresses available in the execution of each process. Attachment 1: A performance information processing program.

[0180] (Appendix 6) The related information includes information about the number of times an execution address used to execute multiple instructions in each process is used. Attachment 1: A performance information processing program.

[0181] (Appendix 7) 2. The performance information collection program according to claim 1, which causes the information processing device to execute the processing as the computer.

[0182] (Appendix 8) If the hash values ​​calculated in the first process and the second process match and all of the performance information different from the first performance information among the plurality of pieces of performance information have been measured, suppressing measurement of the plurality of pieces of performance information in the execution state of the second process. 2. The performance information collection program according to claim 1, which causes the computer to execute a process.

[0183] (Appendix 9) if the hash values ​​calculated in the first process and the second process match and all of the performance information different from the first performance information among the plurality of performance information has been measured, re-measure the first performance information in the execution state of the second process; 2. The performance information collection program according to claim 1, which causes the computer to execute a process.

[0184] (Appendix 10) acquiring values ​​of related information relating to each of a plurality of processes executed in the information processing device that is the target of performance analysis; calculating a hash value for each of the plurality of processes by inputting the value of the associated information obtained for each of the plurality of processes into a hash function; If the hash values ​​calculated for a first process and a second process included in the plurality of processes match, second performance information is measured in the execution state of the second process, the second performance information being at least partially different from first performance information measured in the execution state of the first process. A performance information collection method in which processing is performed by a computer.

[0185] (Appendix 11) A different hash function is predetermined for each of the plurality of pieces of related information acquired. 10. A method for collecting performance information as described in Appendix 10.

[0186] (Appendix 12) a priority is set for each of the plurality of pieces of related information; When the hash values ​​of the first process and the second process match for a part of the plurality of pieces of related information selected according to the priority, the comparison of the hash values ​​of the first process and the second process for the remaining pieces of the plurality of pieces of related information is omitted, and the second performance information is measured in an execution state of the second process. 11. A method for collecting performance information as described in Appendix 11.

[0187] (Appendix 13) The related information includes environment variables set for a job, task, processor, or node in the execution of each process. 11. The performance information processing method according to claim 10.

[0188] (Appendix 14) The related information includes information about memory addresses available in the execution of each process. 10. A method for collecting performance information as described in Appendix 10.

[0189] (Appendix 15) The related information includes information about the number of times an execution address used to execute multiple instructions in each process is used. 11. The performance information processing method according to claim 10. (Appendix 16) If the hash values ​​calculated in the first process and the second process match and all of the performance information different from the first performance information among the plurality of pieces of performance information have been measured, suppressing measurement of the plurality of pieces of performance information in the execution state of the second process. 11. The performance information collection method according to claim 10, wherein the processing is executed by the computer.

[0190] (Appendix 17) if the hash values ​​calculated in the first process and the second process match and all of the performance information different from the first performance information among the plurality of performance information has been measured, re-measure the first performance information in the execution state of the second process; 11. The performance information collection method according to claim 10, wherein the processing is executed by the computer.

[0191] (Appendix 18) acquiring values ​​of related information relating to each of a plurality of processes executed in the information processing device that is the target of performance analysis; calculating a hash value for each of the plurality of processes by inputting the value of the associated information obtained for each of the plurality of processes into a hash function; If the hash values ​​calculated for a first process and a second process included in the plurality of processes match, second performance information is measured in the execution state of the second process, the second performance information being at least partially different from first performance information measured in the execution state of the first process. An information processing device having a processor.

[0192] (Appendix 19) A different hash function is predetermined for each of the plurality of pieces of related information acquired. 19. The information processing device according to claim 18.

[0193] (Appendix 20) a priority is set for each of the plurality of pieces of related information; When the hash values ​​of the first process and the second process match for a part of the plurality of pieces of related information selected according to the priority, the comparison of the hash values ​​of the first process and the second process for the remaining pieces of the plurality of pieces of related information is omitted, and the second performance information is measured in an execution state of the second process. 19. The information processing device according to claim 18.

[0194] (Appendix 21) The related information includes environment variables set for a job, task, processor, or node in the execution of each process. 19. The information processing device according to claim 18.

[0195] (Appendix 22) The related information includes information about memory addresses available in the execution of each process. 19. The information processing device according to claim 18.

[0196] (Appendix 23) The related information includes information about the number of times an execution address used to execute multiple instructions in each process is used. 19. The information processing device according to claim 18. (Appendix 24) The processor: If the hash values ​​calculated in the first process and the second process match and all of the performance information different from the first performance information among the plurality of pieces of performance information have been measured, suppressing measurement of the plurality of pieces of performance information in the execution state of the second process. 19. The information processing device according to claim 18.

[0197] (Appendix 25) The processor: if the hash values ​​calculated in the first process and the second process match and all of the performance information different from the first performance information among the plurality of performance information has been measured, re-measure the first performance information in the execution state of the second process; 19. The information processing device according to claim 18. [Explanation of symbols]

[0198] 1 System 2. User terminal 3 Jobs 4,4-1~4-6 Process 4-i Current Process 4-t preceding process 5,5-1~5-12 Performance information 6 Counter 7,7-1~7-3 Performance Information Set 8. Hash Tables 10 Job Scheduler 20 Collection Server 21 Machine Operation Analysis Department 22 Application Characteristics Analysis Department 30, 31-33 Related information 30a Environment Variables 30b Memory map information 30c Execution address 40, 41-43 Hash Function 50,51~53 Hash value 60 Priority Table 61 Priority 61a 1st priority 61b 2nd priority 100,100-1,100-2,100-N Target Server 100a processor 100b memory 100c storage device 100d IF device 100e IO device 100f reader 100h recording medium 100i Bus 100g Program 110 control section 111 Related Information Acquisition Department 112 Environment variable acquisition section 113 Memory map acquisition unit 114 Execution address acquisition unit 115 Hash value calculation unit 116 Judgment Department 117 Selection Section 118 Measurement Unit 119 Communications Department 120 Memory section 121 Set Information

Claims

1. acquiring values ​​of related information relating to each of a plurality of processes executed in the information processing device that is the target of performance analysis; calculating a hash value for each of the plurality of processes by inputting the value of the associated information obtained for each of the plurality of processes into a hash function; If the hash values ​​calculated in a first process and a second process included in the plurality of processes match, second performance information is measured in the execution state of the second process, the second performance information being at least partially different from first performance information measured in the execution state of the first process. A performance information collection program that causes a computer to execute processing.

2. A different hash function is predetermined for each of the plurality of pieces of related information acquired. The performance information collection program according to claim 1 .

3. a priority is set for each of the plurality of pieces of related information; When the hash values ​​of the first process and the second process match for a part of the plurality of pieces of related information selected according to the priority, the comparison of the hash values ​​of the first process and the second process for the remaining pieces of the plurality of pieces of related information is omitted, and the second performance information is measured in an execution state of the second process. The performance information collection program according to claim 2.

4. The related information includes environment variables set for a job, task, processor, or node in the execution of each process. The performance information collection program according to claim 1 .

5. The related information includes information about memory addresses available in the execution of each process. The performance information collection program according to claim 1 .

6. The related information includes information about the number of times an execution address used to execute multiple instructions in each process is used. The performance information collection program according to claim 1 .

7. acquiring values ​​of related information relating to each of a plurality of processes executed in the information processing device that is the target of performance analysis; calculating a hash value for each of the plurality of processes by inputting the value of the associated information obtained for each of the plurality of processes into a hash function; If the hash values ​​calculated in a first process and a second process included in the plurality of processes match, second performance information is measured in the execution state of the second process, the second performance information being at least partially different from first performance information measured in the execution state of the first process. A performance information collection method in which processing is performed by a computer.

8. acquiring values ​​of related information relating to each of a plurality of processes executed in the information processing device that is the target of performance analysis; calculating a hash value for each of the plurality of processes by inputting the value of the associated information obtained for each of the plurality of processes into a hash function; If the hash values ​​calculated in a first process and a second process included in the plurality of processes match, second performance information is measured in the execution state of the second process, the second performance information being at least partially different from first performance information measured in the execution state of the first process. An information processing device having a processor.

Citation Information

Patent Citations

  • Optical amplifier

    JP2004104154A