WO2025004124A1 - Uncore frequency control device, uncore frequency control method, and uncore frequency control program - Google Patents
Uncore frequency control device, uncore frequency control method, and uncore frequency control program Download PDFInfo
- Publication number
- WO2025004124A1 WO2025004124A1 PCT/JP2023/023467 JP2023023467W WO2025004124A1 WO 2025004124 A1 WO2025004124 A1 WO 2025004124A1 JP 2023023467 W JP2023023467 W JP 2023023467W WO 2025004124 A1 WO2025004124 A1 WO 2025004124A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- metric
- metrics
- frequency control
- uncore
- uncore frequency
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
Definitions
- the present invention relates to an uncore frequency control device, an uncore frequency control method, and an uncore frequency control program.
- DVFS Dynamic Voltage and Frequency Scaling
- virtualization technology can be used to improve resource utilization.
- DVFS is a technology that controls the voltage and frequency of CPU cores.
- the core part consists of the CPU core and L1 and L2 caches.
- the uncore part consists of the LLC (Last Level Cache), memory controller, system bus, etc.
- CPU power consumption is proportional to the product of the square of the voltage and the frequency, and power consumption can be reduced by lowering the voltage and frequency.
- lowering the frequency and voltage leads to a degradation of processing performance. Therefore, in order to minimize the impact of performance degradation depending on the load, technology has been proposed that dynamically lowers the frequency and voltage depending on the load on the CPU.
- UFS Uncore Frequency Scaling
- Intel registered trademark, hereafter the same
- UFS Uncore Frequency Scaling
- This UFS function allows the processor to dynamically change the Uncore frequency according to the load, and can achieve the same power saving effect as DVFS for the CPU core (see Non-Patent Document 1).
- Linux registered trademark, the same applies below
- Non-Patent Document 2 a control method targeted at HPC (High-Performance Computing) has been proposed (see Non-Patent Document 2).
- App Application
- Non-Patent Document 2 App (Application) performance is analyzed by changing the uncore frequency from measurements using benchmarks with multiple processing characteristics.
- UFS User Plane Function
- Non-Patent Document 2 the applications targeted in existing research such as Non-Patent Document 2 are numerical calculation programs used in natural science research, and no control method has been proposed for the uncore operating frequency in service systems such as web servers.
- Numerical calculation programs and Web applications differ in that they use batch processing and real-time processing, and this difference is also reflected in the evaluation criteria for the two.
- batch processing performance is evaluated by the time it takes to complete processing, and power is evaluated by the amount of power consumed until the processing is completed.
- real-time processing performance is evaluated by response time and throughput, and power is evaluated by power consumption.
- performance also differs depending on the load, such as the number of requests the server processes.
- the performance response time
- the load number of requests
- the performance requirements for a Web service application are, for example, a response time of 100 ms, which is not as strict as that of a NW service. If the optimal frequency according to the method described in Non-Patent Document 2 is applied to such a Web service application, a state occurs in which there is still room for power reduction during low load. For example, as shown in FIG. 8, during low load, there is a margin before the response time violates the SLA. Therefore, even if the frequency is further reduced, it is possible to reduce the power consumption within a range that does not violate the SLA. In other words, in Web service applications that do not have strict performance requirements, it is expected that the power reduction effect will be further increased in low load areas (problem 1).
- the present invention was made in consideration of these points, and aims to improve the power reduction effect in low-load areas in systems equipped with web-based applications.
- the uncore frequency control device of the present invention is an uncore frequency control device that controls the uncore frequency of a physical server that is a compute equipped with a web service application, and includes a monitoring unit that collects data including HW operation status data from the compute for a predetermined period of time, and of the collected data, data that is counted up over time is used as a metric to be analyzed.
- the metrics are normalized using a Min-Max method and then classified into a metric A group whose metric values increase as the load on the web service application increases, a metric B group whose metric values decrease when the load increases and application performance deteriorates, and a metric C group whose metric values converge when the load increases and application performance deteriorates, and at least one of the metric B group and the metric C group is selected.
- the system is characterized by comprising an analysis unit that selects one metric B and/or metric C, selects one metric A from the group of metrics A that has a smaller normalized value than the selected metric B and/or metric C during low load before the application performance degradation occurs, and determines the selected metric as the monitoring target; a metrics acquisition unit that acquires data on metric A and metric B and/or metric C to be monitored from the compute and performs normalization using the Min-Max method; and a frequency control unit that sets the uncore frequency of the compute to a configurable maximum value if either the normalized value of metric B or metric C is lower than the normalized value of metric A, and sets the uncore frequency of the compute to a configurable minimum value if the normalized value is not lower.
- the present invention makes it possible to improve the power reduction effect in low-load areas in systems equipped with web-based applications.
- FIG. 1 is a diagram showing an overall configuration of an Uncore frequency control system including an Uncore frequency control device according to an embodiment of the present invention.
- 13 is a graph showing normalized values for the loadings of metrics A, B, and C.
- 11 is a diagram illustrating the relationship between an increase in load and deterioration of App performance. 1 is a diagram showing the trends of Metrics A and Metrics B over a given period of time in the past.
- 10 is a flowchart showing a flow of a metrics determination process performed by the uncore frequency control device according to the present embodiment before uncore frequency control.
- 11 is a flowchart showing a process flow in which an uncore frequency device according to the present embodiment performs uncore frequency control using determined metrics.
- FIG. 2 is a hardware configuration diagram showing an example of a computer that realizes the functions of the Uncore frequency control device according to the present embodiment.
- FIG. 13 is a diagram for explaining a state in which a margin for power reduction remains during low load in the prior art.
- the Uncore frequency control device collects various data from a server on which a Web service application is installed, and among that data, determines which data will be used as an index for control. This index data is data that is counted up over time ("metrics" described below).
- the Uncore frequency control device checks the trend of the rate of increase of each metric relative to the load, and determines which metrics to monitor.
- the Uncore frequency control device then divides the load into low and high load regions depending on the point in time when the rate of increase of the metric changes, and performs frequency control that prioritizes performance guarantees in the high load region and power consumption reduction in the low load region (details described below).
- FIG. 1 is a diagram showing the overall configuration of an uncore frequency control system 1000 including an uncore frequency control device 1 according to this embodiment. As shown in FIG. 1, an uncore frequency control device 1 is communicatively connected to each compute (physical server) 2 that is to be the subject of uncore frequency control.
- compute physical server
- Each compute 2 has an application (App) 200 (here, a Web service application) implemented on HW (hardware). Note that this application 200 may be implemented in a VM (Virtual Machine) or a container. Each compute 2 also has data collection software 21 and an IPMI (Intelligent Platform Management Interface) 22.
- App application
- HW hardware
- this application 200 may be implemented in a VM (Virtual Machine) or a container.
- Each compute 2 also has data collection software 21 and an IPMI (Intelligent Platform Management Interface) 22.
- IPMI Intelligent Platform Management Interface
- the data collection software 21 is software that collects performance data of the Compute 2, and acquires App performance values and HW operation status data.
- App performance values are, for example, response time and throughput, but depending on the specifications of the application, there are cases where this App performance value cannot be acquired. Therefore, the data collection software 21 according to this embodiment acquires at least HW operation status data.
- the HW operation status data is an index that is a reference for the load of the Compute 2, and is performance data that can be acquired from each Compute 2, such as CPU usage, cache misses, and the number of received packets, or performance values obtained from the logs of the Apps running on the Compute 2.
- the data collection software 21 may be existing data collection software such as Perf and dstat, or may be a self-created software.
- IPMI 22 is a standard interface for monitoring and managing the state of hardware, and includes a power consumption measurement means.
- IPMI 22 implements application (App) 200 to measure the power consumption of Compute 2 when a load is applied. Note that this power consumption measurement means is not limited to IPMI 22, and if Compute 2 includes a power meter, the power consumption may be measured by the power meter.
- Compute 2 transmits data indicating the HW operation status when a load is applied to the implemented application 200 and information on power consumption to the Uncore frequency control device 1. Then, Compute 2 obtains the setting information of the Uncore frequency from the Uncore frequency control device 1 and sets the optimal Uncore frequency according to the load.
- the uncore frequency control device 1 classifies data that can be acquired only by the compute 2 on which the application 200 is installed into those whose values increase relative to the amount of load (metrics A group described below), those whose values decrease when App performance deteriorates (metrics B group described below), and those whose values converge when App performance deteriorates (metrics C group described below). Then, it determines the metrics to be monitored from each of metrics A, B, and C.
- the uncore frequency control device 1 sets the uncore frequency to the minimum value that can be set, and if they are smaller, sets the uncore frequency to the maximum value that can be set. This enables power reduction, especially in low load regions, in the server (Compute 2) that provides the Web service application, and also enables frequency control based on information from the server (HW) even when necessary information (performance information) cannot be obtained from the Web service application. In addition, by simplifying control based on load fluctuations, it is possible to reduce the overhead of control processing compared to existing methods. As shown in FIG. 1, the uncore frequency control device 1 includes a control unit 10, an input/output unit 11, and a storage unit 12.
- the input/output unit 11 inputs and outputs information between each compute 2, etc.
- This input/output unit 11 is composed of a communication interface that transmits and receives information via a communication line, and an input/output interface that inputs and outputs information between an input device such as a keyboard and an output device such as a monitor, which are not shown in the figure.
- the storage unit 12 is composed of a hard disk, a flash memory, a RAM (Random Access Memory), or the like. In this storage unit 12, a data store 100 is stored.
- the data store 100 stores HW operation status data and power consumption that are collected from each compute 2 by the monitoring unit 110 described below.
- the data store 100 also stores information such as normalized values of metrics that are acquired by the metrics acquisition unit 130 via the monitoring unit 110 and that are determined to be monitored by the analysis unit 120 described below.
- the control unit 10 is responsible for all the processing performed by the Uncore frequency control device 1, and is composed of a monitoring unit 110, an analysis unit 120, a metrics acquisition unit 130, and a frequency control unit 140.
- the monitoring unit 110 collects data (HW operation status data) from a server (Compute 2) on which a Web service application is installed.
- data HW operation status data
- server Computer 2
- existing data collection software such as Perf and dstat, or self-created software can be used.
- Linux perf stat as a data collection tool.
- the analysis unit 120 analyzes the data collected by the monitoring unit 110, determines the index to be used for controlling the uncore frequency, and determines the logic to be used in the control algorithm based on the analysis results.
- the analysis unit 120 analyzes data that is counted up over time among the data collected by the monitoring unit 110. This data is called “metrics.” These metrics are counter values that indicate the state of the server (Compute 2) provided by HW, SW, etc., such as the number of instruction executions, context switches, and cache misses.
- the analysis unit 120 identifies the monitoring targets required to detect when such a bottleneck occurs as metrics.
- the analysis unit 120 checks the trend of the rate of increase in relation to the load for the multiple metrics collected by the monitoring unit 110, and classifies them into the following three groups. At this time, the analysis unit 120 performs normalization using the Min-Max method, since the absolute values of each value are different.
- Metrics Group A The metric value increases as the load increases.
- Metrics group B The metric values decrease when the load increases and app performance deteriorates.
- Metrics group C The metric values converge when the load increases and App performance degradation occurs.
- the analysis unit 120 determines one metric (metric A) to be monitored from the classified metrics group A.
- the analysis unit 120 also determines at least one of metrics B and metrics C to be monitored from the metrics groups B and C. Note that one metric may be selected from the metrics group B and one from the metrics group C to be monitored.
- the analysis unit 120 selects one that has a smaller value under low load than metrics B and C, as shown in FIG.
- the analysis unit 120 then stores the Min/Max values used for normalization during the analysis in the data store 100 .
- the load on the server (Compute 2) is defined as being in the low load region or the high load region based on the point in time when degradation of App performance occurs and the value of metric B decreases or the value of metric C converges (dashed line x in Figures 2 and 3).
- the analysis unit 120 determines metrics A, B, and C as indices to be used for controlling the uncore frequency based on the analysis result, and then determines logic to be used in a control algorithm for controlling the uncore frequency.
- the metrics to be used as indices may be metric A and metric B, metric A and metric C, or metric A, metric B, and metric C.
- the analysis unit 120 first collects the determined metrics (for example, metrics A, B, and C) at a predetermined time interval and normalizes them. Then, the following logic is used to compare the size of the metrics: The normalized values are compared to determine whether "metric B or C > metric A.” Here, it is determined whether either metric B or metric C is greater than metric A. In other words, it is determined whether the load amount shown in Figures 2 and 3 is in the low load area. If "metric B or C > metric A,” the logic is set to set the uncore frequency to the minimum value that can be set.
- the determined metrics for example, metrics A, B, and C
- the normalized values are compared to determine whether "metric B or C ⁇ metric A.”
- metric B or C it is determined whether either metric B or metric C is smaller than metric A.
- metric A it is determined whether the load amount shown in Figures 2 and 3 is in the high load area. If "metric B or C ⁇ metric A,” the logic is set to set the uncore frequency to the maximum value that can be set.
- the analysis unit 120 employs the following logic to determine whether or not to proceed to a comparison of the magnitude of the metrics. [1] Determining whether or not there is a load If the value of any of metrics A, B, or C (normalized using the Min-Max method) is greater than or equal to a predetermined threshold (e.g., 0.1), proceed to a control decision (comparing the size of the metrics). This logic is provided to prevent unnecessary processing when there is no load or an extremely low load.
- a predetermined threshold e.g., 0.1
- metrics B and C collected at a specified time interval may become noisy during a transition period from low load to high load.
- metric B is used, but the same applies to metric C.
- FIG. 4 is a diagram showing the trends of metrics A and B over a given period of time in the past.
- the magnitude relationship between metrics A and B changes many times due to noise. Therefore, when the difference between the maximum and minimum values of metric B is equal to or less than a given percentage of the total size (a given first percentage: for example, 20%), a comparison of the magnitude with metric A is performed. In other words, when the difference between the maximum and minimum values of metric B exceeds a given percentage of the total (for example, 20%), a comparison of the magnitude is not performed. This makes it possible to prevent frequent changes to the uncore frequency setting due to noise, thereby preventing processing overhead.
- a control hysteresis is provided and a magnitude comparison (control decision) is made between "metric B+b" and "metric A-a.”
- a (second predetermined value) and b (first predetermined value) are any real numbers with 0 ⁇ a, b ⁇ 1.
- the frequency control unit 140 controls the uncore frequency using a control algorithm based on these logics determined by the analysis unit 120.
- the metrics acquisition unit 130 acquires information on the metrics that are the indices determined by the analysis unit 120 from the server (Compute 2) via the monitoring unit 110.
- the metrics acquisition unit 130 then normalizes the acquired metrics A, B, and C using the Min-Max method and stores them in the data store 100.
- the frequency control unit 140 executes uncore frequency control using metrics A, B, and C, which are indicators acquired by the metrics acquisition unit 130 via the monitoring unit 110, according to a control algorithm based on the logic generated by the analysis unit 120. Details of the process executed by the frequency control unit 140 (control algorithm) will be described later with reference to the flowchart in FIG. 6.
- Fig. 5 is a diagram showing a flow of a metrics determination process performed by the uncore frequency control device 1 prior to (in advance of) uncore frequency control.
- Fig. 6 is a diagram showing a flow of a process performed by the uncore frequency control device 1 using the determined metrics to perform uncore frequency control.
- the monitoring unit 110 (FIG. 1) of the Uncoore frequency control device 1 collects data (HW operation status data) for a predetermined period of time from a server (Compute 2) on which a Web service application is installed (step S10).
- the analysis unit 120 of the Uncoore frequency control device 1 performs normalization using the Min-Max method on the data acquired by the monitoring unit 110 that is counted up over time (for example, counter values indicating the server state such as the number of instructions executed, context switches, cache misses, etc.) (step S11).
- the Min/Max values used in this normalization are stored in the data store 100.
- the analysis unit 120 checks the trend of the increase rate against the load amount, and classifies the metrics into three groups: "metrics group A” whose metric values increase as the load amount increases, “metrics group B” whose metric values decrease when the load amount increases and app performance degradation occurs, and “metrics group C” whose metric values converge when the load amount increases and app performance degradation occurs (step S12).
- one type from metric group A and at least one type from metric group B and metric group C are determined as indexes to be used for controlling the uncore frequency (step S13).
- one type from metric group A, one type each from metric group B and C may be determined as the index to be used for controlling the uncore frequency.
- any metric can be selected, but for metric A selected from metric group A, the metric with a smaller value at low load than metrics B and C selected from metric groups B and C is selected (see Figure 2).
- the analysis unit 120 determines the logic to be used in the control algorithm (step S14). Specifically, the analysis unit 120 determines logic for comparing the magnitude of the metrics according to the metrics that serve as the indices determined in step S13. For example, in step S13, if metric A selected from metric group A and metric B selected from metric group B are determined as the indicators, the following logic is determined. During control, normalized values are compared, and if "metric B>metric A", the uncore frequency is set to the minimum value that can be set. During control, normalized values are compared, and if "metric B ⁇ metric A", the uncore frequency is set to the maximum value that can be set. The same applies when metric C is determined as the index.
- step S13 if in step S13, metric A selected from metric group A, metric B selected from metric group B, and metric C selected from metric group C are determined as the indicators, the following logic is determined.
- normalized values are compared, and if either metric B or metric C > metric A, the uncore frequency is set to the minimum value that can be set.
- normalized values are compared, and if either metric B or metric C is smaller than metric A, the uncore frequency is set to the maximum value that can be set.
- the analysis unit 120 determines logic for determining whether or not a load is being applied to the metrics A, B, and C selected as indices in order to determine whether or not to perform a process for comparing the magnitude of the metrics.
- the logic is determined as follows: if the value of any of metrics A, B, or C (normalized using the Min-Max method) is greater than or equal to a predetermined threshold (e.g., 0.1), then proceed to a control decision (comparison of the metrics).
- a predetermined threshold e.g., 0.1
- this predetermined threshold value is, for example, determined in advance by a system administrator or the like, and is stored in the storage unit 12 of the uncore frequency control device 1 .
- the analysis unit 120 determines whether the metrics are in a transitional period where the load is changing from low to high, and in this case, since the noise is large, determines logic for not comparing the magnitude of the metrics. Specifically, for metrics B and C selected as metrics, the logic is determined such that the data on trends over a specified period of time in the past (e.g., 5 seconds) stored in the data store 100 is referenced, and if the difference between the maximum and minimum values is less than a specified percentage of the overall size (a specified first percentage: e.g., 20%), then control decision is made (a comparison of the size with metric A).
- a specified percentage e.g. 20%
- the analysis unit 120 also refers to the data of the past transitions for any period of time (e.g., 5 seconds) stored in the data store 100 for metrics B and C selected as the metrics, and determines the logic that, in the case of a transition from high load to low load, the maximum and minimum values exceed a predetermined percentage of the total (a predetermined second percentage: e.g., 10%), a control hysteresis is provided and a control decision (a comparison with metric A) is made as "metric B+b", “metric C+c", and "metric A-a".
- a (second predetermined value), b (first predetermined value), and c are any real numbers in the range 0 ⁇ a, b, c ⁇ 1. Note that the first predetermined values b and c may be the same value or different values.
- the Uncore frequency control device 1 can prevent frequent setting changes caused by noise, preventing processing overhead.
- the frequency control unit 140 of the uncore frequency control device 1 controls the uncore frequency using a control algorithm based on the logic determined by the analysis unit 120 . Next, the process flow (control algorithm) of the uncore frequency control will be described.
- FIG. 6 is a diagram showing a process flow in which the uncore frequency control device 1 performs uncore frequency control using the determined metrics.
- the analysis unit 120 has determined that the indexes used to control the uncore frequency are metric A and metric B. It is also assumed that the analysis unit 120 has determined the logic for comparing the magnitude of the metrics, and that a predetermined threshold for determining whether a load is applied and a predetermined ratio (a predetermined first ratio, a predetermined second ratio) for making a judgment based on noise are preset.
- the metrics acquisition unit 130 of the uncore frequency control device 1 acquires information on the metrics (here, metrics A and metrics B) that are the indicators determined by the analysis unit 120 from the server (Compute 2) via the monitoring unit 110 (step S20). For example, the metrics acquisition unit 130 acquires data at one-second intervals via the monitoring unit 110 using a data collection tool (Linux per stat). Then, for the acquired metrics A and B, the metrics acquisition unit 130 uses the Min/Max values used for normalization during analysis that were stored in the data store 100 , and stores the normalized values in the data store 100 .
- the metrics acquisition unit 130 uses the Min/Max values used for normalization during analysis that were stored in the data store 100 , and stores the normalized values in the data store 100 .
- the frequency control unit 140 of the uncore frequency control device judges whether the metric value (metric A or metric B value) is equal to or greater than a predetermined threshold value (e.g., 0.1) (step S21). This process is for preventing unnecessary processing when there is no load or a very low load. If the frequency is not equal to or greater than the predetermined threshold (step S21 ⁇ No), that is, if there is no load or a very low load, the uncore frequency is not controlled and the process proceeds to step S28. On the other hand, if the frequency is equal to or greater than the predetermined threshold (step S21 ⁇ Yes), the process proceeds to the next step S22.
- a predetermined threshold value e.g., 0.1
- step S22 the frequency control unit 140 determines whether the difference between the maximum and minimum values of the data of metric B (normalized value) collected during a specified time period in the past (e.g., 5 seconds) is less than a specified percentage of the total (a specified first percentage: e.g., 20%). If the difference between the maximum and minimum values is not equal to or less than a predetermined ratio (a first predetermined ratio) of the total (step S22 ⁇ No), the influence of noise is deemed large, and the uncore frequency is not controlled, and the process proceeds to step S28. On the other hand, if the difference is equal to or less than the predetermined ratio (a first predetermined ratio) (step S22 ⁇ Yes), the process proceeds to the next step S23.
- a predetermined ratio a first predetermined ratio
- step S23 the frequency control unit 140 determines whether the Uncore frequency currently set in Compute 2 is the maximum value and whether the difference between the maximum and minimum values of the data of metric B (normalized value) collected during a specified time in the past (e.g., 5 seconds) is greater than or equal to a specified percentage of the total (a specified second percentage: e.g., 10%).
- a specified percentage of the total e.g. 10%
- the Uncore frequency currently set in Compute 2 is the maximum value, it means that the current load is high and that the load is transitioning from high to low, and if the difference between the maximum and minimum values is greater than a predetermined percentage of the total (a predetermined second percentage: for example, 10%), it means that the influence of noise is relatively large.
- step S23 is not met (step S23 ⁇ No)
- the process proceeds to step S25.
- step S23 ⁇ Yes the process proceeds to step S24.
- step S24 the frequency control unit 140 sets a control hysteresis. Specifically, frequency control unit 140 sets the value of metric B to "metric B+b" and the value of metric A to "metric A-a," where a and b are any real numbers such that 0 ⁇ a, b ⁇ 1. Then, the process proceeds to step S25.
- step S25 the frequency control unit 140 determines whether the value of metric B is lower than the value of metric A (metric B ⁇ metric A). If the value of metric B is not lower than the value of metric A (step S25 ⁇ No), the frequency control unit 140 sets the uncore frequency to the minimum value that can be set (step S26). If the current value is the minimum value, the current state is maintained. Then, the process proceeds to step S28. On the other hand, if the value of metric B is lower than the value of metric A (step S25 ⁇ Yes), the uncore frequency is set to the maximum value that can be set (step S27). If the current value is the maximum value, the current state is maintained. Then, the process proceeds to step S28.
- step S28 the frequency control unit 140 determines whether or not the Web service has ended in the compute 2. If the Web service has not ended (step S28 ⁇ No), the frequency control unit 140 returns to step S20 and repeats the process. On the other hand, if the Web service has ended (step S28 ⁇ Yes), the entire process of the Uncore frequency control ends.
- the uncore frequency control device 1 is realized by a computer 900 having a configuration as shown in FIG. 7 is a hardware configuration diagram showing an example of a computer 900 that realizes the functions of the uncore frequency control device 1 according to this embodiment.
- the computer 900 includes a CPU 901, a ROM (Read Only Memory) 902, a RAM 903, a HDD (Hard Disk Drive) 904, an input/output I/F (Interface) 905, a communication I/F 906, and a media I/F 907.
- the CPU 901 operates based on a program (uncore frequency control program) stored in the ROM 902 or HDD 904, and is controlled by the control unit 10 (Fig. 1).
- the ROM 902 stores a boot program executed by the CPU 901 when the computer 900 is started, programs related to the hardware of the computer 900, etc.
- the CPU 901 controls an input device 910 such as a mouse or keyboard, and an output device 911 such as a display or printer, via an input/output I/F 905.
- the CPU 901 acquires data from the input device 910 via the input/output I/F 905, and outputs generated data to the output device 911.
- a GPU Graphics Processing Unit
- a processor may be used as a processor together with the CPU 901.
- the HDD 904 stores the programs executed by the CPU 901 and the data used by the programs.
- the communication I/F 906 receives data from other devices via a communication network (e.g., NW (Network) 920) and outputs the data to the CPU 901, and also transmits data generated by the CPU 901 to other devices via the communication network.
- NW Network
- the media I/F 907 reads the program (uncore frequency control program) or data stored in the recording medium 912 and outputs it to the CPU 901 via the RAM 903.
- the CPU 901 loads the program related to the target processing from the recording medium 912 onto the RAM 903 via the media I/F 907, and executes the loaded program.
- the recording medium 912 is an optical recording medium such as a DVD (Digital Versatile Disc) or a PD (Phase change rewritable Disk), a magneto-optical recording medium such as an MO (Magneto Optical disk), a magnetic recording medium, a semiconductor memory, etc.
- the CPU 901 of the computer 900 executes a program loaded onto the RAM 903 to realize the functions of the uncore frequency control program.
- the data in the RAM 903 is stored in the HDD 904.
- the CPU 901 reads and executes a program related to the target processing from the recording medium 912.
- the CPU 901 may read a program related to the target processing from another device via a communication network (NW 920).
- the uncore frequency control device is an uncore frequency control device 1 that controls the uncore frequency of a physical server that is a compute 2 equipped with a web service application, and includes a monitoring unit 110 that collects data including HW operation status data from the compute 2 for a predetermined period of time, and among the collected data, data that is counted up over time is used as a metric to be analyzed.
- the metrics are classified into a metric A group whose metric values increase as the load on the web service application increases, a metric B group whose metric values decrease when the load increases and application performance deteriorates, and a metric C group whose metric values converge when the load increases and application performance deteriorates, and at least one of the metric B group and the metric C group is selected.
- the analysis unit 120 selecting one metric A having a smaller normalized value than the selected metric B and/or metric C from the group of metrics A during a low load period before application performance degradation occurs and determining the selected metric as the monitoring target; a metrics acquisition unit 130 acquiring data on metric A and metric B and/or metric C to be monitored from compute 2 and normalizing the data by a Min-Max method; and a frequency control unit 140 setting the uncore frequency of compute 2 to a settable maximum value if either one of the normalized values of metric B or metric C is lower than the normalized value of metric A, and setting the uncore frequency of compute 2 to a settable minimum value if the normalized value is not lower.
- the uncore frequency control device 1 can increase the power reduction effect in a low load region in a system equipped with Web-based applications.
- the uncore frequency control device 1 can change the uncore frequency from a settable minimum value to a settable maximum value when the compute state transitions from a low load region to a high load region that may violate the performance requirements. In this way, by simplifying the control of the uncore frequency due to load fluctuations, it is possible to reduce overhead due to frequency setting changes compared to conventional techniques.
- the Uncore frequency control device 1 can determine the timing at which performance degradation occurs due to an increase in the load on the application, using the HW operation status data obtained from the Compute 2. Therefore, it is possible to reliably determine the timing of transition to a high load region and change the setting of the Uncore frequency.
- a value e.g., response time
- the frequency control unit 140 is characterized in that if any one of the values of each metric to be monitored, acquired and normalized by the metrics acquisition unit 130, is not equal to or greater than a predetermined threshold, the frequency control unit 140 does not perform the uncore frequency setting process for the compute 2.
- the Uncore frequency control device 1 does not perform the process of determining whether or not to change the uncore frequency setting when the load on the Compute 2 is zero or an extremely low load close to zero. Therefore, the Uncore frequency control device 1 can reduce the wasted power associated with unnecessary determination processes.
- the frequency control unit 140 is characterized in that it does not perform the process of setting the compute uncore frequency when the difference between the maximum and minimum values of metric B or metric C acquired and normalized by the metrics acquisition unit 130 at a specified time exceeds a specified first percentage of the total size of the normalized metrics.
- the uncore frequency control device 1 can avoid changing the uncore frequency setting when noise is large during the transition period from low load to high load in the collected metrics B or metric C. This allows the uncore frequency control device 1 to suppress an increase in uncore frequency setting changes due to noise, and reduce the overhead of the compute 2.
- the frequency control unit 140 sets a control hysteresis by adding a first predetermined value to the normalized value of metric B and/or metric C determined to be the monitoring target, and subtracting a second predetermined value from the normalized value of metric A determined to be the monitoring target.
- the Uncore frequency control device 1 can prevent frequent changes to the Uncore frequency setting by setting the control hysteresis. This allows the Uncore frequency control device 1 to reduce the overhead of the Compute 2.
- Uncore frequency control device Compute (physical server) 10 Control unit 11 Input/output unit 12 Storage unit 21 Data collection software 22 IPMI 100 Data store 110 Monitoring unit 120 Analysis unit 130 Metrics acquisition unit 140 Frequency control unit 200 Application (App) 1000 Uncore Frequency Control System
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、Uncore周波数制御装置、Uncore周波数制御方法、および、Uncore周波数制御プログラムに関する。 The present invention relates to an uncore frequency control device, an uncore frequency control method, and an uncore frequency control program.
サーバの運用や管理において、消費電力の問題が重要視され、省電力化の技術検討が行われてきている。例えば、DVFS(Dynamic Voltage and Frequency Scaling)や仮想化技術によるリソース利用率の向上が挙げられる。DVFSは、CPUコア(Core)の電圧と周波数を制御する技術である。 In server operation and management, the issue of power consumption has become important, and power-saving technologies have been investigated. For example, DVFS (Dynamic Voltage and Frequency Scaling) and virtualization technology can be used to improve resource utilization. DVFS is a technology that controls the voltage and frequency of CPU cores.
一方、近年CPUパッケージ内のCoreとCoreではない部分(Uncore)で異なる動作周波数の設定が可能なCPUが登場している。Core部分は、CPUコアと、L1,L2キャッシュで構成される。Uncore部分は、LLC(Last Level Cache)やメモリコントローラ、システムバス等で構成される。 On the other hand, in recent years, CPUs have been released that allow different operating frequencies to be set for the core and non-core parts (uncore) within the CPU package. The core part consists of the CPU core and L1 and L2 caches. The uncore part consists of the LLC (Last Level Cache), memory controller, system bus, etc.
一般にCPU消費電力は電圧の2乗と周波数の積に比例するといわれており、電圧や周波数を下げることで消費電力を削減することができる。しかし、周波数や電圧を下げることは処理性能の劣化につながる。そこで、負荷に応じて性能劣化の影響を最小限にするために、CPUにかかる負荷に応じて動的に周波数や電圧を下げる技術が提案されている。 It is generally said that CPU power consumption is proportional to the product of the square of the voltage and the frequency, and power consumption can be reduced by lowering the voltage and frequency. However, lowering the frequency and voltage leads to a degradation of processing performance. Therefore, in order to minimize the impact of performance degradation depending on the load, technology has been proposed that dynamically lowers the frequency and voltage depending on the load on the CPU.
この場合の周波数制御の基本的な考え方を説明する。
(1)CPU Core周波数を低下させた場合、Coreでの演算処理の性能低下につながる。これを踏まえ既存研究では、以下のような周波数増減の手法をとる。
「CPU負荷集中な処理」→「Core周波数を上げる」
「メモリ負荷集中な処理」→「Core周波数を下げる」
(2)CPU Uncore周波数を低下させた場合、キャッシュライン転送速度やメモリ帯域幅に影響を与える。これを踏まえ既存研究では、以下のような周波数増減の手法をとる。
「CPU負荷集中な処理」→「Uncore周波数を下げる」
「メモリ負荷集中な処理」→「Uncore周波数を上げる」
The basic concept of frequency control in this case will be explained.
(1) Reducing the CPU core frequency leads to a decrease in the performance of the calculation processing in the core. Based on this, existing research adopts the following frequency increase/decrease methods.
"CPU-intensive processing" → "Increase the core frequency"
"Memory-intensive processing" → "Lower the core frequency"
(2) Reducing the CPU uncore frequency affects the cache line transfer speed and memory bandwidth. Based on this, existing research adopts the following frequency increase/decrease methods:
"CPU-intensive processing" → "Lower the uncore frequency"
"Memory-intensive processing" → "Increase the Uncore frequency"
上記したCore、Uncoreで動作周波数をわけて設定できるCPUに対して、Intel(登録商標、以下同様。)は、UFS(Uncore Frequency Scaling)という機能を導入している。このUFSの機能により、プロセッサは負荷に応じてUncore周波数を動的に変更することができ、CPUコアのDVFS同様の省電力効果を得ることができる(非特許文献1参照)。
一方、Linux(登録商標、以下同様。)では、sysfsを介して、スケーリングの最小/最大周波数を設定可能な技術を採用している。
Intel (registered trademark, hereafter the same) has introduced a function called UFS (Uncore Frequency Scaling) for the CPU that can set the operating frequency separately for the Core and Uncore. This UFS function allows the processor to dynamically change the Uncore frequency according to the load, and can achieve the same power saving effect as DVFS for the CPU core (see Non-Patent Document 1).
On the other hand, Linux (registered trademark, the same applies below) employs a technology that allows the minimum and maximum scaling frequencies to be set via sysfs.
また、Uncoreの動作周波数制御に関する研究では、HPC(High-Performance Computing)を対象とした制御手法が提案されている(非特許文献2参照)。
非特許文献2では、複数の処理特性をもつベンチマークを用いた測定から、Uncore周波数の変化によるApp(Application)性能分析を行っている。その結果、UFSが必ずしもすべてのAppに対して最適な周波数制御を行うことは難しく、Appの特性とユーザ要件に応じた制御をする必要があるとし、独自のUncore周波数の制御手法を提案している。
Moreover, in research on Uncore's operating frequency control, a control method targeted at HPC (High-Performance Computing) has been proposed (see Non-Patent Document 2).
In
しかしながら、非特許文献2等の既存研究で対象とされているアプリケーションは、自然科学研究で用いられる数値計算プログラムであり、WebサーバのようなサービスシステムにおけるUncore動作周波数に関する制御手法は提案されていない。
数値計算プログラムとWeb系アプリケーションとでは、バッチ処理とリアルタイム処理という違いがあり、この違いが両者の評価観点にも現れる。バッチ処理においては、性能を処理完了時間で評価し、電力を処理完了までにかかる消費電力量で評価する。一方、リアルタイム処理においては、性能を応答時間やスループットで評価し、電力を消費電力で評価する。
However, the applications targeted in existing research such as Non-Patent
Numerical calculation programs and Web applications differ in that they use batch processing and real-time processing, and this difference is also reflected in the evaluation criteria for the two. In batch processing, performance is evaluated by the time it takes to complete processing, and power is evaluated by the amount of power consumed until the processing is completed. On the other hand, in real-time processing, performance is evaluated by response time and throughput, and power is evaluated by power consumption.
このリアルタイム処理において、性能は、サーバが処理するリクエスト数などの負荷量によっても異なる。例えば、周波数値を固定した場合において、HTMLファイルを返す単純なHTTPリクエスト処理でも負荷量(リクエスト数)により性能(応答時間)は異なる。よって、WebサービスやNWサービスのようなリアルタイム処理を行うアプリケーションについて、負荷量の変動に応じた周波数制御を行うことが必要となる。 In this real-time processing, performance also differs depending on the load, such as the number of requests the server processes. For example, when the frequency value is fixed, the performance (response time) differs depending on the load (number of requests) even in simple HTTP request processing that returns an HTML file. Therefore, for applications that perform real-time processing, such as web services and network services, it is necessary to control the frequency according to fluctuations in the load.
さらに、リアルタイム処理を行う場合において、Webサービスのアプリケーションの性能要件は、例えば応答時間が100msであり、NWサービスより厳しいものではない。このようなWebサービスのアプリケーションに、上記した非特許文献2に記載の手法による最適周波数を適用すると、低負荷時に電力削減余力を残した状態が発生する。例えば、図8で示すように、低負荷時においては、応答時間がSLA違反になるまでに余裕がある。よって、さらに周波数を低減させても、SLA違反にならない範囲で電力の消費量を低減することが可能となる。
つまり、性能要件が厳しくないWebサービスのアプリケーションにおいては、低負荷領域で電力削減効果をより増加させることが期待される(課題1)。
Furthermore, when performing real-time processing, the performance requirements for a Web service application are, for example, a response time of 100 ms, which is not as strict as that of a NW service. If the optimal frequency according to the method described in Non-Patent
In other words, in Web service applications that do not have strict performance requirements, it is expected that the power reduction effect will be further increased in low load areas (problem 1).
また、その他にもサーバの周波数制御を行う上で、以下の課題がある。
(課題2)
サーバから得られる何らかの指標を監視し、その指標が示す変動量に応じて、段階的に周波数を制御する場合、負荷量の急な変動により周波数変更が頻発すると、CPUの割込み制御によるオーバヘッドが発生し、アプリケーションの性能劣化につながる。
よって、周波数変更の処理によるオーバヘッドの影響を抑制する必要がある。
In addition, there are other issues to be addressed when controlling server frequencies:
(Challenge 2)
When monitoring some kind of indicator obtained from the server and controlling the frequency in stages according to the amount of fluctuation indicated by that indicator, if frequency changes occur frequently due to sudden fluctuations in the load, overhead will be generated due to CPU interrupt control, leading to degradation of application performance.
Therefore, it is necessary to suppress the effect of overhead caused by frequency change processing.
(課題3)
アプリケーションの中には、サーバ管理者にとって中身がブラックボックスとなるものがあり、アプリケーションの性能要件に直接関係する値(例えば、応答時間など)やサーバにかかる負荷量(例えば、リクエスト数など)がサーバ管理者側で取得できない場合がある。
よって、アプリケーションが搭載されているHW(サーバ等)から得られる情報の監視のみで、負荷量の増加に伴う性能劣化が発生するタイミングを判断する手法が必要となる。また、その際、日時による変動やノイズによる変動など、様々の負荷変動に対しても対応可能であることが必要とされる。
(Challenge 3)
The contents of some applications are a black box to server administrators, and server administrators may not be able to obtain values that are directly related to the application's performance requirements (e.g., response time) or the amount of load on the server (e.g., number of requests).
Therefore, a method is required to determine when performance degradation due to an increase in load will occur, simply by monitoring information obtained from the HW (server, etc.) on which the application is installed. In addition, the method must be able to handle various load fluctuations, such as fluctuations due to date and time and fluctuations due to noise.
このような点に鑑みて本発明がなされたのであり、本発明は、Web系アプリケーションを搭載するシステムにおいて、低負荷領域での電力削減効果を高めることを課題とする。 The present invention was made in consideration of these points, and aims to improve the power reduction effect in low-load areas in systems equipped with web-based applications.
本発明に係るUncore周波数制御装置は、Webサービスアプリケーションを搭載したコンピュートである物理サーバのUncore周波数を制御するUncore周波数制御装置であって、前記コンピュートからHW稼働状況データを含むデータを、所定期間収集する監視部と、収集したデータのうち、時間とともにカウントアップされるデータを分析対象となるメトリクスとし、前記メトリクスをMin-Max法により正規化した上で、前記Webサービスアプリケーションへの負荷量が増加していくにつれてメトリクスの値が増加するメトリクスA群、前記負荷量が増加しアプリケーション性能劣化が発生するタイミングでメトリクスの値が減少するメトリクスB群、前記負荷量が増加しアプリケーション性能劣化が発生するタイミングでメトリクスの値が収束するメトリクスC群に分類し、前記メトリクスB群および前記メトリクスC群の中から少なくとも1つのメトリクスBまたは/およびメトリクスCを選択し、前記メトリクスA群の中から、前記アプリケーション性能劣化が発生する前である低負荷時において、選択したメトリクスBまたは/およびメトリクスCよりも前記正規化した値が小さいメトリクスAを1つ選択し、選択したメトリクスを監視対象に決定する分析部と、前記監視対象となる、メトリクスAと、メトリクスBまたは/およびメトリクスCのデータを前記コンピュートから取得し、前記Min-Max法による正規化を行うメトリクス取得部と、前記メトリクスB若しくは前記メトリクスCの正規化した値のうちどちらか一方でも、前記メトリクスAの正規化した値を下回っている場合に、前記コンピュートのUncore周波数を設定可能な最大値に設定し、下回っていない場合に、前記コンピュートのUncore周波数を設定可能な最小値に設定する周波数制御部と、を備えることを特徴とする。 The uncore frequency control device of the present invention is an uncore frequency control device that controls the uncore frequency of a physical server that is a compute equipped with a web service application, and includes a monitoring unit that collects data including HW operation status data from the compute for a predetermined period of time, and of the collected data, data that is counted up over time is used as a metric to be analyzed. The metrics are normalized using a Min-Max method and then classified into a metric A group whose metric values increase as the load on the web service application increases, a metric B group whose metric values decrease when the load increases and application performance deteriorates, and a metric C group whose metric values converge when the load increases and application performance deteriorates, and at least one of the metric B group and the metric C group is selected. The system is characterized by comprising an analysis unit that selects one metric B and/or metric C, selects one metric A from the group of metrics A that has a smaller normalized value than the selected metric B and/or metric C during low load before the application performance degradation occurs, and determines the selected metric as the monitoring target; a metrics acquisition unit that acquires data on metric A and metric B and/or metric C to be monitored from the compute and performs normalization using the Min-Max method; and a frequency control unit that sets the uncore frequency of the compute to a configurable maximum value if either the normalized value of metric B or metric C is lower than the normalized value of metric A, and sets the uncore frequency of the compute to a configurable minimum value if the normalized value is not lower.
本発明によれば、Web系アプリケーションを搭載するシステムにおいて、低負荷領域での電力削減効果を高めることができる。 The present invention makes it possible to improve the power reduction effect in low-load areas in systems equipped with web-based applications.
次に、本発明を実施するための形態(以下、「本実施形態」と称する。)について説明する。 Next, we will explain the form for implementing the present invention (hereinafter referred to as the "present embodiment").
本実施形態に係るUncore周波数制御装置は、Webサービスアプリケーションが搭載されるサーバから、様々なデータを収集し、そのデータの中で制御に用いる指標となるデータを決定する。この指標となるデータは、時間とともにカウントアップされるデータ(後記する「メトリクス」)である。Uncore周波数制御装置は、各メトリクスの負荷量に対する増加率の傾向を確認し、監視対象となるメトリクスを決定する。そして、Uncore周波数制御装置は、メトリクスの増加率が変化した時点により、負荷量の低負荷領域と高負荷領域とを分け、高負荷領域では性能保証を優先し、低負荷領域では消費電力削減を優先する周波数制御を行う(詳細は後記)。 The Uncore frequency control device according to this embodiment collects various data from a server on which a Web service application is installed, and among that data, determines which data will be used as an index for control. This index data is data that is counted up over time ("metrics" described below). The Uncore frequency control device checks the trend of the rate of increase of each metric relative to the load, and determines which metrics to monitor. The Uncore frequency control device then divides the load into low and high load regions depending on the point in time when the rate of increase of the metric changes, and performs frequency control that prioritizes performance guarantees in the high load region and power consumption reduction in the low load region (details described below).
図1は、本実施形態に係るUncore周波数制御装置1を含むUncore周波数制御システム1000の全体構成を示す図である。
図1で示すように、Uncore周波数制御装置1は、Uncore周波数の制御対象となる各コンピュート(物理サーバ)2と通信接続される。
FIG. 1 is a diagram showing the overall configuration of an uncore
As shown in FIG. 1, an uncore
各コンピュート2は、HW(hardware)上にアプリケーション(App)200(ここでは、Webサービスアプリケーション)が実装される。なお、このアプリケーション200は、VM(Virtual Machine)やコンテナに実装されてもよい。また、各コンピュート2は、データ収集ソフトウェア21と、IPMI(Intelligent Platform Management Interface)22とを備える。
Each
データ収集ソフトウェア21は、コンピュート2の性能データを収集するソフトウェアであり、App性能値やHW稼働状況データを取得する。なお、App性能値は、例えば、応答時間やスループットであるが、アプリケーションの仕様によっては、このApp性能値を取得できない場合がある。よって、本実施形態に係るデータ収集ソフトウェア21は、少なくともHW稼働状況データを取得するものとする。
HW稼働状況データは、コンピュート2の負荷量の基準となる指標であり、CPU使用率や、キャッシュミス、受信したパケット数などの各コンピュート2から取得可能な性能データや、コンピュート2上で稼働するAppのログから得られる性能値である。なお、このHW稼働状況データの中から、後記するUncore周波数の制御判断の指標となるデータ(メトリクス)が決定される(詳細は後記)。
このデータ収集ソフトウェア21は、Perf,dstatなどの既存のデータ収集ソフトウェアや、自作のソフトウェアを用いることができる。
The
The HW operation status data is an index that is a reference for the load of the
The
IPMI22は、ハードウェアの状態を監視・管理するための標準インタフェースであり、消費電力計測手段を備える。IPMI22は、アプリケーション(App)200を実装することにより、負荷印加された際のコンピュート2の消費電力を測定する。なお、この消費電力計測手段は、IPMI22に限定されず、コンピュート2がパワーメータを備えている場合には、そのパワーメータにより消費電力を測定してもよい。
コンピュート2は、実装されたアプリケーション200に負荷印加した際のHW稼働状況を示すデータや、消費電力の情報を、Uncore周波数制御装置1へ送信する。そして、コンピュート2は、Uncore周波数制御装置1からのUncore周波数の設定情報を取得し、負荷に応じた最適なUncore周波数を設定する。
≪Uncore周波数制御装置≫
次に、本実施形態に係るUncore周波数制御装置1等について説明する。
Uncore周波数制御装置1は、アプリケーション200が搭載されているコンピュート2のみで取得できるデータについて、負荷量に対する値が増加するもの(後記する、メトリクスA群)、App性能が劣化するタイミングで値が減少するもの(後記する、メトリクスB群)、App性能が劣化するタイミングで値が収束するもの(後記する、メトリクスC群)に分類する。そして、メトリクスA群,B群,C群それぞれの中から監視対象とするメトリクスを決定する。Uncore周波数制御装置1は、メトリクスA群から決定したメトリクスAに対して、メトリクスB群,C群から決定したメトリクスB,Cが大きい場合は、Uncore周波数を設定可能な最小値に設定し、小さい場合は、Uncore周波数を設定可能な最大値に設定する。
これにより、Webサービスアプリケーションを提供するサーバ(コンピュート2)において、特に低負荷領域での電力削減を可能とするとともに、Webサービスアプリケーションから必要な情報(性能情報)を取得できない場合においても、サーバ(HW)からの情報に基づいて、周波数を制御することが可能となる。また、負荷変動による制御を単純化することにより、既存手法と比較し、制御処理のオーバヘッドを削減することができる。
このUncore周波数制御装置1は、図1で示すように、制御部10と、入出力部11と、記憶部12とを備える。
≪Uncore Frequency Control Device≫
Next, the uncore
The uncore
This enables power reduction, especially in low load regions, in the server (Compute 2) that provides the Web service application, and also enables frequency control based on information from the server (HW) even when necessary information (performance information) cannot be obtained from the Web service application. In addition, by simplifying control based on load fluctuations, it is possible to reduce the overhead of control processing compared to existing methods.
As shown in FIG. 1, the uncore
入出力部11は、各コンピュート2等との間の情報について入出力を行う。この入出力部11は、通信回線を介して情報の送受信を行う通信インタフェースと、図示を省略したキーボード等の入力装置やモニタ等の出力装置との間で情報の入出力を行う入出力インタフェースとから構成される。
The input/
記憶部12は、ハードディスクやフラッシュメモリ、RAM(Random Access Memory)等により構成される。
この記憶部12には、データストア100が格納される。
The
In this
データストア100には、後記する監視部110が各コンピュート2から収集するHW稼働状況データや消費電力などが格納される。また、データストア100には、後記する分析部120が監視対象に決定したメトリクスを監視部110を介してメトリクス取得部130が取得し、そのメトリクスの値を正規化した情報等が格納される。
The
制御部10は、Uncore周波数制御装置1が実行する処理の全般を司り、監視部110と、分析部120と、メトリクス取得部130、周波数制御部140とを含んで構成される。
The
監視部110は、Webサービスアプリケーションが搭載されるサーバ(コンピュート2)からデータ(HW稼働状況データ)を収集する。
このデータ収集には、Perf,dstatなどの既存のデータ収集ソフトウェアや、自作のソフトウェアを用いることができる。また、Linuxであれば、データ収集ツールとして、例えばLinux perf stat等を利用することができる。
The
For this data collection, existing data collection software such as Perf and dstat, or self-created software can be used. Also, if you are using Linux, you can use, for example, Linux perf stat as a data collection tool.
分析部120は、監視部110が収集したデータを分析し、Uncore周波数の制御に用いる指標を決定し、分析結果に基づき制御アルゴリズムに用いるロジックを決定する。
The
分析部120による、Uncore周波数制御に用いる指標の決定について説明する。
分析部120は、監視部110が収集したデータのうち、時間とともにカウントアップされるデータを、分析対象のデータとする。この分析対象のデータを「メトリクス」と称する。このメトリクスは、命令実行数やコンテキストスイッチ、キャッシュミスなど、HWやSW等から提供されるサーバ(コンピュート2)の状態を示すカウンタ値である。
The determination of the index used for uncore frequency control by the
The
無負荷状態から低~中程度の負荷がかかった状態では、処理がスムーズに行われ、メトリクスも増加する。しかし、何らかの原因でリクエストキューが詰まるとメトリクスの増加に変化が生じる。分析部120は、このようなボトルネックが発生するタイミングを検知するために必要となる監視対象をメトリクスとして特定する。
When there is no load or a low to medium load, processing is smooth and the metrics increase. However, if the request queue becomes clogged for some reason, the increase in metrics changes. The
分析部120は、監視部110が収集した複数のメトリクスについて、負荷量に対する増加率の傾向を確認し、以下の3つのグループに分類する。この際、分析部120は、各値の絶対値が異なるため、Min-Max法による正規化を行う。
The
図2は、メトリクスA群,B群,C群の負荷量に対する正規化した値を示すグラフである。メトリクスの増加傾向により、3つのグループに分類する。
メトリクスA群:負荷量が増加していくにつれてメトリクスの値が増加する。
メトリクスB群:負荷量が増加し、App性能劣化が発生するタイミングでメトリクスの値が減少する。
メトリクスC群:負荷量が増加し、App性能劣化が発生するタイミングでメトリクスの値が収束する。
2 is a graph showing normalized values versus load for metrics A, B, and C. The metrics are classified into three groups based on their increasing trends.
Metrics Group A: The metric value increases as the load increases.
Metrics group B: The metric values decrease when the load increases and app performance deteriorates.
Metrics group C: The metric values converge when the load increases and App performance degradation occurs.
分析部120は、分類したメトリクスA群の中から1つメトリクス(メトリクスA)を監視対象に決定する。また、分析部120は、メトリクスB群,C群の中から少なくとも1つのメトリクスBまたはメトリクスCを監視対象に決定する。なお、メトリクスB群から1つ、メトリクスC群から1つの監視対象を決定してもよい。
ここで、分析部120は、メトリクスA群から選択したメトリクスAに関しては、メトリクスB,Cよりも、図2で示すように、低負荷時の値が小さいものを選択する。
そして、分析部120は、分析中に正規化で用いたMin/Max値を、データストア100に保持しておく。
The
Here, with regard to metric A selected from metric A group, the
The
また、本実施形態において、図3で示すように、App性能の劣化が発生し、メトリクスBの値が減少する、もしくは、メトリクスCの値が収束するタイミングを境にして(図2および図3の破線x)、サーバ(コンピュート2)の負荷量が低負荷領域にあるか高負荷領域にあるかを定義する。 Furthermore, in this embodiment, as shown in Figure 3, the load on the server (Compute 2) is defined as being in the low load region or the high load region based on the point in time when degradation of App performance occurs and the value of metric B decreases or the value of metric C converges (dashed line x in Figures 2 and 3).
分析部120は、分析結果に基づき、Uncore周波数の制御に用いる指標としてメトリクスA,B,Cを決定すると、Uncore周波数を制御するための制御アルゴリズムに用いるロジックを決定する。
指標となるメトリクスは、メトリクスAとメトリクスBに決定する場合と、メトリクスAとメトリクスCに決定する場合と、メトリクスAとメトリクスBとメトリクスCに決定うる場合がある。
The
The metrics to be used as indices may be metric A and metric B, metric A and metric C, or metric A, metric B, and metric C.
分析部120は、制御アルゴリズムに用いるロジックで扱うデータの前処理として、まず、決定したメトリクス(例えばメトリクスA,B,C)を所定の時間間隔で収集し、正規化する。
そして、メトリクスの大小を比較する以下のロジックを採用する。
正規化した各値を比較し、「メトリクスB若しくはC > メトリクスA」であるかを判定する。ここでは、メトリクスB,メトリクスCのどちらか一方でもメトリクスAより大きいかを判定する。つまり、図2および図3で示す負荷量が低負荷領域にあるかを判定する。「メトリクスB若しくはC > メトリクスA」であれば、Uncore周波数を設定可能な最小値に設定するロジックとする。
一方、正規化した各値を比較し、「メトリクスB若しくはC < メトリクスA」であるかを判定する。ここでは、メトリクスB,メトリクスCのどちらか一方でもメトリクスAより小さいかを判定する。つまり、図2および図3で示す負荷量が高負荷領域にあるかを判定する。「メトリクスB若しくはC < メトリクスA」であれば、Uncore周波数を設定可能な最大値に設定するロジックとする。
As a pre-processing of data to be handled by the logic used in the control algorithm, the
Then, the following logic is used to compare the size of the metrics:
The normalized values are compared to determine whether "metric B or C > metric A." Here, it is determined whether either metric B or metric C is greater than metric A. In other words, it is determined whether the load amount shown in Figures 2 and 3 is in the low load area. If "metric B or C > metric A," the logic is set to set the uncore frequency to the minimum value that can be set.
Meanwhile, the normalized values are compared to determine whether "metric B or C < metric A." Here, it is determined whether either metric B or metric C is smaller than metric A. In other words, it is determined whether the load amount shown in Figures 2 and 3 is in the high load area. If "metric B or C < metric A," the logic is set to set the uncore frequency to the maximum value that can be set.
また、分析部120は、メトリクスの大小比較に移るか否かの判断のために、以下のロジックを採用する。
〔1〕負荷がかかっているか否かの判断
メトリクスA,B,Cのいずれかの値(Min-Max法で正規化された値)が、所定の閾値(例えば、「0.1」)以上であれば、制御判断(メトリクスの大小比較)に移る。
このロジックは、無負荷や超低負荷時において、無駄な処理をしないために設けるものである。
Furthermore, the
[1] Determining whether or not there is a load If the value of any of metrics A, B, or C (normalized using the Min-Max method) is greater than or equal to a predetermined threshold (e.g., 0.1), proceed to a control decision (comparing the size of the metrics).
This logic is provided to prevent unnecessary processing when there is no load or an extremely low load.
〔2〕メトリクスのノイズに基づく判断
監視部110において、所定の時間間隔で収集するメトリクスB群,C群に属するものは、低負荷から高負荷に遷移する過渡期にノイズが大きくなる場合がある。なお、以下の説明においては、メトリクスBを用いて説明するが、メトリクスCについても同様である。
[2] Judgment based on metric noise In the
図4は、メトリクスAとメトリクスBの過去の所定期間の推移を示す図である。図4で示すように低負荷領域から高負荷領域に遷移する過渡期において、メトリクスAとメトリクスBの大小関係がノイズにより何度も入れ替わっている。そこで、メトリクスBの最大値と最小値の差が全体の大きさの所定割合(所定の第1割合:例えば、2割)以下の場合に、メトリクスAとの大小比較を行う。つまり、メトリクスBの最大値と最小値の差が全体の所定の割合(例えば、2割)を超える場合には、大小比較を行わないようにする。
これにより、ノイズの影響による高頻度なUncore周波数の設定変更を阻止することができ、処理のオーバヘッドを防ぐことができる。
4 is a diagram showing the trends of metrics A and B over a given period of time in the past. As shown in FIG. 4, during the transitional period from a low load region to a high load region, the magnitude relationship between metrics A and B changes many times due to noise. Therefore, when the difference between the maximum and minimum values of metric B is equal to or less than a given percentage of the total size (a given first percentage: for example, 20%), a comparison of the magnitude with metric A is performed. In other words, when the difference between the maximum and minimum values of metric B exceeds a given percentage of the total (for example, 20%), a comparison of the magnitude is not performed.
This makes it possible to prevent frequent changes to the uncore frequency setting due to noise, thereby preventing processing overhead.
または、高負荷から低負荷に遷移する場合において、ノイズを検知(つまり、最大値と最小値との差が全体の大きさの所定割合(所定の第2割合:例えば、1割)以上)のときは、制御ヒステリシスを設け、「メトリクスB+b」、「メトリクスA-a」として大小比較(制御判断)を行う。なお、a(第2の所定値),b(第1の所定値)は、0<a,b<1の任意の実数とする。このように制御ヒステリシスを設定することにより、メトリクスBが閾値近くで変動しても、その制御の影響で頻繁に切り替わることを回避することができる。 Alternatively, when transitioning from high load to low load, if noise is detected (i.e., the difference between the maximum and minimum values is equal to or greater than a predetermined percentage of the total size (predetermined second percentage: for example, 10%)), a control hysteresis is provided and a magnitude comparison (control decision) is made between "metric B+b" and "metric A-a." Note that a (second predetermined value) and b (first predetermined value) are any real numbers with 0<a, b<1. By setting the control hysteresis in this way, even if metric B fluctuates near the threshold, frequent switching due to the influence of that control can be avoided.
分析部120が決定したこれらのロジックに基づく制御アルゴリズムにより、後記する周波数制御部140が、Uncore周波数の制御を実行する。
The
図1に戻り、メトリクス取得部130は、分析部120が決定した指標となるメトリクスの情報を、監視部110を介してサーバ(コンピュート2)から取得する。そして、メトリクス取得部130は、取得したメトリクスA,B,Cについて、Min-Max法で正規化した上でデータストア100に格納する。
Returning to FIG. 1, the
周波数制御部140は、分析部120が生成したロジックに基づく制御アルゴリズムにより、メトリクス取得部130が監視部110を介して取得した指標となるメトリクスA,B,Cを用いてUncore周波数制御を実行する。なお、周波数制御部140が実行する処理の詳細(制御アルゴリズム)は、後記する図6のフローチャートを参照して説明する。
The
≪Uncore周波数制御装置の処理≫
次に、Uncore周波数制御装置1が実行する処理を説明する。
図5は、Uncore周波数制御装置1がUncore周波数制御より前(事前に)に行っておくメトリクス決定処理の流れを示す図である。図6は、Uncore周波数制御装置1が、決定したメトリクスを用いてUncore周波数制御を行う処理の流れを示す図である。
Processing the Uncore Frequency Control Device
Next, the process executed by the Uncore
Fig. 5 is a diagram showing a flow of a metrics determination process performed by the uncore
まず、図5のメトリクス決定処理の流れについて説明する。
Uncoore周波数制御装置1の監視部110(図1)は、Webサービスアプリケーションが搭載されるサーバ(コンピュート2)から、所定期間のデータ(HW稼働状況データ)を収集する(ステップS10)。
First, the flow of the metrics determination process in FIG. 5 will be described.
The monitoring unit 110 (FIG. 1) of the Uncoore
次に、Uncoore周波数制御装置1の分析部120は、監視部110が取得したデータのうち、時間とともにカウントアップされるデータ(例えば、命令実行数やコンテキストスイッチ、キャッシュミスなどのサーバ状態を示すカウンタ値)を対象として、Min-Max法により正規化を行う(ステップS11)。
なお、この正規化で用いるMin/Max値はデータストア100に保持しておく。
Next, the
The Min/Max values used in this normalization are stored in the
続いて、分析部120は、負荷量に対する増加率の傾向を確認し、負荷量が増加していくにつれてメトリクスの値が増加する「メトリクスA群」、負荷量が増加しApp性能劣化が発生するタイミングでメトリクスの値が減少する「メトリクスB群」、負荷量が増加しApp性能劣化が発生するタイミングでメトリクスの値が収束する「メトリクスC群」の3グループに分類する(ステップS12)。
Then, the
そして、メトリクスA群から1種、メトリクスB群,C群から少なくとも1種を、Uncore周波数の制御に用いる指標として決定する(ステップS13)。
なお、メトリクスA群から1種、メトリクスB群,C群のそれぞれから1種ずつを、Uncore周波数の制御に用いる指標として決定してもよい。
また、メトリクスの各群において、複数の候補がある場合には、任意のメトリクスを選択することができるが、メトリクスA群から選択するメトリクスAについては、メトリクスB群,C群から選択したメトリクスB,Cより、低負荷時の値が小さいものを選択する(図2参照)。
Then, one type from metric group A and at least one type from metric group B and metric group C are determined as indexes to be used for controlling the uncore frequency (step S13).
Alternatively, one type from metric group A, one type each from metric group B and C may be determined as the index to be used for controlling the uncore frequency.
Furthermore, if there are multiple candidates in each metric group, any metric can be selected, but for metric A selected from metric group A, the metric with a smaller value at low load than metrics B and C selected from metric groups B and C is selected (see Figure 2).
次に、分析部120は、制御アルゴリズムに用いるロジックを決定する(ステップS14)。
具体的には、分析部120は、ステップS13で決定した指標となるメトリクスに応じてメトリクスの大小比較を行うロジックを決定する。
例えば、ステップS13において、メトリクスA群から選ばれたメトリクスAと、メトリクスB群から選ばれたメトリクスBとが指標として決定した場合には、以下のロジックに決定する。
・制御時において正規化した値を比較し、「メトリクスB > メトリクスA」であれば、Uncore周波数を設定可能な最小値に決定する。
・制御時において正規化した値を比較し、「メトリクスB < メトリクスA」であれば、Uncore周波数を設定可能な最大値に決定する。
なお、メトリクスCが指標として決定した場合も同様である。
Next, the
Specifically, the
For example, in step S13, if metric A selected from metric group A and metric B selected from metric group B are determined as the indicators, the following logic is determined.
During control, normalized values are compared, and if "metric B>metric A", the uncore frequency is set to the minimum value that can be set.
During control, normalized values are compared, and if "metric B < metric A", the uncore frequency is set to the maximum value that can be set.
The same applies when metric C is determined as the index.
また、例えば、ステップS13において、メトリクスA群から選ばれたメトリクスAと、メトリクスB群から選ばれたメトリクスBと、メトリクスC群から選ばれたメトリクスCとが指標として決定した場合には、以下のロジックに決定する。
・制御時において正規化した値を比較し、「メトリクスB,メトリクスCのいずれか一方 > メトリクスA」であれば、Uncore周波数を設定可能な最小値に決定する。
・制御時において正規化した値を比較し、「メトリクスB,メトリクスCのいずれか一方 < メトリクスA」であれば、Uncore周波数を設定可能な最大値に決定する。
Also, for example, if in step S13, metric A selected from metric group A, metric B selected from metric group B, and metric C selected from metric group C are determined as the indicators, the following logic is determined.
During control, normalized values are compared, and if either metric B or metric C > metric A, the uncore frequency is set to the minimum value that can be set.
During control, normalized values are compared, and if either metric B or metric C is smaller than metric A, the uncore frequency is set to the maximum value that can be set.
〔負荷がかかっているか否かの判断ロジック〕
さらに、分析部120は、メトリクスの大小比較の処理を行うか否かの判断として、指標として選択したメトリクスA,B,Cに、負荷がかかっているか否かを判断するロジックを決定する。
メトリクスA,B,Cのいずれかの値(Min-Max法で正規化された値)が、所定の閾値(例えば、「0.1」)以上であれば、制御判断(メトリクスの大小比較)に移る、というロジックを決定する。
なお、この所定の閾値は、例えば、予めシステム管理者等により決定され、Uncore周波数制御装置1の記憶部12に格納しておく。
[Logic for determining whether or not a load is applied]
Furthermore, the
The logic is determined as follows: if the value of any of metrics A, B, or C (normalized using the Min-Max method) is greater than or equal to a predetermined threshold (e.g., 0.1), then proceed to a control decision (comparison of the metrics).
It should be noted that this predetermined threshold value is, for example, determined in advance by a system administrator or the like, and is stored in the
〔メトリクスのノイズに基づく判断〕
さらに、分析部120は、メトリクスが低負荷から高負荷に遷移する過渡期であるかを判断し、この場合にはノイズが大きいため、メトリクスの大小比較を行わないようにするロジックを決定する。
具体的には,メトリクスとして選択されたメトリクスB,Cについて、データストア100に格納された、過去の所定時間(例えば5秒間)の推移のデータを参照し、その最大値と最小値の差が全体の大きさの所定割合(所定の第1割合:例えば、2割)以下の場合に、制御判断(メトリクスAとの大小比較)に移る、というロジックを決定する。
[Judgments based on metrics noise]
Furthermore, the
Specifically, for metrics B and C selected as metrics, the logic is determined such that the data on trends over a specified period of time in the past (e.g., 5 seconds) stored in the
また、分析部120は、メトリクスとして選択されたメトリクスB,Cについて、データストア100に格納された、過去の任意期間(例えば5秒間)の推移のデータを参照し、高負荷から低負荷に遷移する場合であり、その最大値と最小値の値が全体の所定割合(所定の第2割合:例えば、1割)を超える場合には、制御ヒステリシスを設け、「メトリクスB+b」、「メトリクスC+c」、「メトリクスA-a」として、制御判断(メトリクスAとの大小比較)を行う、というロジックを決定する。ただし、a(第2の所定値),b(第1の所定値),c(第1の所定値)は、0<a,b,c<1の任意の実数である。なお、第1の所定値であるbとcは、同じ値でもよいし、異なる値でもよい。
The
これらにより、Uncore周波数制御装置1は、ノイズの影響による高頻度な設定変更を阻止することができ、処理のオーバヘッドを防ぐことができる。
As a result, the Uncore
Uncore周波数制御装置1の周波数制御部140は、分析部120が決定したロジックに基づく制御アルゴリズムにより、Uncore周波数の制御を実行する。
次に、Uncore周波数制御の処理の流れ(制御アルゴリズム)について説明する。
The
Next, the process flow (control algorithm) of the uncore frequency control will be described.
図6は、Uncore周波数制御装置1が、決定したメトリクスを用いてUncore周波数制御を行う処理の流れを示す図である。
なお、ここでは、分析部120により、Uncore周波数の制御に用いる指標が、メトリクスAとメトリクスBに決定しているものとして説明する。また、分析部120により、メトリクスの大小比較のロジックが決定しており、負荷がかかっているかを判断するための所定の閾値や、ノイズに基づく判断をするための所定割合(所定の第1割合、所定の第2割合)等が予め設定されているものとする。
FIG. 6 is a diagram showing a process flow in which the uncore
In this embodiment, it is assumed that the
まず、Uncore周波数制御装置1のメトリクス取得部130は、分析部120が決定した指標となるメトリクスの情報(ここでは、メトリクスAとメトリクスB)を、監視部110を介してサーバ(コンピュート2)から取得する(ステップS20)。
なお、例えば、メトリクス取得部130は、データ収集ツール(Linux per stat)を用いて、監視部110を介して、1秒間隔でデータを取得する。
そして、メトリクス取得部130は、取得したメトリクスA,Bについて、データストア100に格納しておいた、分析中の正規化で用いたMin/Max値を利用し、正規化した値をデータストア100に格納する。
First, the
For example, the
Then, for the acquired metrics A and B, the
次に、Uncore周波数制御装置の周波数制御部140は、メトリクスの値(メトリクスAまたはメトリクスBの値)が、所定の閾値(例えば、「0.1」)以上であるかを判定する(ステップS21)。この処理は、無負荷や超低負荷時において、無駄な処理をしないためのものである。
ここで、所定の閾値以上でなければ(ステップS21→No)、つまり、無負荷や超低負荷であれば、Uncore周波数の制御を行わず、ステップS28へ進む。一方、所定の閾値以上であれば(ステップS21→Yes)、次のステップS22へ進む。
Next, the
If the frequency is not equal to or greater than the predetermined threshold (step S21→No), that is, if there is no load or a very low load, the uncore frequency is not controlled and the process proceeds to step S28. On the other hand, if the frequency is equal to or greater than the predetermined threshold (step S21→Yes), the process proceeds to the next step S22.
ステップS22において、周波数制御部140は、過去の所定時間(例えば、5秒間)に収集したメトリクスB(正規化した値)のデータの最大値と最小値の差が全体の所定の割合(所定の第1割合:例えば2割)以下であるかを判定する。
そして、最大値と最小値の差が全体の所定の割合(所定の第1割合)以下でなければ(ステップS22→No)、ノイズの影響が大きいとして、Uncore周波数の制御を行わず、ステップS28へ進む。一方、所定の割合(所定の第1割合)以下であれば(ステップS22→Yes)、次のステップS23へ進む。
In step S22, the
If the difference between the maximum and minimum values is not equal to or less than a predetermined ratio (a first predetermined ratio) of the total (step S22→No), the influence of noise is deemed large, and the uncore frequency is not controlled, and the process proceeds to step S28. On the other hand, if the difference is equal to or less than the predetermined ratio (a first predetermined ratio) (step S22→Yes), the process proceeds to the next step S23.
ステップS23において、周波数制御部140は、現時点において、コンピュート2に設定しているUncore周波数が最大値であり、かつ、過去の所定時間(例えば、5秒間)に収集したメトリクスB(正規化した値)のデータの最大値と最小値の差が全体の所定の割合(所定の第2割合:例えば1割)以上であるかを判定する。
ここで、現時点でコンピュート2に設定しているUncore周波数が最大値である場合は、現時点が高負荷であり、高負荷から低負荷への遷移する場面であることを意味し、かつ、最大値と最小値の差が全体の所定の割合(所定の第2割合:例えば1割)以上ある場合は、ノイズの影響がある程度大きい場面であることを意味する。
そして、ステップS23の要件に該当しない場合は(ステップS23→No)、ステップS25へ進む。一方、ステップS23の要件に該当する場合は(ステップS23→Yes)、ステップS24へ進む。
In step S23, the
Here, if the Uncore frequency currently set in
If the requirement of step S23 is not met (step S23→No), the process proceeds to step S25. On the other hand, if the requirement of step S23 is met (step S23→Yes), the process proceeds to step S24.
ステップS24において、周波数制御部140は、制御ヒステリシスを設定する。
具体的には、周波数制御部140は、メトリクスBの値を、「メトリクスB+b」にし、メトリクスAの値を、「メトリクスA-a」とする。ただし、a,bは、0<a,b<1の任意の実数である。そして、ステップS25へ進む。
In step S24, the
Specifically,
ステップS25において、周波数制御部140は、メトリクスBの値がメトリクスAの値を下回るか否か(メトリクスB < メトリクスA)を判定する。
そして、周波数制御部140は、メトリクスBの値がメトリクスAの値を下回っていなければ(ステップS25→No)、Uncore周波数を設定可能な最小値に設定する(ステップS26)。なお、現時点が最小値であれば現状を維持する。そして、ステップS28へ進む。
一方、メトリクスBの値がメトリクスAの値を下回っていれば(ステップS25→Yes)、Uncore周波数を設定可能な最大値に設定する(ステップS27)。なお、現時点が最大値であれば現状を維持する。そして、ステップS28へ進む。
In step S25, the
If the value of metric B is not lower than the value of metric A (step S25→No), the
On the other hand, if the value of metric B is lower than the value of metric A (step S25→Yes), the uncore frequency is set to the maximum value that can be set (step S27). If the current value is the maximum value, the current state is maintained. Then, the process proceeds to step S28.
ステップS28において、周波数制御部140は、コンピュート2におけるWebサービスが終了したか否かを判定する。そして、Webサービスが終了していなければ(ステップS28→No)、ステップS20へ戻って、処理を繰り返す。
一方、Webサービスが終了している場合には(ステップS28→Yes)、Uncore周波数制御全体の処理を終了する。
In step S28, the
On the other hand, if the Web service has ended (step S28→Yes), the entire process of the Uncore frequency control ends.
<ハードウェア構成>
本実施形態に係るUncore周波数制御装置1は、例えば図7で示すような構成のコンピュータ900によって実現される。
図7は、本実施形態に係るUncore周波数制御装置1の機能を実現するコンピュータ900の一例を示すハードウェア構成図である。コンピュータ900は、CPU901、ROM(Read Only Memory)902、RAM903、HDD(Hard Disk Drive)904、入出力I/F(Interface)905、通信I/F906およびメディアI/F907を有する。
<Hardware Configuration>
The uncore
7 is a hardware configuration diagram showing an example of a
CPU901は、ROM902またはHDD904に記憶されたプログラム(Uncore周波数制御プログラム)に基づき作動し、制御部10(図1)による制御を行う。ROM902は、コンピュータ900の起動時にCPU901により実行されるブートプログラムや、コンピュータ900のハードウェアに係るプログラム等を記憶する。
The
CPU901は、入出力I/F905を介して、マウスやキーボード等の入力装置910、および、ディスプレイやプリンタ等の出力装置911を制御する。CPU901は、入出力I/F905を介して、入力装置910からデータを取得するともに、生成したデータを出力装置911へ出力する。なお、プロセッサとしてCPU901とともに、GPU(Graphics Processing Unit)等を用いても良い。
The
HDD904は、CPU901により実行されるプログラムおよび当該プログラムによって使用されるデータ等を記憶する。通信I/F906は、通信網(例えば、NW(Network)920)を介して他の装置からデータを受信してCPU901へ出力し、また、CPU901が生成したデータを、通信網を介して他の装置へ送信する。
The
メディアI/F907は、記録媒体912に格納されたプログラム(Uncore周波数制御プログラム)またはデータを読み取り、RAM903を介してCPU901へ出力する。CPU901は、目的の処理に係るプログラムを、メディアI/F907を介して記録媒体912からRAM903上にロードし、ロードしたプログラムを実行する。記録媒体912は、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto Optical disk)等の光磁気記録媒体、磁気記録媒体、半導体メモリ等である。
The media I/
例えば、コンピュータ900が本発明のUncore周波数制御装置1として機能する場合、コンピュータ900のCPU901は、RAM903上にロードされたプログラムを実行することにより、Uncore周波数制御プログラムの機能を実現する。また、HDD904には、RAM903内のデータが記憶される。CPU901は、目的の処理に係るプログラムを記録媒体912から読み取って実行する。この他、CPU901は、他の装置から通信網(NW920)を介して目的の処理に係るプログラムを読み込んでもよい。
For example, when the
<効果>
以下、本発明に係るUncore周波数制御装置等の効果について説明する。
本発明に係るUncore周波数制御装置は、Webサービスアプリケーションを搭載したコンピュート2である物理サーバのUncore周波数を制御するUncore周波数制御装置1であって、コンピュート2からHW稼働状況データを含むデータを、所定期間収集する監視部110と、収集したデータのうち、時間とともにカウントアップされるデータを分析対象となるメトリクスとし、メトリクスをMin-Max法により正規化した上で、Webサービスアプリケーションへの負荷量が増加していくにつれてメトリクスの値が増加するメトリクスA群、負荷量が増加しアプリケーション性能劣化が発生するタイミングでメトリクスの値が減少するメトリクスB群、負荷量が増加しアプリケーション性能劣化が発生するタイミングでメトリクスの値が収束するメトリクスC群に分類し、メトリクスB群およびメトリクスC群の中から少なくとも1つのメトリクスBまたは/およびメトリクスCを選択し、メトリクスA群の中から、アプリケーション性能劣化が発生する前である低負荷時において、選択したメトリクスBまたは/およびメトリクスCよりも正規化した値が小さいメトリクスAを1つ選択し、選択したメトリクスを監視対象に決定する分析部120と、監視対象となる、メトリクスAと、メトリクスBまたは/およびメトリクスCのデータをコンピュート2から取得し、Min-Max法による正規化を行うメトリクス取得部130と、メトリクスB若しくはメトリクスCの正規化した値のうちどちらか一方でも、メトリクスAの正規化した値を下回っている場合に、コンピュート2のUncore周波数を設定可能な最大値に設定し、下回っていない場合に、コンピュートのUncore周波数を設定可能な最小値に設定する周波数制御部140と、を備えることを特徴とする。
<Effects>
The effects of the uncore frequency control device and the like according to the present invention will be described below.
The uncore frequency control device according to the present invention is an uncore
このようにすることにより、Uncore周波数制御装置1は、Web系アプリケーションを搭載するシステムにおいて、低負荷領域での電力削減効果を高めることができる。
また、Uncore周波数制御装置1は、コンピュートの状態が、低負荷領域から、性能要件に違反する可能性のある高負荷領域に遷移するタイミングで、Uncore周波数を設定可能な最小値から最大値に変更することができる。このように、負荷変動によるUncore周波数の制御を単純化することで、従来技術と比べ、周波数設定変更によるオーバヘッドを削減することができる。
さらに、Uncore周波数制御装置1は、コンピュート2に搭載されたアプリケーションから、性能要件に直接関係する値(例えば、応答時間など)を取得できない場合であっても、コンピュート2から得られるHW稼働状況データを用いて、アプリケーションに対する負荷量の増加に伴う性能劣化が発生するタイミングを判断することができる。よって、高負荷領域に遷移するタイミングを確実に判定してUncore周波数の設定変更を行うことが可能となる。
In this way, the uncore
In addition, the uncore
Furthermore, even if the Uncore
また、Uncore周波数制御装置1において、周波数制御部140は、メトリクス取得部130が取得して正規化した、監視対象の各メトリクスの値のうち、いずれか1つでも所定の閾値以上でない場合には、コンピュート2のUncore周波数の設定処理を行わないことを特徴とする。
Furthermore, in the uncore
このようにすることにより、Uncore周波数制御装置1は、コンピュート2の負荷量が、無負荷の場合や無負荷に近い超低負荷の状態の場合に、Uncore周波数の設定変更を行うか否かの判定処理を行わないようにする。よって、Uncore周波数制御装置1は、不要な判定処理に伴う無駄な電力を削減することができる。
By doing this, the Uncore
また、Uncore周波数制御装置1において、周波数制御部140は、メトリクス取得部130が所定時間において取得して正規化した、メトリクスBまたはメトリクスCの値の最大値と最小値の差が、メトリクスを正規化した全体の大きさの所定の第1割合を超えている場合に、コンピュートのUncore周波数の設定処理を行わないことを特徴とする。
Furthermore, in the uncore
このようにすることにより、Uncore周波数制御装置1は、収集するメトリクスBまたはメトリクスCにおいて、低負荷から高負荷に遷移する過渡期において、ノイズが大きい場合に、Uncore周波数の設定変更を行わないようにすることができる。これにより、Uncore周波数制御装置1は、ノイズによるUncore周波数の設定変更の増加を抑えることができ、コンピュート2のオーバヘッドを削減することができる。
By doing this, the uncore
また、Uncore周波数制御装置1において、周波数制御部140は、現時点でコンピュート2のUncore周波数が設定可能な最大値に設定されており、かつ、メトリクス取得部130が所定時間において取得して正規化した、メトリクスBまたはメトリクスCの値の最大値と最小値の差が、メトリクスを正規化した全体の大きさの所定の第2割合以上である場合に、監視対象として決定したメトリクスBまたは/およびメトリクスCの正規化した値に第1の所定値を追加し、監視対象として決定したメトリクスAの正規化した値に第2の所定値を削減することにより制御ヒステリシスを設定することを特徴とする。
Furthermore, in the uncore
このように、Uncore周波数制御装置1は、制御ヒステリシスを設定することにより、Uncore周波数の設定変更が頻繁に行われるのを防ぐことができる。これにより、Uncore周波数制御装置1は、コンピュート2のオーバヘッドを削減することができる。
In this way, the Uncore
なお、本発明は、以上説明した実施形態に限定されるものではなく、多くの変形が本発明の技術的思想内で当分野において通常の知識を有する者により可能である。 The present invention is not limited to the embodiments described above, and many modifications are possible within the technical concept of the present invention by those with ordinary skill in the art.
1 Uncore周波数制御装置
2 コンピュート(物理サーバ)
10 制御部
11 入出力部
12 記憶部
21 データ収集ソフトウェア
22 IPMI
100 データストア
110 監視部
120 分析部
130 メトリクス取得部
140 周波数制御部
200 アプリケーション(App)
1000 Uncore周波数制御システム
1 Uncore
10
100
1000 Uncore Frequency Control System
Claims (6)
前記コンピュートからHW稼働状況データを含むデータを、所定期間収集する監視部と、
収集したデータのうち、時間とともにカウントアップされるデータを分析対象となるメトリクスとし、前記メトリクスをMin-Max法により正規化した上で、前記Webサービスアプリケーションへの負荷量が増加していくにつれてメトリクスの値が増加するメトリクスA群、前記負荷量が増加しアプリケーション性能劣化が発生するタイミングでメトリクスの値が減少するメトリクスB群、前記負荷量が増加しアプリケーション性能劣化が発生するタイミングでメトリクスの値が収束するメトリクスC群に分類し、前記メトリクスB群および前記メトリクスC群の中から少なくとも1つのメトリクスBまたは/およびメトリクスCを選択し、前記メトリクスA群の中から、前記アプリケーション性能劣化が発生する前である低負荷時において、選択したメトリクスBまたは/およびメトリクスCよりも前記正規化した値が小さいメトリクスAを1つ選択し、選択したメトリクスを監視対象に決定する分析部と、
前記監視対象となる、メトリクスAと、メトリクスBまたは/およびメトリクスCのデータを前記コンピュートから取得し、前記Min-Max法による正規化を行うメトリクス取得部と、
前記メトリクスB若しくは前記メトリクスCの正規化した値のうちどちらか一方でも、前記メトリクスAの正規化した値を下回っている場合に、前記コンピュートのUncore周波数を設定可能な最大値に設定し、下回っていない場合に、前記コンピュートのUncore周波数を設定可能な最小値に設定する周波数制御部と、
を備えることを特徴とするUncore周波数制御装置。 An uncore frequency control device that controls an uncore frequency of a physical server that is a compute equipped with a Web service application,
A monitoring unit that collects data including HW operation status data from the compute for a predetermined period of time;
an analysis unit which uses data that is counted up over time from among the collected data as metrics to be analyzed, normalizes the metrics using a Min-Max method, and then classifies the metrics into a metric A group whose metric values increase as the load on the Web service application increases, a metric B group whose metric values decrease when the load increases and application performance degradation occurs, and a metric C group whose metric values converge when the load increases and application performance degradation occurs, and selects at least one metric B and/or metric C from the metric B group and the metric C group, and selects one metric A from the metric A group whose normalized value is smaller than that of the selected metric B and/or metric C during a low load period before the application performance degradation occurs, and determines the selected metric to be monitored;
a metrics acquisition unit that acquires data of metrics A, metrics B and/or metrics C to be monitored from the compute and performs normalization using the Min-Max method;
a frequency control unit that sets the uncore frequency of the compute to a configurable maximum value when either the normalized value of the metric B or the normalized value of the metric C is lower than the normalized value of the metric A, and sets the uncore frequency of the compute to a configurable minimum value when either the normalized value of the metric B or the normalized value of the metric C is not lower than the normalized value of the metric A;
An Uncore frequency control device comprising:
前記メトリクス取得部が取得して正規化した、監視対象の各メトリクスの値のうち、いずれか1つでも所定の閾値以上でない場合には、前記コンピュートのUncore周波数の設定処理を行わないこと
を特徴とする請求項1に記載のUncore周波数制御装置。 The frequency control unit is
The uncore frequency control device according to claim 1, characterized in that if any one of the values of each metric of the monitored object acquired and normalized by the metrics acquisition unit is not greater than a predetermined threshold, the uncore frequency setting process of the compute is not performed.
前記メトリクス取得部が所定時間において取得して正規化した、前記メトリクスBまたはメトリクスCの値の最大値と最小値の差が、メトリクスを正規化した全体の大きさの所定の第1割合を超えている場合に、前記コンピュートのUncore周波数の設定処理を行わないこと
を特徴とする請求項1に記載のUncore周波数制御装置。 The frequency control unit is
The uncore frequency control device of claim 1, characterized in that when the difference between the maximum and minimum values of metric B or metric C acquired and normalized by the metrics acquisition unit at a specified time exceeds a specified first percentage of the total normalized size of the metrics, the uncore frequency setting process of the compute is not performed.
現時点で前記コンピュートのUncore周波数が設定可能な最大値に設定されており、かつ、前記メトリクス取得部が所定時間において取得して正規化した、前記メトリクスBまたはメトリクスCの値の最大値と最小値の差が、メトリクスを正規化した全体の大きさの所定の第2割合以上である場合に、監視対象として決定した前記メトリクスBまたは/およびメトリクスCの正規化した値に第1の所定値を追加し、監視対象として決定した前記メトリクスAの正規化した値に第2の所定値を削減することにより制御ヒステリシスを設定すること
を特徴とする請求項1に記載のUncore周波数制御装置。 The frequency control unit is
The uncore frequency control device of claim 1, characterized in that when the uncore frequency of the compute is currently set to the maximum value that can be set, and the difference between the maximum and minimum values of the values of metric B or metric C acquired and normalized by the metrics acquisition unit at a specified time is greater than or equal to a specified second percentage of the overall normalized size of the metrics, a control hysteresis is set by adding a first specified value to the normalized value of metric B and/or metric C determined to be the monitoring target, and subtracting a second specified value from the normalized value of metric A determined to be the monitoring target.
前記Uncore周波数制御装置は、
前記コンピュートからHW稼働状況データを含むデータを、所定期間収集するステップと、
収集したデータのうち、時間とともにカウントアップされるデータを分析対象となるメトリクスとし、前記メトリクスをMin-Max法により正規化した上で、前記Webサービスアプリケーションへの負荷量が増加していくにつれてメトリクスの値が増加するメトリクスA群、前記負荷量が増加しアプリケーション性能劣化が発生するタイミングでメトリクスの値が減少するメトリクスB群、前記負荷量が増加しアプリケーション性能劣化が発生するタイミングでメトリクスの値が収束するメトリクスC群に分類し、前記メトリクスB群および前記メトリクスC群の中から少なくとも1つのメトリクスBまたは/およびメトリクスCを選択し、前記メトリクスA群の中から、前記アプリケーション性能劣化が発生する前である低負荷時において、選択したメトリクスBまたは/およびメトリクスCよりも前記正規化した値が小さいメトリクスAを1つ選択し、選択したメトリクスを監視対象に決定するステップと、
前記監視対象となる、メトリクスAと、メトリクスBまたは/およびメトリクスCのデータを前記コンピュートから取得し、前記Min-Max法による正規化を行うステップと、
前記メトリクスB若しくは前記メトリクスCの正規化した値のうちどちらか一方でも、前記メトリクスAの正規化した値を下回っている場合に、前記コンピュートのUncore周波数を設定可能な最大値に設定し、下回っていない場合に、前記コンピュートのUncore周波数を設定可能な最小値に設定するステップと、
を実行することを特徴とするUncore周波数制御方法。 An uncore frequency control method of an uncore frequency control device that controls an uncore frequency of a physical server that is a compute equipped with a Web service application, comprising:
The Uncore frequency control device includes:
collecting data including HW operation status data from the compute for a predetermined period of time;
a step of selecting, from among the collected data, data that is counted up over time as the metrics to be analyzed, normalizing the metrics using a Min-Max method, and classifying the metrics into a group of metrics A whose values increase as the load on the Web service application increases, a group of metrics B whose values decrease when the load increases and application performance degradation occurs, and a group of metrics C whose values converge when the load increases and application performance degradation occurs, selecting at least one metric B and/or metric C from the group of metrics B and the group of metrics C, and selecting one metric A from the group of metrics A whose normalized value is smaller than that of the selected metric B and/or metric C during a low load period before the application performance degradation occurs, and determining the selected metric to be monitored;
acquiring data of metric A, metric B and/or metric C to be monitored from the compute, and normalizing the data by the Min-Max method;
setting the compute uncore frequency to a configurable maximum value when either the normalized value of the metric B or the normalized value of the metric C is lower than the normalized value of the metric A, and setting the compute uncore frequency to a configurable minimum value when either the normalized value of the metric B or the normalized value of the metric C is not lower than the normalized value of the metric A;
An uncore frequency control method comprising the steps of:
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/023467 WO2025004124A1 (en) | 2023-06-26 | 2023-06-26 | Uncore frequency control device, uncore frequency control method, and uncore frequency control program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/023467 WO2025004124A1 (en) | 2023-06-26 | 2023-06-26 | Uncore frequency control device, uncore frequency control method, and uncore frequency control program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025004124A1 true WO2025004124A1 (en) | 2025-01-02 |
Family
ID=93937935
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2023/023467 Pending WO2025004124A1 (en) | 2023-06-26 | 2023-06-26 | Uncore frequency control device, uncore frequency control method, and uncore frequency control program |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025004124A1 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013539121A (en) * | 2010-09-23 | 2013-10-17 | インテル コーポレイション | Providing core unit voltage and frequency control |
| US20170344099A1 (en) * | 2016-05-24 | 2017-11-30 | Inventec (Pudong) Technology Corporation | System and method for controlling power consumption of a computing system |
| US20200356834A1 (en) * | 2020-07-27 | 2020-11-12 | Zhu ZHOU | Hierarchical reinforcement learning algorithm for nfv server power management |
-
2023
- 2023-06-26 WO PCT/JP2023/023467 patent/WO2025004124A1/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013539121A (en) * | 2010-09-23 | 2013-10-17 | インテル コーポレイション | Providing core unit voltage and frequency control |
| US20170344099A1 (en) * | 2016-05-24 | 2017-11-30 | Inventec (Pudong) Technology Corporation | System and method for controlling power consumption of a computing system |
| US20200356834A1 (en) * | 2020-07-27 | 2020-11-12 | Zhu ZHOU | Hierarchical reinforcement learning algorithm for nfv server power management |
Non-Patent Citations (1)
| Title |
|---|
| "White Paper: Fujitsu Server PRIMERGY CX400 M4 BIOS optimization for Xeon Scalable Processor-based systems. version 1.1. ", 6 June 2019, FUJITSU LTD., JP, article "Fujitsu Server PRIMERGY CX400 M4 BIOS optimization for Xeon Scalable Processor-based systems.", pages: 1 - 21, XP009561043 * |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9519562B2 (en) | Process demand prediction for distributed power and resource management | |
| CN101379453B (en) | Method and apparatus for using dynamic workload characteristics to control CPU frequency and voltage scaling | |
| US8261285B2 (en) | Processor packing in an SMP server to conserve energy | |
| US8484495B2 (en) | Power management in a multi-processor computer system | |
| US20160077571A1 (en) | Heuristic Processor Power Management in Operating Systems | |
| US9460483B2 (en) | Methods, systems and apparatus to manage power consumption of a graphics engine | |
| JP2013524317A5 (en) | ||
| JP6300632B2 (en) | Information processing apparatus, load control method, and load control program | |
| WO2013090537A1 (en) | Power management in multiple processor system | |
| Zhan et al. | CARB: A C-state power management arbiter for latency-critical workloads | |
| Asyabi et al. | Peafowl: In-application cpu scheduling to reduce power consumption of in-memory key-value stores | |
| CN116069152A (en) | Operation frequency control method, system and related equipment for AI computing cluster | |
| US11595456B2 (en) | Modifying content streaming based on device parameters | |
| HoseinyFarahabady et al. | Data-intensive workload consolidation in serverless (Lambda/FaaS) platforms | |
| US12147676B1 (en) | Data storage system with dynamic adjustment of polling intervals | |
| Gottschlag et al. | AVX overhead profiling: how much does your fast code slow you down? | |
| WO2025004124A1 (en) | Uncore frequency control device, uncore frequency control method, and uncore frequency control program | |
| WO2024139467A1 (en) | Frequency scaling method and apparatus, and processor, chip and computer device | |
| WO2025120724A1 (en) | Server setting control device and server setting control method | |
| WO2025052497A1 (en) | Interrupt processing control device, interrupt processing control method, and interrupt processing control program | |
| WO2024142349A1 (en) | Uncore frequency control device, uncore frequency control method, and uncore frequency control program | |
| HoseinyFarahabady et al. | Power-aware CPU cap mechanism in serverless computing environments | |
| Kim et al. | ECO-KVS: Energy-Aware Compaction Offloading Mechanism for LSM-Tree Based Key-Value Stores in Edge Federation | |
| Noguchi et al. | Application-Independent DVFS Method Based on OS Metrics Monitoring for Cloud Servers | |
| WO2013129061A1 (en) | Control system for simultaneous number of connections, control server for simultaneous number of connections, control method for simultaneous number of connections and control program for simultaneous number of connections |
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: 23943529 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2025528997 Country of ref document: JP Kind code of ref document: A |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2025528997 Country of ref document: JP |