Server setting control device and server setting control method

The server setup control device addresses the inefficiencies in existing server power-saving technologies by dynamically adjusting processing performance based on application-specific load and performance requirements, resulting in reduced power consumption and compliant performance.

WO2025120724A1PCT designated stage expired Publication Date: 2025-06-12NT T INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2023/043431
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-12-05
Publication Date
2025-06-12

AI Technical Summary

Technical Problem

Existing server power-saving technologies, such as DVFS, are not individually optimized for the processing content and performance requirements of specific applications, leading to increased power consumption and potential performance requirement violations.

Method used

A server setup control device that dynamically adjusts the processing performance of a server based on the load amount and performance requirements of each application, using a data collection unit, control determination information generation unit, monitoring unit, and control execution unit to optimize processing performance.

Benefits of technology

The solution effectively reduces server power consumption while ensuring performance requirements are met, by dynamically adjusting processing performance in response to changing load conditions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2023043431_12062025_PF_FP_ABST
    Figure JP2023043431_12062025_PF_FP_ABST
Patent Text Reader

Abstract

A server setting control device (1) comprises: a data collection unit (110) that acquires, from a server (2) as prior data, an application performance value, a server setting indicating processing performance set in a server, and information regarding server performance, while changing the measurement conditions within a predetermined range; a control determination information generation unit (120) that generates, as control determination information (300), a threshold value for a load amount serving as an index for determining whether a performance requirement is satisfied; a monitoring unit (130) that acquires the server setting and the load amount at the current time point; and a control execution unit (140) that refers to the control determination information, increases the server setting by a predetermined amount when the load amount at the current time point exceeds the threshold value, and lowers the server setting by a predetermined amount when the load amount at the current time point does not exceed the threshold value.
Need to check novelty before this filing date? Find Prior Art

Description

Server setting control device and server setting control method

[0001] The present invention relates to a server setting control device and a server setting control method that determine saturation in processing performance and distribute the load of applications (Apps) installed on a server.

[0002] In systems that perform real-time processing, such as web and network services, high-performance servers are used to provide services in order to guarantee a certain level of service quality. When providing such services, power consumption is one of the major issues in terms of server operation and management costs. Meanwhile, system requirements include those that impose performance guarantees, and response time is an indicator of performance requirements.

[0003] Generally, the relationship between a server's throughput (amount of processing per unit time) and its response time is as shown in Figure 10. When the throughput is saturated, the request queue accumulates, causing a rapid increase in response time (delay). Taking this characteristic into consideration, power saving control is implemented during low load periods when performance is less affected, reducing the server's power consumption and lowering operational costs (see, for example, Non-Patent Documents 1 and 2).

[0004] One example of a power-saving function currently available in servers on the market is Dynamic Voltage and Frequency Scaling (DVFS). DVFS is a technology that dynamically adjusts the CPU frequency and voltage according to the load. DVFS reduces the CPU's processing performance during low load periods, thereby reducing power consumption.

[0005] The Linux kernel user's and administrator's guide ("Linux" is a registered trademark), "CPU Performance Scaling Driver," [online], [Retrieved October 27, 2023], Internet <URL: https: / / www.kernel.org / doc / html / v4.12 / admin-guide / pm / intel_pstate.html> The Linux Kernel documentation, "Intel Uncore Frequency Scaling," [online], [Retrieved October 27, 2023], Internet <URL: https: / / docs.kernel.org / admin-guide / pm / intel_uncore_frequency_scaling.html>

[0006] The above-mentioned existing technologies present recommended power-saving settings or perform frequency control using CPU utilization rates and internal CPU conditions (such as data flow rate and calculation volume) as indicators. However, because the existing technologies are not individually optimized for the processing content and performance requirements of the applications (apps) used, when applied to applications (apps) with different requirements, (1) high power consumption due to execution at processing performance higher than necessary, or (2) violation of performance requirements due to excessive reduction in processing performance may occur.

[0007] The present invention was made in consideration of these points, and its objective is to reduce the power consumption of a server while satisfying the performance requirements according to the processing content and performance requirements of each application (App).

[0008] The server setting control device of the present invention is a server setting control device that controls the settings of the processing performance of a server equipped with an application, and is characterized by comprising: a data collection unit that acquires from the server as pre-data an App performance value that indicates the performance value of the application when a load is applied to the application, a server setting that indicates the processing performance that is set for the server, and information on the server performance when the server executes the application to which the load is applied, by changing the conditions and load amount of the server setting within a predetermined range; a control judgment information generation unit that refers to the pre-data and generates as control judgment information a load amount threshold for each server setting that serves as an indicator for determining whether the performance requirements set for the application are met; a monitoring unit that acquires from the server the server setting, which is the current processing performance of the server, and information on the current load amount during the operational phase of processing the application; and a control execution unit that refers to the control judgment information, and if the current load amount of the current server setting exceeds the threshold indicated in the control judgment information, increases the processing performance of the server setting by a predetermined amount, and if the threshold is not exceeded, decreases the processing performance of the server setting by a predetermined amount.

