Control determination device and control determination method
The control determination device addresses the challenge of determining control timing for devices with variable processing capacity by using machine learning to analyze pre-data from varied server settings and load, achieving accurate and timely control adjustments.
Patent Information
- Application Number
- PCT/JP2023/043430
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-12-05
- Publication Date
- 2025-06-12
AI Technical Summary
Existing methods struggle to accurately determine the control determination timing of a control target device with variable processing capacity, as they rely solely on throughput measurements without considering dynamic changes in processing capacity and load.
A control determination device that collects pre-data by varying server settings and load within a predetermined range, uses machine learning to create a control determination timing model, and determines whether performance requirements are met by analyzing throughput saturation.
Enables accurate determination of control determination timing for devices with variable processing capacity, reducing verification time and allowing real-time control adjustments to meet performance requirements.
Smart Images

Figure JP2023043430_12062025_PF_FP_ABST
Abstract
Description
Control determination device and control determination method
[0001] The present invention relates to a control determination device and a control determination method for determining control determination timing for a control object.
[0002] Generally, a system's throughput (amount of processing per unit time) will reach saturation at some point as the load on the system continues to increase. Meanwhile, system requirements often include performance guarantees, with response time and other performance requirements serving as indicators. The relationship between throughput and response time is as shown in Figure 7, and when throughput saturates, request queues build up, causing a rapid increase in response time (delay).
[0003] In a control system with a feedback loop (using the processing results to repeat the process of further adjustment and improvement), in order to guarantee the performance of the system, specifically to suppress delays in response time specified as a performance requirement, it is effective to use "whether the throughput is saturated" as the criterion for determining whether control is to be executed. In this case, the accuracy of the method for determining "whether the throughput is saturated" affects the effectiveness of control execution.
[0004] Meanwhile, a technology for calculating a target throughput to satisfy performance guarantees and the like has been disclosed (see, for example, Patent Document 1). In Patent Document 1, the target throughput for each flow in a network is set to a value obtained by multiplying the maximum achievable throughput in a state without interference between communications by α. Then, the required bandwidth is calculated using the probability distribution of the connection bandwidth required when all flows connected to the network maintain the target throughput.
[0005] Japanese Patent Application Laid-Open No. 2012-175301
[0006] However, even if the throughput is calculated using the technique of Patent Document 1 or the like and an attempt is made to determine whether or not the performance requirements are satisfied based on whether or not the throughput is saturated, the following problems arise.
[0007] The throughput value at the point where saturation begins varies depending on the processing capacity of the device. For this reason, in the case of a device that has the feature of being able to dynamically change its processing capacity, even if the throughput value can be measured (estimated) using existing technology, it is not possible to properly determine whether the device is in a saturation state.
[0008] For example, as shown in Figure 8, even if the throughput value can be measured (estimated), there are four possible patterns for the saturation state: <1> Processing capacity is "large" and the throughput is not saturated (symbol A1); <2> Processing capacity is "medium" and the throughput is not saturated (symbol A2); <3> Processing capacity is "small" and the throughput is not saturated (symbol A3); <4> Processing capacity is "small" and the throughput is saturated (symbol A4).
[0009] Therefore, when processing capacity changes dynamically, it is impossible to determine whether the system is saturated without information about the processing capacity and load of the device in addition to the throughput. If data measurements were to be performed to grasp trends as shown in Figure 8 for all setting items for changing the processing capacity of the device, a large number of setting items would require a huge amount of measurement and a huge analysis period.
[0010] The present invention has been made in view of the above points, and an object of the present invention is to determine the control decision timing of a control target device having a variable processing capacity.
[0011] The control determination device of the present invention is a control determination device that determines the control decision timing of a control object, which indicates a control target device or software installed in the control target device, wherein the control target device has variable settings related to processing capacity, and the control determination device operates the control target while changing, within a predetermined range, predetermined setting conditions that adopt any of all setting conditions related to the load to be applied to the control target and the processing capacity that can be set for the control target device, and is characterized by comprising: a data collection unit that acquires information on the performance value of the control target as pre-data from the control target device; a learning data creation unit that determines whether each of the pre-data measured under the predetermined setting conditions exceeds a predetermined index value related to the timing of the control decision of the control target, and associates the determination results with each of the pre-data to create learning data; and a model generation unit that generates a control decision timing determination model by performing machine learning using the learning data, and outputs a determination result of whether the predetermined index value has been exceeded when information that can be obtained in real time from the control target is input, out of the information on the load and the performance value of the control target.
[0012] According to the present invention, it is possible to determine the control decision timing for a control target device with variable processing capacity.
[0013] FIG. 1 is a diagram showing the overall configuration of a control determination system including a control determination device according to the present embodiment. FIG. 2 is a diagram showing an example of the data configuration of advance data according to the present embodiment. FIG. 3 is a diagram illustrating an example of server throughput relative to the load amount when the core frequency and the uncore frequency are set. FIG. 4 is a diagram showing an example of the data configuration of learning data according to the present embodiment. FIG. 5 is a flowchart showing the flow of processing executed by the control determination device according to the present embodiment. FIG. 6 is a hardware configuration diagram showing an example of a computer that realizes the functions of the control determination device according to the present embodiment. FIG. 7 is a diagram showing the relationship between server throughput and response time. FIG. 8 is a diagram for explaining determination of a saturation state based on a throughput value.
[0014] Next, an embodiment of the present invention (hereinafter referred to as "the present embodiment") will be described.
[0015] A control determination device 1 (see FIG. 1 , described later) according to this embodiment defines a device whose processing power (e.g., the CPU frequency of a server, described later) is changeable as a control target device (hereinafter referred to as a "control target device"). The control determination device 1 then determines whether a predetermined index value related to the timing of a control decision for the control target has been exceeded (i.e., whether it is the timing for a control decision). In this embodiment, the control target device or software installed on the control target device is defined as a "control target." For example, when determining whether the performance requirements of an application (App), which is software installed on the server, are satisfied as the timing for a control decision for the control target device (server), the control determination device 1 determines whether "the throughput is saturated" using the load amount at the time the throughput becomes saturated as an index, or whether "the response time (delay) satisfies the performance requirements" using the response time (delay) as an index, thereby determining the timing for executing control of the control target device.
[0016] In the embodiment described below, the satisfaction of the performance requirements of an application is determined by determining whether the throughput, which indicates the amount of processing per unit time, is saturated, as an indicator for determining the timing of control execution of the controlled device.
[0017] The control and determination device 1 according to this embodiment collects pre-data such as app performance values (throughput, response time), server settings (CPU frequency, voltage) set in the OS or BIOS, and server performance (CPU utilization, power consumption, etc.) obtained from hardware (HW), the OS, or sensors. The control and determination device 1 then collects pre-data from the server by varying the server settings and load within a predetermined range, and generates a dataset for machine learning. The control and determination device 1 then determines throughput saturation by taking into account the point in time at which throughput saturation began, obtained as a result of the pre-data collection, and predetermines a throughput determination threshold (e.g., "throughput / load" (value obtained by dividing throughput by load), as described below. Note that this threshold is a "predetermined index value related to the timing of control determination" in the claims). If the throughput is below the threshold, the control and determination device 1 determines that the throughput is saturated. If the throughput is above the threshold, the control and determination device 1 determines that the throughput is not saturated.
[0018] The control determination device 1 performs machine learning on this preliminary data and the results of the control decision timing determination (throughput saturation determination) as learning data. When the same information as the information acquired as the preliminary data (such as information on the current load and server performance values, as described below) is input, a learning model is generated that outputs a determination result of whether the timing for a control decision is right, i.e., whether the performance requirements of the application (App) are met (whether the throughput is saturated or not). Note that the server settings and load information collected as preliminary data does not need to be collected for all configurable stages (setting conditions). Since only the data necessary for the machine learning dataset is required, the number of data inputs can be reduced. This allows the control determination device 1 to reduce the number of verification patterns, thereby reducing the time required to verify whether performance requirements are met compared to conventional methods that acquire data for all settings in advance (details will be described later).
[0019] Next, a control determination system 1000 including a control determination device 1 according to this embodiment will be described with reference to Fig. 1. As shown in Fig. 1, the control determination device 1 is connected to one or more servers 2 (physical servers) that are to be subjected to a determination as to whether or not it is time for a control determination, in this case, whether or not performance requirements are satisfied.
[0020] The server 2 (control target device) has an application (App) 200 (for example, a web service application that realizes real-time processing) implemented on HW. Note that this application (App) 200 may be implemented in a VM (Virtual Machine) or a container, as shown in FIG. 1 . The server 2 also includes data collection software 21 and an IPMI (Intelligent Platform Management Interface) 22.
[0021] The data collection software 21 is software that collects performance information of the server 2, and acquires data on app performance values (throughput, response time), server settings (CPU frequency, voltage) set in the OS or BIOS, and server performance (CPU usage rate, power consumption, number of packets, etc.) that can be acquired from the HW, OS, or sensors. The information collected by the data collection software 21 is then transmitted to the control determination device 1. This data collection software 21 can use existing data collection software such as Perf or dstat, or homemade software, and collects performance information at predetermined time intervals (for example, as frequently as every second).
[0022] The IPMI 22 is a standard interface for monitoring and managing the state of HW, and includes a power consumption measurement unit. The IPMI 22 implements an application (App) 200 to measure the power consumption of the server 2 when a load is applied. Note that this power consumption measurement unit is not limited to the IPMI 22, and if the server 2 includes a power meter, the power consumption may be measured by the power meter.
[0023] The server 2 transmits the above-mentioned app performance values, server settings (server setting information), and information related to server performance to the control determination device 1. The server 2 then receives control information for adjusting the server's processing performance (e.g., CPU frequency) from the control determination device 1 and sets it on the server 2 itself. The server 2 is equipped with existing power-saving functions, such as P-states and DVFS (Dynamic Voltage Frequency Scaling), and is capable of dynamically adjusting the CPU (core, uncore) frequency and voltage in response to instructions from the control determination device 1. Regarding CPU frequency, CPUs have emerged that allow different operating frequencies to be set for the core and non-core parts (uncore) within the CPU package. The core part is composed of a CPU core and L1 and L2 caches. The uncore part is composed of an L3 cache, a memory controller, a system bus, etc.
[0024] <<Control Determination Device>> Next, the control determination device 1 according to this embodiment will be described. The control determination device 1 operates the server 2 by varying the server settings (CPU frequency) and the load set in the load application tool within a predetermined range as setting conditions, and collects information on app performance values (throughput, response time) and server performance (CPU utilization, power consumption, number of packets, etc.) as prior data. The control determination device 1 then determines whether the performance requirements are met based on a predetermined threshold value that determines whether the timing for control determination is met, i.e., whether the performance requirements are met (whether the throughput is saturated or not), and creates a pair of the prior data and a determination result based on the prior data as learning data. The control determination device 1 performs machine learning using the created learning data to generate a control determination timing determination model (throughput saturation determination model), which is a learning model that, when inputting information acquired as prior data, outputs a determination result as to whether the timing for control determination is met (a determination result as to whether the throughput is saturated or not). Below, the functions of the control determination device 1 will be specifically described.
[0025] As shown in FIG. 1 , the control determination device 1 includes a control unit 10 , an input / output unit 11 , and a storage unit 12 .
[0026] The input / output unit 11 inputs and outputs information to and from each server 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 to and from an input device such as a keyboard and an output device such as a monitor, both of which are not shown.
[0027] The storage unit 12 is configured with a hard disk, flash memory, RAM (Random Access Memory), etc. The storage unit 12 stores a data store 100 and a control decision timing judgment model 300 (throughput saturation judgment model) generated by a model generation unit 130 (described later). The data store 100 stores, as preliminary data 101, information on app performance values and server performance (information on performance values of the control target) collected from the server 2 by a data collection unit 110 (described later). The data store 100 also stores training data 102, which is generated by a training data creation unit 120 (described later) adding a judgment result as to whether or not the performance requirements are satisfied for each piece of the preliminary data 101.
[0028] The control unit 10 is responsible for all the processes executed by the control determination device 1, and is configured to include a data collection unit 110, a learning data creation unit 120, a model generation unit 130, a monitoring unit 140, and a control execution unit 150.
[0029] The data collection unit 110 operates the control object by varying within a specified range the specified setting conditions, which adopt any of all the setting conditions related to the load applied to the control object and the processing capacity that can be set for the control object device, and thereby acquires information on the performance values of the control object from the control object device as preliminary data 101.
[0030] Specifically, the data collection unit 110 runs the application 200 to be used on the server 2 (e.g., a web server), applies a load for a predetermined period (e.g., 30 seconds) using a load application tool, and collects performance information (hereinafter also referred to as "preliminary data") such as app performance values (throughput, response time) and server performance.
[0031] The information relating to server performance is information obtained from the hardware, OS, sensors, etc. of the server 2, and examples thereof include CPU usage, power consumption, number of packets, number of executed instructions, number of context switches, number of cache hits and misses, etc. This information may be output as a statistical value for the entire server device, or may be output as a statistical value for each component such as a processing unit, or for each processing process.
[0032] Furthermore, when collecting this preliminary data 101, the data collection unit 110 determines the setting conditions for the CPU frequency (core frequency, uncore frequency) and the load amount as the predetermined setting conditions by adopting any of all settable setting conditions. Note that these predetermined setting conditions are set so as to obtain a sufficient amount and variety of data to create a learning model, in this case the control decision timing determination model 300 (throughput saturation determination model). Therefore, the predetermined setting conditions are determined as setting conditions that exclude some of the settable setting conditions, rather than all of the settable setting conditions. The data collection unit 110 does not need to measure all settable patterns (stages) of the CPU frequency (core frequency, uncore frequency) and the load amount. Instead, the data collection unit 110 may store predetermined logic for determining the setting conditions or receive instruction information regarding the server setting conditions when collecting data from a system management terminal or the like. The data collection unit 110 then determines the predetermined setting conditions by adopting any of all setting conditions for each setting item (CPU frequency and load amount) according to the logic and instruction information, and instructs the server 2 to collect data.
[0033] A specific example of the preliminary data 101 collected by the data collection unit 110 will be described. Here, it is assumed that the data collection unit 110 uses a load application tool to apply a load to the server 2 for a predetermined period (e.g., 30 seconds) and collects data such as throughput. The data collection unit 110 performs similar measurements multiple times by changing the server settings and load amount within a predetermined range. In the following example, 9 x 8 x 17 measurements are performed. Note that this description assumes that core frequency and uncore frequency are used as server settings.
[0034] Core frequency (MHz): [800, 1000, 1200, 1400, 1600, 1800, 2000, 2200, 2400] (9 combinations) Uncore frequency (MHz): [800, 1000, 1200, 1400, 1600, 1800, 2000, 2200] (8 combinations) Load (rps) = [500, 1000, 5000, 6000, 7000, 8000, 9000, 10000, 15000, 20000, 25000, 30000, 35000, 40000, 45000, 50000, 6000] (17 combinations) Here, we are assuming HTTP requests to Server 2 (Web server), and the load is the number of requests per unit. Furthermore, the target of processing per unit of throughput varies depending on the field. For example, the unit may be expressed as requests per second (rps) or bits per second (bps), but it is not limited to a specific target of processing.
[0035] As shown in the example of the setting conditions above, even though the core frequency and uncore frequency can be set in increments of 100 MHz, for example, it is not necessary to measure all possible frequencies for machine learning. Similarly, even though the load can be set in increments of 500 rps, it is not necessary to measure all possible settings. Therefore, the data collection unit 110 collects the preliminary data 101 under a predetermined setting condition, i.e., a setting condition that adopts any of all the setting conditions.
[0036] The data collection unit 110 acquires information on performance values of the control target from the control target device as preliminary data 101. Specifically, the preliminary data 101 collected by the data collection unit 110 includes, for example, throughput as an application performance value, and data related to server performance such as branch instructions, context switches, L1-dcache-load misses, and branch misses. Note that data related to server performance may be acquired from the server 2 by specifying an application process ID.
[0037] 2 is a diagram showing an example of the data configuration of the advance data 101 according to this embodiment. In FIG. 2, the workload is a constant value during the measurement period. The throughput is a statistic during the measurement period. Other data related to server performance are values acquired at one-second intervals.
[0038] The data collection unit 110 stores the preliminary data 101 collected from the server 2 in the data store 100 of the storage unit 12 .
[0039] 1 , the learning data generator 120 generates learning data 102 for determining whether it is time to make a control decision. Here, the learning data generator 120 determines a predetermined threshold value with reference to the results of collecting preliminary data 101 in order to determine the timing at which the throughput becomes saturated.
[0040] This predetermined threshold is determined, for example, as follows: Fig. 3 is a diagram showing the throughput [tps] (transactions per second) of server 2 versus the load [rps] (requests per second) applied when the core frequency (2400 MHz) and uncore frequency (2200 MHz) are set. Based on the "throughput / load" (35000 / 40000 = 0.875) at the point in time when throughput saturation begins (denoted by x in Fig. 3) in the results of this preliminary data 101, a predetermined index value related to the timing of control decisions (here, the predetermined threshold for determining throughput saturation) is determined to be, for example, "85%."
[0041] The learning data creation unit 120 then determines, with respect to the collected prior data 101, whether the throughput for a given load is equal to or less than a predetermined threshold (here, 85%), as "1" (saturated), or whether the throughput exceeds the predetermined threshold (85%), as "0" (not saturated). The learning data creation unit 120 creates learning data 102 by associating the results of the control decision timing determination (throughput saturation determination) with each piece of prior data 101.
[0042] 4 is a diagram showing an example of the data configuration of the learning data 102 created by the learning data creation unit 120 according to this embodiment. As shown in Fig. 4, the learning data 102 stores, in association with the prior data 101, the determination result of the control decision timing determination (throughput saturation determination) as "0" (performance requirement satisfied [throughput not saturated]) or "1" (performance requirement not satisfied [throughput saturated]) (not shown).
[0043] Returning to Figure 1, the model generation unit 130 performs machine learning on the generated learning data 102 to generate a control decision timing judgment model 300 (throughput saturation judgment model) that inputs information on load and server performance that can be obtained in real time from the server 2 and outputs a judgment result (throughput saturation judgment result) ("0", "1") as to whether it is time to make a control decision.
[0044] Specifically, the model generation unit 130 performs preprocessing for machine learning on the training data 102. That is, the model generation unit 130 performs standardization, normalization, deletion of bad data, completion of missing data, and the like on the dataset of the training data 102 as needed. Next, the model generation unit 130 performs a process of selecting features from the training data 102. This feature selection process selects data using a filter method, a wrapper method, an embedding method, or the like, which are common in machine learning.
[0045] The model generation unit 130 then creates a model using multiple machine learning algorithms (e.g., neural network, random forest, support vector machine, logistic regression, etc.) and evaluates the model using test data. Furthermore, the model generation unit 130 improves accuracy by performing hyperparameter tuning, etc. The model generation unit 130 then selects the model generated by the algorithm evaluated as having the highest accuracy as the control decision timing determination model 300 (throughput saturation determination model) and stores it in the storage unit 12.
[0046] The monitoring unit 140 collects data to be monitored (monitored data) in real time during the control execution (operation) stage for the server 2 on which the application 200 is installed. This monitored data is the same data as the prior data collected from the server 2 when generating the learning data 102, and is information on the load amount and performance values of the control target, and is any data that can be obtained in real time from information on server performance (e.g., branch instructions, context switches, L1-dcache load misses, branch misses), etc.
[0047] The control execution unit 150 outputs the determination result of the control determination timing (throughput saturation determination) by inputting the monitored object data (information on the current load and performance values of the controlled object) that is collected by the monitoring unit 140 and can be obtained in real time into the control decision timing determination model 300 (throughput saturation determination model) stored in the storage unit 12. Specifically, the control execution unit 150 obtains information such as "0" (performance requirement satisfied [throughput not saturated]) or "1" (performance requirement not satisfied [throughput saturated]) as the output of the control decision timing determination model 300 (throughput saturation determination model).
[0048] The control execution unit 150 transmits predetermined control information (such as information about server settings) corresponding to the determination result to the control target device (such as the server 2). Specifically, when the output result of the control decision timing determination model 300 (throughput saturation determination model) is "1" (performance requirements not met [throughput saturated]), the control execution unit 150 transmits control information to the server 2 to increase the CPU frequency (uncore frequency) by a predetermined amount (such as 100 MHz) to improve server performance. On the other hand, when the output result of the control decision timing determination model 300 (throughput saturation determination model) is "0" (performance requirements met [throughput not saturated]), the control execution unit 150 transmits control information to the server 2 to decrease the CPU frequency (uncore frequency) by a predetermined amount (such as 100 MHz) to improve server performance (such as reducing power consumption). Furthermore, in the control execution (operation) stage, the control execution unit 150 enables functions such as server performance settings (P-states) and DVFS (Dynamic Voltage Frequency Scaling).
[0049] <Processing Flow> Next, a description will be given of the processing executed by the control determination device 1. Fig. 5 is a flowchart showing the processing flow executed by the control determination device 1 according to this embodiment.
[0050] First, the data collection unit 110 of the control determination device 1 determines setting conditions (predetermined setting conditions) such as server settings and load amount when collecting preliminary data 101 for an application (App) 200 running on the server 2 (step S1). The data collection unit 110 does not need to measure all possible patterns of CPU frequency (core frequency, uncore frequency) and load amount; it may store predetermined logic for determining setting conditions in advance or receive instruction information regarding the server setting conditions when collecting data from a management terminal or the like. Then, the data collection unit 110 determines setting conditions (predetermined setting conditions) that adopt any of all setting conditions for each setting item (CPU frequency and load amount) in accordance with the logic and instruction information.
[0051] Next, the data collection unit 110 runs the application (App) 200 on the server 2 under the setting conditions (predetermined setting conditions) determined in step S1, and collects the preliminary data 101 (step S2).
[0052] Here, the data collection unit 110 applies a load for a predetermined period (e.g., 30 seconds) using a load application tool of the server 2, and obtains performance information (information on the performance values of the controlled object) such as app performance values (throughput, response time) and server performance as preliminary data 101 from the server 2.
[0053] The data collection unit 110 formats the collected data to create a data set as shown in FIG. 2 and stores it in the storage unit 12 as preliminary data 101 .
[0054] Next, the learning data creation unit 120 of the control determination device 1 performs a control determination timing determination (throughput saturation determination) for each data item in the preliminary data 101 based on a predetermined threshold value (e.g., 85%) (a predetermined index value related to the timing of control determination).The learning data creation unit 120 then associates the determination results with the preliminary data 101 to generate learning data 102 (FIG. 4) (step S3).
[0055] Specifically, the learning data creation unit 120 determines that the throughput value for a given load ("throughput / load") is "1" (saturated) if it is equal to or less than a predetermined threshold (85%), and determines that it is "0" (not saturated) if it exceeds the predetermined threshold (85%).The learning data creation unit 120 then associates the result of the control decision timing determination (throughput saturation determination) with the prior data 101 to generate learning data 102, and stores it in the data store 100 in the storage unit 12.
[0056] Next, the model generation unit 130 of the control determination device 1 performs preprocessing for machine learning on the learning data 102 (step S4). As the preprocessing, the model generation unit 103 performs, for example, standardization, normalization, deletion of defective data, and completion of missing data.
[0057] Next, the model generation unit 130 executes a process of selecting features from the training data 102 (step S5). The model generation unit 130 selects features from the training data 102 using, for example, a filter method, a wrapper method, an embedding method, or the like as an existing feature selection process.
[0058] Next, the model generation unit 130 creates a model using multiple machine learning algorithms (e.g., neural network, random forest, support vector machine, logistic regression, etc.), evaluates the model using test data, and further improves accuracy by performing hyperparameter tuning.The model generation unit 130 then generates a model using the machine learning algorithm that is evaluated to have the highest accuracy as the control decision timing determination model 300 (throughput saturation determination model) (step S6).The model generation unit 130 stores the generated control decision timing determination model 300 (throughput saturation determination model) in the storage unit 12.
[0059] Next, in the control execution (operation) stage for the server 2 equipped with the application 200, the monitoring unit 140 of the control determination device 1 collects data to be monitored (monitored data) in real time (step S7).
[0060] Next, the control execution unit 150 of the control determination device 1 inputs the real-time monitored data (information on the current load and performance values of the controlled object) collected by the monitoring unit 140 into the control determination timing determination model 300 (throughput saturation determination model), thereby outputting the determination result ("1" or "0") of the control determination timing determination (throughput saturation determination) (step S8).
[0061] The control execution unit 150 then transmits predetermined control information (server setting information) corresponding to the determination result to the server 2 (control target device) (step S9). For example, if the output result of the control decision timing determination model 300 (throughput saturation determination model) is "1" (performance requirements not met [throughput saturated]), the control execution unit 150 transmits control information to the server 2 to increase the CPU frequency (uncore frequency) by a predetermined amount (e.g., 100 MHz) to improve server performance. On the other hand, if the output result of the control decision timing determination model 300 (throughput saturation determination model) is "0" (performance requirements met [throughput not saturated]), the control execution unit 150 transmits control information to the server 2 to decrease the CPU frequency (uncore frequency) by a predetermined amount (e.g., 100 MHz) to improve server performance (e.g., reduce power consumption).
[0062] In addition, the control execution unit 150 can transmit, for example, the following control information as predetermined control information for the control target device. When the control target device is a server 2, control information to increase or decrease the number of servers 2 may be transmitted depending on whether the performance requirements are not met (throughput is saturated) or whether the performance requirements are met (throughput is not saturated), with the aim of distributing the load on the server 2. Furthermore, in a call processing device (control target device) that connects a calling terminal and a receiving terminal, if the number of call connections does not increase (saturation) despite an increase in connection requests, it may be determined that congestion is occurring and control information to block communication from the calling terminal to the call processing device may be transmitted to the call processing device.
[0063] In the control execution (operation) stage, the control execution unit 150 repeats the processes of steps S7 to S9 at predetermined time intervals.
[0064] By doing so, the control determination device 1 according to this embodiment can accurately determine whether it is time to execute control of the control target device (here, whether the throughput of the server 2 is saturated). Therefore, the control determination device 1 can appropriately timely adjust the processing capacity of the server 2 or control load balancing by adding more servers when the processing capacity of a single server 2 is insufficient to meet performance requirements. Furthermore, the control determination device 1 can acquire data (preliminary data 101) under a setting condition (predetermined setting condition) that employs any of all settable setting conditions, thereby shortening verification time. That is, the control determination device 1 constructs the control decision timing determination model 300 (throughput saturation determination model) through machine learning, eliminating the need to verify all setting conditions. Furthermore, by using the control decision timing determination model 300 (throughput saturation determination model) through machine learning, the control determination device 1 can also perform control decision timing determination (throughput saturation determination) for setting conditions excluded from verification in real time.
[0065] <Modification of the Embodiment> As described above, in the present embodiment, the control determination timing is determined by determining whether the performance requirements set in the application 200 are satisfied, i.e., whether the throughput is saturated. Alternatively, the control determination device 1 according to the present embodiment may be configured to determine, for example, whether the response time (delay) satisfies the performance requirements. In this case, the data collection unit 110 acquires information on the response time (delay) from the server 2 as advance data, and the learning data creation unit 120 generates the learning data 102 by determining whether the response time (delay) satisfies the performance requirements.
[0066] Furthermore, the same control decision timing determination (saturation determination) as in this embodiment can be applied to metrics that exhibit the same behavior as the throughput relative to the load amount as shown in FIG. 7 . For example, the power consumption of a server or CPU exhibits a behavior in which the power consumption reaches saturation at a certain point when the load is increased. The control determination device 1 according to this embodiment can determine the timing at which the power consumption reaches saturation and execute power limit control. In addition, the temperature of the server or CPU can be measured, the point at which the temperature relative to the load reaches saturation can be determined, and the server's air conditioning device (fan) or the like can be controlled.
[0067] <Hardware Configuration> The control determination device 1 according to this embodiment is realized by a computer 900 having a configuration as shown in Fig. 6, for example. Fig. 6 is a hardware configuration diagram showing an example of the computer 900 that realizes the functions of the control determination device 1 according to this embodiment. The computer 900 has a CPU 901, a ROM (Read Only Memory) 902, a RAM 903, an HDD (Hard Disk Drive) 904, an input / output I / F (Interface) 905, a communication I / F 906, and a media I / F 907.
[0068] The CPU 901 operates based on a program (control determination program) stored in the ROM 902 or the HDD 904, and performs control 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 up, programs related to the hardware of the computer 900, and the like.
[0069] 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. Note that a GPU (Graphics Processing Unit) or the like may be used as a processor together with the CPU 901.
[0070] The HDD 904 stores programs executed by the CPU 901 and 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.
[0071] The media I / F 907 reads a program (control determination program) or data stored in the recording medium 912 and outputs it to the CPU 901 via the RAM 903. The CPU 901 loads a program related to a target process 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 Disc), a magneto-optical recording medium such as an MO (Magneto Optical Disc), a magnetic recording medium, a semiconductor memory, or the like.
[0072] For example, when the computer 900 functions as the control determination device 1 of the present invention, the CPU 901 of the computer 900 executes a program loaded onto the RAM 903 to realize the function of the control determination program. In addition, the HDD 904 stores data in the RAM 903. The CPU 901 reads and executes a program related to a target process from the recording medium 912. Alternatively, the CPU 901 may read a program related to a target process from another device via a communication network (NW 920).
[0073] <Effects> The effects of the control determination device and the like according to the present invention will be described below. The control determination device according to the present invention is a control determination device 1 that determines the control decision timing of a control object, which indicates a control target device or software installed in the control target device, and the control target device has variable settings related to processing capacity. The control determination device 1 is characterized by comprising: a data collection unit 110 that acquires information on the performance value of the control target as preliminary data 101 from the control target device by operating the control target while changing, within a predetermined range, predetermined setting conditions that adopt any of all setting conditions related to the load to be applied to the control target and the processing capacity that can be set for the control target device; a learning data creation unit 120 that determines whether each of the preliminary data 101 measured under the predetermined setting conditions exceeds a predetermined index value related to the timing of control decision of the control target, and associates the determination results with each of the preliminary data 101 to create learning data 102; and a model generation unit 130 that generates, by machine learning using the learning data 102, a control decision timing determination model 300 that outputs a determination result as to whether the predetermined index value has been exceeded when information that can be obtained in real time from the control target is input, out of information on the load and performance value of the control target.
[0074] In this way, the control determination device 1 can acquire preliminary data 101 using predetermined setting conditions that adopt any of all setting conditions related to the load and the processing capacity that can be set for the control target device, and generate the control decision timing determination model 300. This allows the control determination device 1 to determine whether a predetermined index value related to the timing of a control decision for the control target has been exceeded (i.e., whether it is time to make a control decision). Furthermore, compared to conventional methods that require acquiring data for all settings in advance, the control determination device 1 can reduce the number of verification patterns, thereby reducing the time required to verify whether it is time to make a control decision. Furthermore, by using the machine learning-based control decision timing determination model 300, the control determination device 1 can also perform real-time control decision timing determination for setting conditions (unknown setting patterns) that have been excluded from verification.
[0075] The control determination device 1 is further characterized by comprising a monitoring unit 140 that, during the operational stage in which the controlled object is operated, collects from the controlled object device any information on the load and performance values of the controlled object that can be obtained in real time as monitored data, and a control execution unit 150 that inputs the monitored data into a control determination timing determination model 300, thereby outputting a determination result as to whether or not a predetermined index value has been exceeded, and transmits predetermined control information corresponding to the output determination result to the controlled object device.
[0076] In this way, the control determination device 1 can acquire monitored object data in real time from the controlled object device during the operation stage when the controlled object is in operation, and determine whether or not it is time for a control decision for the controlled object using the control decision timing determination model 300. Then, the control determination device 1 can transmit predetermined control information to the controlled object device according to the determination result.
[0077] Furthermore, in the control determination device 1, when the controlled device is a server 2 and the software is an application 200 running on the server 2, the data collection unit 110 acquires, as pre-data 101, information on throughput indicating the processing volume per unit time of the application 200. The learning data creation unit 120 determines whether the throughput is saturated based on whether it exceeds a predetermined threshold, with respect to whether the performance requirements set for the application 200 are met, as a determination of whether a predetermined index value related to the timing of control determination of the controlled object has been exceeded. The learning data creation unit 120 uses the predetermined threshold, which is set based on the value obtained by dividing the throughput by the load at the time when the throughput is saturated, to determine that if the throughput relative to the load acquired as the pre-data 101 is equal to or less than the predetermined threshold, the system is saturated and does not meet the performance requirements, and if it exceeds the predetermined threshold, the system is not saturated and meets the performance requirements. The model generation unit 130 receives information on the load and performance values of the controlled object that can be acquired in real time from the controlled object, and generates a throughput saturation determination model as a control determination timing determination model, which outputs a determination result of whether the predetermined threshold has been exceeded.
[0078] By doing this, the control determination device 1 can generate a control determination timing determination model 300 (throughput saturation determination model) that determines whether the performance requirements of the application 200 are met by determining whether the throughput is saturated.
[0079] The present invention is not limited to the above-described embodiments, and many modifications can be made by a person having ordinary skill in the art within the technical concept of the present invention.
[0080] REFERENCE SIGNS LIST 1 control determination device 2 server 10 control unit 11 input / output unit 12 storage unit 21 data collection software 22 IPMI 100 data store 101 advance data 102 learning data 110 data collection unit 120 learning data creation unit 130 model generation unit 140 monitoring unit 150 control execution unit 200 application (App) 300 control determination timing determination model (throughput saturation determination model) 1000 control determination system
Claims
1. A control determination device that determines the control determination timing of a control target indicating a device to be controlled or software installed in the device to be controlled, wherein the device to be controlled has a variable setting regarding processing capacity, and the control determination device includes: a data collection unit that obtains information on performance values of the control target as pre-data from the control target device by operating the control target by changing, within a predetermined range, any of all setting conditions regarding a load applied to the control target and each of the processable capacities that can be set for the control target device; a learning data creation unit that determines whether each of the pre-data measured under the predetermined setting conditions exceeds a predetermined index value regarding the control determination timing of the control target, and creates learning data by associating the determination results with the respective pre-data; and a model generation unit that generates a control determination timing determination model that outputs a determination result as to whether the predetermined index value has been exceeded when information that can be acquired in real time from the control target among the information on the load and the performance values of the control target is input by performing machine learning using the learning data. The control determination device is characterized by comprising the above components.
2. In an operation stage of operating the control target, the control determination device according to claim 1 further includes: a monitoring unit that collects, as monitoring target data, any information that can be acquired in real time among the information on the load and the performance values of the control target from the control target device; and a control execution unit that inputs the monitoring target data into the control determination timing determination model to output a determination result as to whether the predetermined index value has been exceeded, and transmits predetermined control information corresponding to the output determination result to the control target device.
3. When the device to be controlled is a server and the software is an application operating on the server, the data collection unit acquires, as the pre-data, throughput information indicating the processing amount per unit time of the application. The learning data creation unit determines whether the throughput is in a saturated state or not based on whether a predetermined threshold value is exceeded, which is a determination as to whether a predetermined index value regarding the timing of the control determination of the control target exceeds a certain value, and determines whether the performance requirements set for the application are met or not. Using the predetermined threshold value set based on the value obtained by subtracting the load from the throughput at the time when the throughput is saturated, which is obtained by referring to the pre-data, if the throughput for the load acquired as the pre-data is equal to or less than the predetermined threshold value, it is determined that the state is saturated and the performance requirements are not met, and if it exceeds the predetermined threshold value, it is determined that the state is not saturated and the performance requirements are met, thereby creating the learning data. The model generation unit generates a throughput saturation determination model as the control determination timing determination model that outputs a determination result as to whether the predetermined threshold value is exceeded when information that can be acquired in real time from the control target among the information on the load and the performance value of the control target is input. The control determination device according to claim 1, characterized in that.
4. A control determination method for a control determination device that determines the control determination timing of a control target indicating a device to be controlled or software installed in the device to be controlled, wherein the device to be controlled has a variable setting regarding processing capacity, and the control determination device obtains information on the performance value of the control target as pre-data from the device to be controlled by operating the control target by changing, within a predetermined range, any one of all setting conditions regarding each of the load applied to the control target and the processable capacity that can be set for the device to be controlled according to a predetermined setting condition; determines whether or not each of the pre-data measured under the predetermined setting condition exceeds a predetermined index value regarding the control determination timing of the control target, and creates learning data by associating the determination result with each of the pre-data; generates a control determination timing determination model that outputs a determination result as to whether or not the predetermined index value is exceeded when information that can be obtained in real time from the control target among the information on the load and the performance value of the control target is input by performing machine learning using the learning data. A control determination method characterized by executing the above steps.
Citation Information
Patent Citations
Estimation method, estimation device, and estimation program
JP2019113915A
Medical information processing apparatus, medical information processing method, medical information processing program, and medical information processing system
JP2022059494A