[0009] According to the present invention, it is possible to reduce the power consumption of a server while satisfying the performance requirements according to the processing content and performance requirements of each application (App).

[0010] FIG. 1 is a diagram for explaining an overview of the processing of a server setting control system according to the present embodiment. It is a diagram showing the overall configuration of a server setting control system including a server setting control device according to the present embodiment. It is a diagram showing server throughput relative to load when a certain uncore frequency is set. It is a diagram showing an example data configuration of control determination information according to the present embodiment. It is a flowchart showing the flow of processing executed by a server setting control device according to the present embodiment in control phase 1 (adjusting processing performance in a single server). It is a flowchart showing the flow of processing executed by a server setting control device according to the present embodiment in control phase 2 (distributing load to multiple servers). It is a flowchart showing the flow of processing executed by a server setting control device according to the present embodiment in control phase 2 (when server setting is the minimum value). It is a flowchart showing the flow of processing executed by a server setting control device according to the present embodiment in control phase 2 (when server setting is the maximum value). It is a hardware configuration diagram showing an example of a computer that realizes the functions of the server setting control device according to the present embodiment. It is a diagram showing the relationship between server throughput and response time.

[0011] Next, an embodiment of the present invention (hereinafter referred to as "the present embodiment") will be described. First, an overview of the processing executed by the server setting control system according to the present embodiment will be described.

[0012] The server configuration control system of this embodiment executes two major control phases to reduce server power consumption while still satisfying the performance requirements of the application. (Control Phase 1) Control Phase 1 is the adjustment of processing performance on a single server. (Control Phase 2) Control Phase 2 is the distribution of load across multiple servers (scaling / migration).

[0013] Control phase 1 is a processing performance adjustment process for a single server equipped with an application (App), for example, dynamically changing the CPU frequency, voltage, etc. using DVFS, etc. Control phase 2 is a load distribution process using multiple servers, changing the configuration by scaling (adding or removing servers) to accommodate load increases or decreases and migrating virtual machines, and performing distributed processing using a load balancer (LB).

[0014] 1 is a diagram illustrating an overview of the processing of a server configuration control system according to this embodiment. In the server configuration control system 1000 (see FIG. 2, which will be described later), if a load that exceeds the maximum processing performance of the server is applied in control phase 1, the system transitions to control phase 2.

[0015] As shown in the diagram indicated by reference numeral 101 in FIG. 1, in a single server (server "1": frequency 1 GHz) processing a certain application (App), as the load increases, the throughput will reach saturation at some point (symbol a). As described above, when the throughput saturates, the performance requirements can no longer be met. Therefore, as shown in the diagram indicated by reference numeral 102 in FIG. 1, the frequency setting value of the server (server "1") is increased (frequency 2 GHz) to improve processing performance. This makes it possible to avoid saturation of the throughput (symbol b). This process is the process of control phase 1.

[0016] As the load continues to increase, even if the CPU frequency is set to its maximum value, the increased load will cause the throughput to saturate (symbol c), as shown by reference numeral 103 in Fig. 1. In this case, the server configuration control system 1000 will, for example, add more servers and perform load balancing using a load balancer (LB) to deal with the increased load, as shown by reference numeral 104 in Fig. 1. This process is control phase 2.

[0017] Control Phase 1 (single-server processing performance adjustment) will now be described in detail. The control targets in Control Phase 1 are server components, such as CPUs (core and uncore) and memory, whose frequency and voltage are adjustable. The decision to adjust processing performance (e.g., CPU frequency) is based on whether application performance requirements (e.g., SLAs) are violated. Specifically, if the performance requirement specified in the SLA is response time, the system determines whether the response time violates the performance requirement. Furthermore, as described above, the relationship between throughput and response time shown in FIG. 10 may be used to determine whether throughput is saturated. If throughput is saturated (hereinafter, sometimes referred to as "throughput saturation"), it may be determined that the performance requirement is not met. However, this is not limiting, and other parameters correlated with performance requirements may also be used as the criteria for processing performance adjustment.

[0018] The server setting control system 1000 (FIG. 2) collects data in advance on app performance (throughput, response time, etc.), server settings (CPU frequency, voltage), and server performance (CPU usage, power consumption, etc.) for the processing content and performance requirements of each application (app).The server setting control system 1000 then determines, through a preliminary analysis, indicators for optimal control decisions for each app performance (timing at which throughput begins to saturate, timing at which delay increases), and performs adjustment control of the processing performance (server settings: CPU frequency, etc.) set in the server when the indicator threshold is exceeded.

[0019] Control Phase 2 (load distribution to multiple servers) will now be described in detail. The server configuration control system 1000 ( FIG. 2 ) executes the control process of load distribution to multiple servers in Control Phase 2 when it determines that performance requirements cannot be guaranteed under the current circumstances, for example, when the processing performance of a single server has reached its upper limit but is still violating the performance requirements. Furthermore, when it determines that there is sufficient margin in the current overall system processing capacity and that there is room to consolidate tasks (requests) in the currently operating resources, the server configuration control system 1000 executes measures to reduce the number of servers in order to reduce power consumption. In other words, the server configuration control system 1000 executes processes to adjust load distribution using a load balancer by adding or removing servers, and executes migration processes to move the target task (request) to another currently operating server when there is sufficient margin in the currently operating resources (processing capacity).

[0020] By performing such processing of control phase 1 and control phase 2, the server setting control system 1000 is able to perform optimal control according to the performance requirements of each application, preventing high power consumption due to execution at processing performance higher than necessary and reducing the occurrence of violations of performance requirements due to excessive reduction in processing performance.

[0021] Next, a server setting control system 1000 including the server setting control device 1 according to this embodiment will be described with reference to Fig. 2. As shown in Fig. 2, the server setting control device 1 is connected to a plurality of servers 2 (physical servers) whose server settings are to be controlled.

[0022] Each server 2 has an application (App) 200 (e.g., a web service application that realizes real-time processing) installed on its hardware (HW). The application (App) 200 may be installed in a virtual machine (VM) or a container, as shown in FIG. 2 . Each server 2 also includes data collection software 21 and an intelligent platform management interface (IPMI) 22.

[0023] 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 (hardware), OS, or sensors. The information collected by the data collection software 21 is then sent to the server setting control 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).

[0024] 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.

[0025] The server 2 transmits the above-mentioned app performance values, server settings (server setting information), and server performance information to the server setting control device 1. The server 2 then receives control information for adjusting the server's processing performance (e.g., CPU frequency) from the server setting control device 1 and sets it on its own server 2, while also performing migration, which moves the target task (request) to another running server. The server 2 is equipped with an existing power-saving function, such as DVFS, and can dynamically adjust the CPU (core, uncore) frequency and voltage in response to instructions from the server setting control 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 consists of a CPU core and L1 and L2 caches. The uncore part consists of an L3 cache, a memory controller, a system bus, etc.

[0026] Furthermore, a load balancer (LB) 3 is connected to each server 2, and the load balancer 3 adjusts the load distribution in accordance with the addition or reduction of servers 2 or migration.

[0027] <Server setting control device> Next, the server setting control device 1 according to this embodiment will be described. The server setting control device 1 performs the above-described control phase 1 (adjusting processing performance in a single server) and control phase 2 (distributing load to multiple servers), thereby enabling optimal control according to the performance requirements of each application. This control by the server setting control device 1 can prevent high power consumption caused by execution at processing performance higher than necessary, and can reduce the occurrence of violations of performance requirements caused by excessively lowering processing performance (details will be described later).

[0028] In control phase 1, the server setting control device 1 operates each server 2 by changing the server setting conditions and load amount, and collects information on app performance values ​​(throughput, response time), server settings (CPU frequency, voltage), and server performance (CPU utilization, power consumption, number of packets, etc.) as advance data. The server setting control device 1 then determines when throughput begins to saturate and when delay increases rapidly, and generates control judgment information 300 (see FIG. 4 , described below) indicating threshold values ​​for indicators used for control judgment. The server setting control device 1 then executes control to adjust the server's processing performance (e.g., CPU frequency) when the threshold indicated in the control judgment information 300 is exceeded. Furthermore, when the server setting control device 1 determines that the processing performance of a server 2 has reached its upper limit but does not satisfy the performance requirements, it adds a server 2 or executes migration, which moves the application 200's tasks (requests) to another server. The following describes in detail the functions of the server setting control device 1.

[0029] As shown in FIG. 2, the server setting control device 1 includes a control unit 10, an input / output unit 11, and a storage unit 12.

[0030] 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.

[0031] 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 control decision information 300 ( FIG. 4 ) generated by a control decision information generator 120 (described later). The data store 100 stores information (performance information) related to app performance values, server settings, and server performance collected from the server 2 by a data collector 110 (described later).

[0032] The control unit 10 is responsible for all the processes executed by the server setting control device 1 , and includes a data collection unit 110 , a control determination information generation unit 120 , a monitoring unit 130 , and a control execution unit 140 .

[0033] The data collection unit 110 starts an application 200 to be used on a server 2 (e.g., a web server), and applies a load for a predetermined period of time (e.g., 30 seconds) using a load application tool or the like, and collects performance information (hereinafter also referred to as "preliminary data") such as application performance values ​​(throughput, response time), server settings (CPU frequency, voltage), and server performance.

[0034] The information relating to server performance is information obtained from the hardware, OS, sensors, etc. of the server 2, and includes, for example, CPU usage, power consumption, number of packets, number of executed instructions, number of context switches, number of cache hits and misses, etc. These data may be output as statistical values ​​for the entire server device, or may be output as statistical values ​​for each component such as a processing unit, or for each processing process.

[0035] When determining whether the throughput is saturated as a control decision (index) for adjusting and controlling the processing performance (e.g., CPU frequency) of the server 2, the data collection unit 110 acquires throughput data from the server 2. Alternatively, the data collection unit 110 may acquire data on server performance correlated with the throughput, instead of the throughput, from the server 2. On the other hand, when determining whether the response time violates the performance requirements as a control decision (index) for adjusting and controlling the processing performance of the server, the data collection unit 110 acquires response time (delay) data from the server 2. Alternatively, the data collection unit 110 may acquire data on server performance correlated with the response time, instead of the response time, from the server 2.

[0036] A specific example of the preliminary data collected by the data collection unit 110 will be described. Here, the data collection unit 110 applies a load to the server 2 for a predetermined period (e.g., 30 seconds) using a load application tool, and collects data such as throughput. The data collection unit 110 performs similar measurements multiple times while varying the server setting conditions and load amount within a predetermined range. In the following example, 15 x 17 measurements are performed. Note that, although the description here assumes that the uncore frequency is used as the server setting condition, the core frequency may also be used.

[0037] Uncore frequency (MHz): Change between 800 and 2200 MHz in increments of 100 MHz (15 combinations). Load (rps) = [500, 1000, 5000, 6000, 7000, 8000, 9000, 10000, 15000, 20000, 25000, 30000, 35000, 40000, 45000, 50000, 6000] (17 combinations). Note that this assumes HTTP requests to Server 2 (Web server), and the load is the number of requests per unit.

[0038] The data collection unit 110 stores the advance data collected from each server 2 in the data store 100 of the storage unit 12 .

[0039] The control decision information generator 120 references the preliminary data stored in the data store 100 and generates control decision information 300 that indicates a threshold value that serves as an index for determining whether the performance requirements set for an application are satisfied. For example, the control decision information generator 120 generates the graph shown in FIG. 3 from information on throughput versus load when a certain uncore frequency is set. The control decision information generator 120 then generates the control decision information 300 based on the load (requests per unit (rps)) at the time when throughput saturation begins for each uncore frequency setting condition. In FIG. 3 , when the uncore frequency is 1200 (MHz), it is determined that throughput saturation begins at a load of 40,000 (rps), indicated by the symbol x, and this is set as the threshold for the control decision information 300.

[0040] FIG. 4 is a diagram illustrating an example of the data configuration of control decision information 300 according to this embodiment. As shown in FIG. 4, the control decision information 300 defines a threshold value for the load amount at which throughput saturation begins for each uncore frequency, which is a setting condition. For example, when the uncore frequency is 800 MHz, the load amount at which throughput saturation begins is 20,000 rps. Furthermore, when the uncore frequency is 1,200 MHz, the load amount at which throughput saturation begins is 40,000 rps. This threshold value may be set to α times (e.g., 0.9 or 0.85) the load amount at which throughput saturation begins. This more reliably satisfies the performance requirements of the application 200.

[0041] In addition, when the control determination information generator 120 uses "throughput saturated" as the criterion (index) for control determination as prior data, and if the data collector 110 is unable to acquire throughput data, the control determination information generator 120 may refer to data (server performance) correlated with throughput from the data store 100 to identify the load amount at the time when throughput saturation began, and generate the control determination information 300. In addition, when the control determination criterion (index) for control determination as prior data is "whether or not the response time violates the performance requirements," and if the data collector 110 is unable to acquire response time data, the control determination information generator 120 may refer to data (server performance) correlated with the response time from the data store 100 to identify the load amount at the time when the response time violated the performance requirements, and generate the control determination information 300.

[0042] The data used as an index for control decisions is referred to as "control decision criterion data." When "throughput is saturated" is used as an index for control decisions, the control decision criterion data is information on throughput or data correlated with throughput (server performance). When "whether or not the response time violates the performance requirements" is used as an index for control decisions, the control decision criterion data is response time or data correlated with response time (server performance).

[0043] The monitoring unit 130 collects data to be monitored (monitored data) in real time during the control execution (operation) stage of the above-mentioned control phase 1 (processing performance adjustment on a single server). The monitoring unit 130 acquires information on the current processing performance of the server 2 (e.g., CPU frequency (core frequency, uncore frequency)) and information on the load amount (e.g., number of requests per unit (rps)) used to determine a threshold for processing performance adjustment control. The monitoring unit 130 can acquire the setting value of the uncore frequency by reading the address corresponding to the uncore in the CPU's model-specific register, for example. The load amount (number of requests per unit (rps)) can also be acquired by using information output as a log by the application.

[0044] In control phase 1 (single-server processing performance adjustment), the control execution unit 140 determines whether the current load exceeds the threshold indicated in the control determination information 300 ( FIG. 4 ) based on the real-time monitored data (current processing performance and load of server 2) collected by the monitoring unit 130. If the current load exceeds the threshold, the control execution unit 140 increases the set value of the processing performance (e.g., CPU frequency (core frequency, uncore frequency)) by a predetermined amount. On the other hand, if the current load does not exceed the threshold, the control execution unit 140 controls the processing performance to the lowest possible value while still satisfying the performance requirements. Details of the processing by the control execution unit 140 in control phase 1 will be described later with reference to FIG. 5 .

[0045] If the control execution unit 140 determines in control phase 1 that the processing performance of a server 2 has reached its upper limit but still does not satisfy the performance requirements, the control proceeds to control phase 2 (load distribution to multiple servers). In control phase 2, since one server 2 can no longer handle the load, the control execution unit 140 executes control to (1) move the application to another running server 2, or (2) distribute the load by adding a new server 2. After load distribution, the control execution unit 140 monitors the performance guarantee status and controls each server 2 as in control phase 1. Details of the processing by the control execution unit 140 in control phase 2 will be described later with reference to FIGS. 6 to 8.

[0046] <Processing Flow> Next, a description will be given of the processing executed by the server setting control device 1. Fig. 5 is a flowchart showing the processing flow executed by the server setting control device 1 according to this embodiment in control phase 1 (adjusting processing performance in a single server).

[0047] First, the data collection unit 110 of the server setting control device 1 collects advance data about the application (App) 200 running on each server 2 (step S101). Then, the data collection unit 110 stores the collected advance data in the data store 100 of the storage unit 12.

[0048] Here, the data collection unit 110 uses a load application tool or the like installed on each server 2 to apply a load for a predetermined period (e.g., 30 seconds) and collects information such as application performance values ​​(throughput, response time), server settings (CPU frequency, voltage), and server performance.

[0049] For example, the data collection unit 110 uses the uncore frequency as a server setting condition and measures the throughput while varying the load (number of requests per unit) at each step of the uncore frequency (for example, every 100 (MHz)) (see Figure 3).

[0050] Next, the control decision information generator 120 of the server setting control device 1 references the prior data stored in the data store 100 and generates control decision information 300 ( FIG. 4 ) indicating thresholds that serve as the basis for control decisions (step S102). The control decision information generator 120 then stores the generated control decision information 300 in the storage unit 12.

[0051] When the control determination information generator 120 uses "throughput saturated" as the criterion (index) for control determination, it references control determination criterion data, which is throughput or data correlated with throughput (server performance), from the data store 100 to identify the load amount at the time when throughput saturation began, and generates control determination information 300. When the control determination criterion (index) for control determination is "whether or not the response time violates the performance requirements," it references control determination criterion data, which is response time or data correlated with the response time (server performance), from the data store 100 to identify the load amount at the time when the response time violates the performance requirements, and generates control determination information 300.

[0052] The processes up to step S102 are performed before the control execution (operation) stage. When proceeding to the next control execution (operation) stage, the power saving function (for example, DVFS) of each server 2 is enabled.

[0053] Next, in the control execution (operation) stage of control phase 1, the monitoring unit 130 of the server setting control device 1 repeats the following processing performance adjustment (steps S103 to S111).

[0054] The monitoring unit 130 of the server setting control device 1 collects information on the current server settings (the processing performance of the server 2, for example, the uncore frequency) and the current load amount (step S104).

[0055] Next, the control execution unit 140 of the server setting control device 1 determines whether the current load amount exceeds the threshold set for each server setting information (e.g., uncore frequency) by referring to the control judgment information 300 stored in the data store 100 (step S105).

[0056] Next, if the control execution unit 140 determines that the current load does not exceed the threshold (step S105 → No), it determines whether the current server setting (e.g., uncore frequency) is the minimum value that can be set (step S106). If the current server setting is not the minimum value (step S106 → No), the control execution unit 140 lowers the server setting by a predetermined amount (e.g., 100 MHz) (step S107). Then, it proceeds to the next step S110. On the other hand, if the current server setting is the minimum value (step S106 → Yes), the control execution unit 140 does not control the server setting and proceeds to the next step S110.

[0057] Furthermore, if it is determined in step S105 that the current load exceeds the threshold (step S105 → Yes), the control execution unit 140 determines whether the current server setting (e.g., uncore frequency) is the maximum value that can be set (step S108). If the current server setting is not the maximum value (step S108 → No), the control execution unit 140 increases the server setting by a predetermined amount (e.g., 100 MHz) (step S109). Then, the process proceeds to the next step S110. On the other hand, if the current server setting is the maximum value (step S108 → Yes), the control execution unit 140 does not control the server setting and proceeds to the next step S110.

[0058] Next, the control execution unit 140 determines whether the service of the application (App) 200 on the server 2 has ended (step S110). If the service has not ended (step S110 → No), the process proceeds to step S111, returns to step S103, and repeats the process. By repeating this processing performance adjustment process, if the current load does not exceed the threshold (step S105 → No) and the server setting is not at its minimum value (step S106 → No), the process of lowering the server setting by a predetermined amount (step S107) is repeated, thereby allowing the server setting control device 1 to maximize the power-saving effect. On the other hand, if the service has ended (step S110 → Yes), the process of control phase 1 ends.

[0059] Next, the flow of processing in control phase 2 will be described. FIG. 6 is a flowchart showing the flow of processing executed by the server setting control device 1 according to this embodiment in control phase 2 (load distribution to multiple servers). It is assumed here that steps S101 and S102 in FIG. 5 are executed in each server 2, and that control decision information 300 for each server 2 is stored in the storage unit 12 of the server setting control device 1. The processing in control phase 2 is executed when, in control phase 1 (see FIG. 5), the current server setting (processing capacity) is at its maximum value and the current load exceeds the threshold (step S8 in FIG. 5 → Yes). Processing similar to that in control phase 1 (processing performance adjustment on a single server) in FIG. 5 will be described with the same step numbers.

[0060] First, the monitoring unit 130 of the server setting control device 1 checks the currently available servers 2 during the control execution (operation) stage of control phase 2 and confirms that the power saving functions (e.g., DVFS, etc.) of each server 2 are enabled (step S201).

[0061] Next, the server setting control device 1 repeats the following load distribution process to multiple servers at predetermined time intervals (steps S202 to S205). The server setting control device 1 also repeats the following load distribution process to multiple servers for the number of servers (steps S203 to S204). The server setting control device 1 selects one server 2 from the servers 2 that are in operation and proceeds to step S104.

[0062] Then, the monitoring unit 130 of the server setting control device 1 collects information on the current server settings (the processing performance of the server 2, for example, the uncore frequency) and the current load amount (step S104).

[0063] Next, the control execution unit 140 of the server setting control device 1 determines whether the current load amount exceeds the threshold set for each server setting information (e.g., uncore frequency) by referring to the control judgment information 300 stored in the data store 100 (step S105).

[0064] If the control execution unit 140 determines that the current load does not exceed the threshold (step S105 → No), it then determines whether the current server setting (e.g., the uncore frequency setting) is the minimum value that can be set (step S106). If the current server setting is not the minimum value (step S106 → No), the control execution unit 140 lowers the server setting by a predetermined amount (e.g., 100 MHz) (step S107). Then, the process proceeds to the next step, S110.

[0065] On the other hand, if the current server setting is the minimum value (step S106 → Yes), the control execution unit 140 proceeds to step S210 of FIG. 7 . In step S210 of FIG. 7 , the control execution unit 140 determines whether there is a migration destination for moving the task (request) of the application 200 to another server 2. If the control execution unit 140 determines that there is a migration destination (step S210 → Yes), it searches for and determines the migration destination and executes the migration (step S211). Next, the control execution unit 140 stops operation of the server that no longer has the application 200 installed due to the migration (step S212), and returns the process to step S201 of FIG. 6 . If the control execution unit 140 determines that there is no migration destination (step S210 → No) in step S210, it returns the process to step S201 of FIG. 6 .

[0066] 6, if it is determined that the current load exceeds the threshold (step S105→Yes), the control execution unit 140 determines whether the current server setting (e.g., the uncore frequency setting) is the maximum value that can be set (step S108). If the current server setting is not the maximum value (step S108→No), the control execution unit 140 increases the server setting by a predetermined amount (e.g., 100 (MHz)) (step S109). Then, the process proceeds to the next step, S110.

[0067] On the other hand, if the current server setting is the maximum value (step S108→Yes), the control execution unit 140 proceeds to step S220 in Fig. 8. In step S220 in Fig. 8, the control execution unit 140 determines whether there is a migration destination for moving the task (request) of the application 200 to another server 2. If the control execution unit 140 determines that there is a migration destination (step S220→Yes), it searches for and determines the migration destination, executes the migration (step S221), and returns the process to step S201 in Fig. 6.

[0068] On the other hand, if the control execution unit 140 determines in step S220 that there is no migration destination (step S220 → No), it determines whether there is a margin in the resource utilization rate of the entire system (step S222). If the control execution unit 140 determines that there is a margin in the resource utilization rate (step S222 → Yes), it adds a server (scales out) (step S223) and returns the process to step S201 in Fig. 6. If the control execution unit 140 determines in step S222 that there is no margin in the resource utilization rate (step S222 → No), it returns the process to step S201 in Fig. 6.

[0069] 6, in step S110, the control execution unit 140 determines whether the service of the application (App) 200 on the server 2 has ended. If the service has not ended (step S110→No), the process proceeds to step S204, where the load distribution process to the multiple servers is repeated for the number of servers. The process then proceeds to step S205, where the load distribution process to the multiple servers is repeated at predetermined time intervals. On the other hand, if the service has ended in step S110 (step S110→Yes), the process of control phase 2 ends.

[0070] By doing this, the server setting control device 1 of this embodiment can maximize the power saving effect to the extent that the performance requirements are met, depending on the processing content and performance requirements of each application (App).

[0071] In this embodiment, the control method has been described assuming that the current load on the server (such as the number of requests per unit) can be acquired in real time from an application (App) log, etc. However, if the current load cannot be acquired in real time, the following method can be used.

[0072] [Method 1] When generating the control decision information 300 (FIG. 4), the control decision information generator 120 (FIG. 2) uses server performance data correlated with the load amount as a threshold value instead of the load amount. Then, in the control execution (operation) stage, the monitor 130 collects from the server 2 the server performance data used as the threshold value instead of the load amount as an index for control decisions.

[0073] [Method 2] When the application performance values ​​(throughput, response time) can be measured directly or estimated by statistical analysis, the monitoring unit 130 (FIG. 2) acquires the data in real time, and the control execution unit 140 (FIG. 2) determines whether to adjust the processing performance (e.g., CPU frequency) of the server 2 based on the increasing trend of the data.

[0074] Example 1 (When Throughput Values ​​Can Be Obtained in Real Time) When throughput values ​​can be obtained in real time, the control execution unit 140 ( FIG. 2 ) makes control decisions using the following logic. The control execution unit 140 controls processing performance to improve performance when the obtained throughput value is "A±a (a is an arbitrary numerical value)," where "A" is the throughput value at saturation, and when the measurement time and time are T0 and "s" is an arbitrary time interval, and the change in data between time T0-s and time T0 is zero or negative. However, because the position of saturation point A changes depending on settings such as CPU frequency, it is necessary to create a database of saturation points for each setting item and compare the slope at saturation point A for the currently set CPU frequency.

[0075] Example 2 (When Response Time Values ​​Can Be Obtained in Real Time) When response time values ​​can be obtained in real time, the control execution unit 140 ( FIG. 2 ) makes control decisions using the following logic: (1) When the obtained response time value exceeds the performance requirements of the application 200, the control execution unit 140 controls the processing performance to improve performance. (2) When the obtained response time value does not exceed the performance requirements of the application 200 but the amount of change in data between time T0-s and time T0 is equal to or greater than a predetermined slope b, where T0 is an arbitrary measurement time and "s" is an arbitrary time interval, the control execution unit 140 controls the processing performance to improve performance.

[0076] In this way, the server setting control device 1 can perform the processing performance adjustment process even when the load amount cannot be acquired in real time.

[0077] <Hardware Configuration> The server setting control device 1 according to this embodiment is realized by a computer 900 having a configuration such as that shown in Fig. 9. Fig. 9 is a hardware configuration diagram showing an example of the computer 900 that realizes the functions of the server setting control 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.

[0078] The CPU 901 operates based on a program (server setting control program) stored in the ROM 902 or the HDD 904, and performs control by the control unit 10 (FIG. 2). 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, and the like.

[0079] 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.

[0080] 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.

[0081] The media I / F 907 reads a program (server setting 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 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.

[0082] For example, when a computer 900 functions as the server setting control device 1 of the present invention, a CPU 901 of the computer 900 executes a program loaded onto a RAM 903 to realize the functions of the server setting control program. In addition, data stored in the RAM 903 is stored in an HDD 904. The CPU 901 reads and executes a program related to a target process from a 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).

[0083] <Effects> The following describes the effects of the server setting control device etc. according to the present invention. The server setting control device according to the present invention is a server setting control device 1 that controls the settings of the processing performance of a server 2 that has an application 200 installed, and includes a data collection unit 110 that acquires, from the server 2 as advance data, information on an App performance value indicating the performance value of the application 200 when a load is applied to the application 200, a server setting indicating the processing performance set in the server 2, and server performance when the server 2 executes the application 200 with the load applied, by changing the conditions and load amount of the server setting within a predetermined range; The system is characterized by comprising a control decision information generation unit 120 that generates, as control decision information 300, a load threshold for each server setting that serves as an index for determining whether or not the threshold is satisfied; a monitoring unit 130 that acquires, from the server 2, the server setting, which is the current processing performance of the server 2, and information on the current load, during the operational stage of the processing of the application 200; and a control execution unit 140 that refers to the control decision information 300, and increases the processing performance of the server setting by a predetermined amount if the current load for the current server setting exceeds the threshold indicated in the control decision information 300, or decreases the processing performance of the server setting by a predetermined amount if the threshold is not exceeded.

[0084] In this way, the server setting control device 1 can reduce the power consumption of the server while satisfying the performance requirements according to the processing content and performance requirements of each application (App).

[0085] Furthermore, in the server setting control device 1, the indicator for determining whether the performance requirements set for the application 200 are satisfied is whether the throughput or server performance information correlated with the throughput, obtained as advance data, is saturated when the load is increased, or whether the response time of the application 200 or server performance information correlated with the response time, obtained as advance data, violates the performance requirements set for the application 200 when the load is increased, and the control judgment information generation unit 120 is characterized in that it generates the control judgment information 300 using the load amount at the time of saturation or the load amount at the time of violation of the performance requirements as a threshold.

[0086] In this way, the server setting control device 1 uses the load amount at the time when the throughput becomes saturated or the load amount at the time when the response time violates the performance requirements of the application 200 as an index for determining whether the performance requirements set for the application 200 are satisfied, thereby making it possible to control the processing performance of the server 2 so as to reliably satisfy the performance requirements of the application 200. Furthermore, even if it is not possible to collect application performance information such as throughput or response time information from the server 2, the server setting control device 1 can generate the control determination information 300 by using information on server performance correlated with throughput or information on server performance correlated with response time.

[0087] Furthermore, in the server setting control device 1, when the control execution unit 140 determines that the processing performance of the server 2 has reached an upper limit but does not meet the performance requirements of the application 200, it distributes the load by moving the application 200 running on the server 2 to another server 2.

[0088] By doing this, even if the processing performance of one server 2 reaches its upper limit, the server setting control device 1 can distribute the load and meet the performance requirements of the application 200 by migrating the application 200 to another server 2 that is currently in operation, or by starting a new server 2.

[0089] 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.

[0090] REFERENCE SIGNS LIST 1 Server setting control device 2 Server 3 LB (Load balancer) 10 Control unit 11 Input / output unit 12 Storage unit 21 Data collection software 22 IPMI 100 Data store 110 Data collection unit 120 Control decision information generation unit 130 Monitoring unit 140 Control execution unit 200 Application (App) 300 Control decision information 1000 Server setting control system

Claims

1. A server setting control device for controlling the setting of the processing performance of a server equipped with an application, comprising: A data collection unit that varies the App performance value indicating the performance value of the application when a load is applied to the application, the server setting indicating the processing performance set for the server, and the information on the server performance when the server executes the application to which the load is applied within a predetermined range with respect to the conditions and the load amount of the server setting, and acquires the data from the server as pre-data; A control determination information generation unit that refers to the pre-data and generates, as control determination information, a threshold value of the load amount for each server setting that serves as an index for determining whether or not the performance requirements set for the application are satisfied; A monitoring unit that acquires, from the server, the server setting that is the current processing performance of the server and the information on the current load amount in the operation stage of the processing of the application; A control execution unit that refers to the control determination information, increases the processing performance of the server setting by a predetermined amount when the current load amount in the current server setting exceeds the threshold value indicated by the control determination information, and decreases the processing performance of the server setting by a predetermined amount when the current load amount does not exceed the threshold value; A server setting control device characterized by comprising the above.

2. The index for determining whether or not the performance requirements set for the application are satisfied is whether the information on the server performance that is the throughput or correlated with the throughput acquired as the pre-data is in a saturated state when the load is increased, Or whether the information on the server performance that is the response time of the application or correlated with the response time acquired as the pre-data violates the performance requirements set for the application when the load is increased, The control determination information generation unit generates the control determination information with the threshold value being the load amount at the time of the saturated state or the load amount at the time of the violation of the performance requirements. The server setting control device according to claim 1, characterized in that.

3. When the control execution unit determines that the performance requirements of the application are not met even though the processing performance of the server has reached the upper limit value, it distributes the load by moving the application running on the server to another server. The server setting control device according to claim 1 or claim 2, characterized in that.

4. A server setting control method for a server setting control device that controls the setting of the processing performance of a server on which an application is installed. The server setting control device includes: an App performance value indicating the performance value of the application when a load is applied to the application; a server setting indicating the processing performance set for the server; and information on the server performance when the server executes the application to which the load is applied. Obtaining from the server as pre-data by changing within a predetermined range with respect to the conditions and load amount of the server setting; referring to the pre-data and generating, as control determination information, a threshold value of the load amount for each server setting that is an index for determining whether the performance requirements set for the application are met; In the operation stage of the application processing, obtaining from the server the server setting that is the current processing performance of the server and the information on the current load amount; referring to the control determination information, when the current load amount in the current server setting exceeds the threshold value indicated by the control determination information, increasing the processing performance of the server setting by a predetermined amount, and when it does not exceed the threshold value, decreasing the processing performance of the server setting by a predetermined amount. A server setting control method characterized by performing.

Citation Information

Patent Citations

  • Performance value calculation device

    JP2010009160A

  • Server device, program, and communication system

    JP2018084986A

  • Virtual resource allocation device and virtual resource allocation method

    JP2018181117A

  • Estimation method, estimation device, and estimation program

    JP2019113915A