Server process allocation device and server process allocation method

WO2026191034A1PCT designated stage Publication Date: 2026-09-17NT T INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2025/009505
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-03-12
Publication Date
2026-09-17

Smart Images

  • Figure JP2025009505_17092026_PF_FP_ABST
    Figure JP2025009505_17092026_PF_FP_ABST
Patent Text Reader

Abstract

There is provided a server process allocation device (100) of a server system (1000) that executes, on servers (20) (#1 to #3), applications (21) allocated to the servers (20) (#1 to #3), the server process allocation device (100) comprising an application allocation unit (110) that calculates an estimated power consumption amount in a combination of each application and all the servers, the estimated power consumption amount being estimated through the life cycle of the applications from the start of a service to the end of the service, selects a server having the minimum estimated power consumption amount, and allocates the application to the server.
Need to check novelty before this filing date? Find Prior Art

Description

Server Process Arrangement Apparatus and Server Process Arrangement Method

[0001] The present invention relates to a server process arrangement apparatus and a server process arrangement method.

[0002] With the rapid expansion of information and communication services, power saving in data centers has become one of the social issues. A major information and communication business that uses data centers is cloud computing. Cloud computing is a business in which servers managed by a cloud computing provider are provided to service providers and individual customers via a network. Generally, a cloud computing provider owns a plurality of servers, and a server to be provided is selected according to performance requirements and desired prices requested by customers.

[0003] Focusing on power, the power consumed by a server depends on the processing to be executed, and even if the same processing is performed, the power consumption varies depending on the configuration of each server. In particular, CPUs (Central Processing Units) sold recently have a function of reducing power consumption by suppressing performance when the load is low (Non-Patent Document 1). Power consumption varies greatly depending not only on the product model but also on the setting of the function. For example, some servers always maintain power consumption near the maximum regardless of the load, while other servers have power consumption that decreases accordingly when the load is low. Further, even if power consumption is determined according to the load, it is often not in a simple proportional relationship. In order to minimize the power consumption of servers in a data center, it is required to allocate processing in consideration of power consumption characteristics specific to each server.

[0004] In environments where multiple servers coexist, such as cloud computing environments, there is a technology that reduces power consumption by appropriately selecting the server on which to run an application (Non-Patent Literature 2). The technology described in Non-Patent Literature 2 selects the server on which to deploy the application (Kubernetis k8s Pod) based on CPU usage and intake air temperature, and further selects a Pod (the smallest unit of k8s that groups one or more containers and provides a shared execution environment) to which client requests are sent, based on estimated increases in power consumption and latency.

[0005] RJWysocki, "CPU Performance Scaling," The Linux Kernel documentation 6.2.0-rc8, Intel Corporation, 2017, [online], [Retrieved January 5, 2025], Internet <URL: https: / / www.kernel.org / doc / html / latest / admin-guide / pm / cpufreq.html> R. Douhara, YF Hsu, T. Yoshihisa, K. Matsuda and M. Matsuoka, "Kubernetes-based Workload Allocation Optimizer for Minimizing Power Consumption of Computing System with Neural Network," 2020 International Conference on Computational Science and Computational Intelligence (CSCI), Las Vegas, NV, USA, 2020, pp. 1269-1275

[0006] Prior art (non-patent documents 1 and 2) presents the following problems depending on the application environment: (1) Optimality is compromised when the application load fluctuates. That is, although there is room to address this by selecting the request destination, it cannot handle excessive increases or decreases.

[0007] (2) In environments with many applications that have long lifecycles, optimization can easily break down. When there are many applications with short lifecycles, the optimized state is naturally maintained by repeatedly starting and assigning them. However, many applications used by telecommunications carriers have long lifecycles, and restarts or server configuration changes may not be acceptable.

[0008] Figure 21 illustrates the problems of the prior art described above. As shown in the left diagram of Figure 21, the server system of the prior art comprises a scheduler 10 and a group of servers (servers #1 to #3). The scheduler 10 comprises a request distribution unit 11 that receives requests from service users 1a and distributes the requests to applications (hereinafter abbreviated as apps or APLs) 21 on servers #1 to #3, and a server selection unit 12 that receives application deployment requests from service providers 1b and selects servers #1 to #3 to execute the applications (APLs) 21 according to the application deployment requests. In the left diagram of Figure 21, the server selection unit 12 selects servers #1 and #2, and the request distribution unit 11 assigns the applications (APLs) 21 to these servers #1 and #2. As a result, the CPU usage rate 22 of servers #1 and #2 is high (shaded in the left diagram of Figure 21). As mentioned above, many of the applications of service provider 1b have long lifecycles and cannot be restarted or have their server configuration changed, so the server selection and request distribution shown in the left diagram of Figure 21 are fixed.

[0009] The server group shown in the left diagram of Figure 21 is an example of an optimal state. However, prior art server systems can enter a non-optimal state, as shown in the right diagram of Figure 21, due to the passage of time or load fluctuations (white arrow aa in Figure 21). In the non-optimal state, the CPU utilization 22 of servers #1 and #2 is extremely high, resulting in an overload (hatching in the right diagram of Figure 21). On the other hand, the CPU utilization 22 of server #3 is low, resulting in an underload, and the load allocated to each server #1 to #3 is unbalanced.

[0010] In light of this background, the present invention was made, and its objective is to reduce the power consumption of a server when running long-lifecycle applications.

[0011] To solve the aforementioned problems, a server process placement device for a server system that executes applications placed on a server is provided, characterized by comprising an application placement unit that calculates the expected power consumption for all application and server combinations throughout the application's lifecycle from the start of the service to the end of the service, and selects the server with the minimum expected power consumption to place the application on.

[0012] According to the present invention, the power consumption of a server can be reduced when running long-lifecycle applications.

[0013] This is a schematic configuration diagram of a server system equipped with a server process placement device according to an embodiment of the present invention. This is a diagram showing an example of a server performance correction table for a server process placement device according to an embodiment of the present invention. This is a diagram showing an example of server load vs. power consumption characteristics stored in the server load vs. power consumption characteristics DB of a server process placement device according to an embodiment of the present invention. This is a diagram showing an example of application load fluctuation information for a server process placement device according to an embodiment of the present invention. This is a flowchart of the server installation and application placement operation of a server process placement device according to an embodiment of the present invention. This is a flowchart of the server characteristic measurement process of the server characteristic measurement unit of a server process placement device according to an embodiment of the present invention. This is a flowchart of the application placement process of the application placement unit of a server process placement device according to an embodiment of the present invention. This is a diagram illustrating the server load vs. power characteristics and execution application selection policy of a server process placement device according to an embodiment of the present invention. This is a flowchart of the placement decision algorithm of a server process placement device according to an embodiment of the present invention. This is a diagram showing in table form a method for evenly distributing from the maximum and minimum load of a server process placement device according to an embodiment of the present invention. This is an image diagram illustrating the necessity of server correction for a server process placement device according to an embodiment of the present invention. This is an explanatory diagram of an example of calculating server load correction and expected total power consumption for each server of a server process placement device according to an embodiment of the present invention. This is a diagram showing an example of load calculation when deploying application [B] to server #1, which is already running application [A], using a server process placement device according to an embodiment of the present invention. This is a diagram showing an example of calculation when application [A] is running on server #1 of a server process placement device according to an embodiment of the present invention. This figure shows an example of calculation when application [A] is running on server #1 of the server process deployment device according to an embodiment of the present invention, specifically an example of calculating the total power consumption up to the end date of application [B] when deployment is not performed.This figure shows a calculation example for calculating the increase in power consumption caused by deploying application [B], based on the expected total power consumption [A + B, B] and the expected total power consumption [A execution period] up to the end date of application [B] if deployment were not performed, when application [A] is running on server #1 of the server process deployment device according to the present invention. This figure shows a table of the expected increase in total power consumption [increment due to deployment of B] for each server #1 to #3 of the server process deployment device according to the present invention. This figure illustrates an example of correcting the measured value of application load data by overwriting the daily information of the server process deployment device according to the present invention. This figure illustrates an example of correcting the measured value of application load data by correcting the monthly information of the server process deployment device according to the present invention. This is a hardware configuration diagram showing an example of a computer that realizes the functions of the server process deployment device according to the present invention. This figure illustrates a problem of the prior art.

[0014] The following describes a server process placement device and the like in an embodiment of the present invention (hereinafter referred to as "this embodiment") with reference to the drawings. [Overview] Figure 1 is a schematic diagram of a server system equipped with a server process placement device according to an embodiment of the present invention. The same reference numerals are used for the same components as in Figure 21.

[0015] As shown in Figure 1, the server system 1000 comprises a plurality of servers (servers #1 to #3) 20, long-lifecycle applications (APLs) 21 executed by the servers 20, and a server process placement device 100 that determines and places the applications on servers based on the power consumption characteristics of each server and the expected load of each application. The server system 1000 is a system that runs the applications 21 placed on the servers 20 on those servers permanently, for example, until the service ends. Here, "permanently" means that "the lifecycle is longer than a predetermined period" and that "modification of the application is not permitted," such as in the case of applications used by telecommunications carriers.

[0016] [Server Process Placement Device 100] The server process placement device 100 comprises an application placement unit 110, a server characteristics measurement unit 120, an application time-series data generation unit 130, an application load data actual value correction unit 140, and a storage unit 150.

[0017] <Application Deployment Unit 110> The application deployment unit 110 calculates the expected power consumption for each application and all server combination throughout the application's lifecycle, from the start of the service to the end of the service, and deploys the application to the server that minimizes the expected power consumption. Specifically, the application deployment unit 110 receives an application execution request from the service provider and selects the combination that minimizes the expected increase in total power consumption throughout the application's lifecycle (see the deployment decision algorithm in Figure 9 below).

[0018] The application placement unit 110 calculates the expected power consumption throughout the lifecycle based on the application time-series load data generated by the application time-series data generation unit 130.

[0019] The application deployment unit 110 predicts the actual load that will be placed on the servers based on the server performance correction table 152 and performs corrections according to the unique performance differences of each server.

[0020] <Server Characteristics Measurement Unit 120> The server characteristics measurement unit 120 generates a server performance correction table 152 and server load vs. power consumption characteristics based on actual measurements using benchmark software.

[0021] <Application Time Series Data Generation Unit 130> The application time series data generation unit 130 generates application time series load data by allocating the minimum and maximum load of the application over time. Specifically, if time series load information for the application is not provided, the application time series data generation unit 130 generates application time series load data by allocating the minimum and maximum load of the application over time. The generation method may be, for example, distributing the minimum and maximum values ​​equally over time, or distributing them according to a normal distribution centered on the mean value.

[0022] <Application Load Data Actual Value Correction Unit 140> The Application Load Data Actual Value Correction Unit 140 corrects the pre-predicted application time-series load data using information actually measured on the server. The corrected application time-series load data generated by the Application Load Data Actual Value Correction Unit 140 is used to calculate the power consumption when deploying subsequent applications.

[0023] <Storage Unit 150> The storage unit 150 includes a server-application deployment information DB 151, a server performance correction table 152 (server performance correction information), a server load vs. power consumption characteristics DB 153, and an application time-series load data DB 154.

[0024] The server-application deployment information DB151 stores server-application deployment information that shows the correspondence between currently running applications and the servers on which they are running.

[0025] The Server Performance Correction Table 152 is information that expresses the intrinsic performance of a server (actual load due to application execution (e.g., CPU usage)) as a difference from a baseline value. The Server Performance Correction Table 152 can be in any format, as long as it provides server performance correction information such as correction coefficients.

[0026] The Server Load vs. Power Consumption Characteristics DB153 stores server load vs. power consumption characteristic information, which discretely represents the power consumption of a server when it is under a certain load (such as CPU usage).

[0027] The application time-series load data DB154 stores application time-series load data, which discretely represents the expected load on an application at a given point in time, as provided by the service provider. The application time-series load data can be represented in tabular format or by mathematical formulas that use time or date / time as variables.

[0028] <Server Performance Correction Table 152> Figure 2 shows an example of Server Performance Correction Table 152. The Server Performance Correction Table 152 shown in Figure 2 stores the performance correction coefficients for each server #1 to #3, assuming the server performance of the reference server is 1.0. For example, server #1 is 1.6, server #2 is 1.5, and server #3 is 0.8. Server Performance Correction Table 152 is used to measure server characteristics along with the server load vs. power consumption characteristics shown in Figure 3 below (see below).

[0029] <Server Load vs. Power Consumption Characteristics> Figure 3 shows an example of server load vs. power consumption characteristics stored in the Server Load vs. Power Consumption Characteristics DB 153. The server load vs. power consumption characteristics shown in Figure 3 store the power consumption characteristics (in W [watts]) of each server #1 to #3 for server loads of 0-100 [%]. As shown in Figure 3, the server load vs. power consumption characteristics differ for each server #1 to #3. For example, servers #1 and #2 have power consumption characteristics where power consumption increases as the server load increases (server load 0 [%]: power consumption 50 [W] increases to server load 100 [%]: power consumption 150 [W]). On the other hand, server #3 has power consumption characteristics where power consumption is constant regardless of the server load (power consumption 200 [W]). The server load vs. power consumption characteristics shown in Figure 3 are used to measure server characteristics together with the server performance correction table 152 shown in Figure 2 (described later).

[0030] <Application Load Fluctuation Information> The service provider provides time-series information (Figure 4) of the expected load fluctuations for each application. Examples of time-series data for application load include: - Time-of-day access fluctuations for business systems, etc. (hours and minutes) - User number fluctuations due to service popularity (monthly, weekly) - User number fluctuations due to seasonal demand for services (monthly) Furthermore, the expected end date is also specified for each service, and the total power consumption up to the end date is calculated.

[0031] Figure 4 shows an example of application load fluctuation information. The upper part of Figure 4 shows an example of time-series data (daily fluctuation) of application load (average per second), and the lower part of Figure 4 shows an example of time-series data (monthly fluctuation) of application load (average per second). Hatching in Figure 4 represents high load, shading represents medium load, and white frames represent low load.

[0032] Regarding the daily fluctuations in application load shown in the upper part of Figure 4, the load fluctuations for Application 1 are moderate during the daytime (10-18 hours) and low at other times. There are no load fluctuations for Application 2, and it is always at a high load. There are no load fluctuations for Application 3, and it is always at a low load.

[0033] Regarding the monthly fluctuations in application load shown in the lower part of Figure 4, application 4 shows high load from January to May, medium load from June to September, and low load from October to December. Application 5 shows low load from January to June, high load from July to September, and low load from October to December. Application 4 is likely an application with high service demand in the spring, while application 5 is likely an application with high service demand in the summer.

[0034] The operation of the server process deployment device 100, configured as described above, will be explained below.

[0035] <Overall Flow> Figure 5 is a flowchart of the server installation and application deployment operation of the server process placement device 100. This flowchart shows that the server process placement device 100 is executable (meaningful processing can be executed) if one or more servers are deployed in the server system 1000 (Figure 1). Furthermore, the functional units that execute each step of this flowchart can operate asynchronously (in this case, the functional units cooperate via data). In addition, this flowchart can be executed periodically or irregularly.

[0036] In step S11, the application deployment unit 110 deploys the server to which the application will be deployed to the environment. In step S12, the server characteristics measurement unit 120 performs server characteristics measurement processing (Figure 6).

[0037] In step S13, the application deployment unit 110 performs the application deployment process (Figure 7). In step S14, the application load data measurement value correction unit 140 observes the server load, updates the application time-series load data of the running application, and terminates the processing of this flow.

[0038] Meanwhile, in step S15, the service provider sets data regarding the application load.

[0039] In step S16, the application deployment unit 110 determines the input data format. If the data format is "time-series load data", the process proceeds to step S13. If the data format is "minimum load, maximum load", the process proceeds to step S17.

[0040] In step S17, the application time-series data generation unit 130 creates application time-series load data based on the minimum and maximum load of the application and terminates the processing of this flow.

[0041] <Server Characteristic Measurement Processing> FIG. 6 is a flowchart showing the server characteristic measurement processing performed by the server characteristic measurement unit 120. This flow is called and executed by the subroutine call in step S12 of FIG. 5. In step S21, the server characteristic measurement unit 120 activates benchmark software for server characteristic measurement. In step S22, the benchmark software applies an arbitrary load to the server and measures the power consumption of the server. Specifically, the benchmark software has a plurality of test load settings (for example, an arithmetic processing that results in a CPU usage rate of approximately 10%, a test load setting that results in a CPU usage rate of approximately 20%, a test load setting that executes processing 100 times per second, and a test load setting that executes processing 200 times per second), and acquires power characteristic data with respect to the server load by testing all of these settings.

[0042] In step S23, the server characteristic measurement unit 120 tests all of the plurality of test load settings by the benchmark software, and determines whether there is any unobserved load in all the tests. If there is an unobserved load (S23: Yes), the process returns to step S22; if there is no unobserved load (S23: No), the process proceeds to step S24.

[0043] In step S24, the server characteristic measurement unit 120 terminates the benchmark software and returns to step S12 of FIG. 5.

[0044] <Application Placement Processing> FIG. 7 is a flowchart showing the application placement processing performed by the application placement unit 110. This flow is called and executed by the subroutine call in step S13 of FIG. 5. In step S31, the application placement unit 110 receives an application execution request from a service provider or the like.

[0045] In step S32, the application placement unit 110 calculates the increase in total power consumption when the corresponding application is executed on any server.

[0046] In step S33, the application placement unit 110 determines whether there is any uncalculated server. If there is an uncalculated server (S33: Yes), the process returns to step S32; if there is no uncalculated server (S33: No), the process proceeds to step S34.

[0047] In step S34, the application placement unit 110 allocates and executes an application to the server with the smallest increase in total power consumption. Details of the placement determination algorithm for application allocation will be described later with reference to FIGS. 8 and 9.

[0048] In step S35, the application placement unit 110 updates the server-application placement information in the server-application placement information DB 151 (FIG. 1), and returns to step S13 in FIG. 5.

[0049] <Placement Determination Algorithm> The placement determination algorithm of the server process placement apparatus 100 will be described. An application once placed on a server (an application with a long life cycle, such as an application of a communication carrier) is permanently executed on the corresponding server until the service ends. Based on this premise, processing is allocated such that the total power consumption over the total operating time is minimized. Furthermore, on the premise that the load versus power consumption characteristic for each server and the load fluctuation of the application are given, the increase in expected power consumption in consideration of the total operating time when the application is placed and executed on the server is calculated, and the application-server placement that minimizes this increase is implemented.

[0050] FIG. 8 is a schematic diagram for explaining the server's load versus power characteristic and the execution application selection policy, and shows the relationship between the load amount and power consumption of each of servers #1 to #3. The load amount is, for example, a CPU usage rate of [0-100]%. Note that FIG. 8 shows a schematic diagram of the server's load versus power characteristic, which is different from the actual load versus power characteristic of a server. Details of the server's load versus power characteristic are shown in FIG. 3 described above.

[0051] The left diagram of FIG. 8 shows a load versus power characteristic that achieves power saving only when server #1 is under low load. For this reason, low-load applications are preferentially placed on server #1. The middle diagram of FIG. 8 shows a load versus power characteristic in which the power consumption of server #2 is directly proportional to the load. The right diagram of FIG. 8 shows a load versus power characteristic where the power consumption is high regardless of the load of server #3. For this reason, high-load applications are preferentially placed on server #3.

[0052] The server placement is determined based on the server load-to-power characteristics shown in Figure 8 and the total power consumption over the lifecycle, considering the expected load fluctuations over time for each application, as shown in Figure 4.

[0053] The simplest placement algorithm involves calculating the estimated power consumption over the lifecycle for all application and server combinations included in a single placement request, and selecting the combination with the minimum power consumption. Note that the method for deriving the optimal placement is not limited to this approach. Furthermore, it is possible to reduce the processing load during the search by limiting the number of candidate servers based on factors such as the CPU performance and memory capacity of the servers.

[0054] Figure 9 is a flowchart of the placement determination algorithm. In step S101, the application placement unit 110 receives one or more application placement requests.

[0055] In step S102, the application deployment unit 110 calculates the expected increase in power consumption when deploying to servers. Specifically, the application deployment unit 110 calculates the following equation for all servers and all applications where the applications will be deployed. The variable load(t) represents the load.

[0056]

[0057] In step S103, the application deployment unit 110 calculates the estimated increase in total power consumption for all servers in a given deployment pattern. The variables Ja... represent the power consumption (joules). Set L: [Ja=1,b=1, Ja=2,b=1, Jn=2,b=2, ...] where the applications included in a single application deployment request are a, b,..., n, and the number of elements in set L is m^n (m) when the candidate servers for application deployment are 1, 2, 3,...m. n )

[0058] In step S104, the application deployment unit 110 selects the application deployment pattern (Min. L[ ]) that minimizes the expected increase in power consumption across all servers, and terminates the processing of this flow.

[0059] <Load Prediction> Load prediction will now be explained. In this invention, the accuracy of power consumption increases and the power saving effect increases as more detailed time-series load information of the application is provided. However, depending on the application, it may not be possible to perform detailed load prediction before service operation. In such cases, the server process placement device 100 of this embodiment is given only the minimum and maximum load of the application and calculates the time-allocated power consumption from these. Possible methods for time allocation include (1) evenly allocating the load or (2) allocating the load according to a normal distribution. Here, since it is common practice to estimate the minimum and maximum load amounts as performance specifications during software development and to perform design and testing, it is assumed that obtaining the minimum and maximum load amounts is easier compared to obtaining time-series load information.

[0060] <Equal Distribution from Maximum and Minimum Load> An example of equal distribution from the maximum and minimum load is described. Figure 10 is a table showing the method of equal distribution from the maximum and minimum load. Table 201 on the left of Figure 10 shows the minimum and maximum values ​​for the loads of applications 1 to 3. Step width = (maximum load - minimum load) / time resolution * minimum load + step width × time width. Table 202 on the right of Figure 10 is derived from Table 201 on the left of Figure 10 (white arrow a in Figure 10). For example, in the case of application 2 load, step width = (70 - 10) / 11 = 5.5. By obtaining the above step width = 5.5, the load of application 2 from 0 to 24 [H] can be estimated (Table 202 on the right of Figure 10). The load of applications 1 and 3 can be similarly estimated from 0 to 24 [H].

[0061] <Measurement of Server Characteristics> The measurement of server characteristics will be explained with reference to Figures 2 and 3. Load-to-power consumption characteristics and performance correction coefficients are derived for each server by manual estimation based on the hardware configuration or by actual measurement using benchmark software. In this embodiment, the server load-to-power consumption characteristics (Figure 3) are stored in the Server Load-to-Power Consumption Characteristics DB 153 (Figure 1). The performance correction coefficients are in the Server Performance Correction Table 152 (Figures 1 and 3).

[0062] The method for deriving the performance correction coefficient (Server Performance Correction Table 152) involves checking the performance values ​​(CPU usage, number of processing requests, number of jobs, etc.) under a constant load using benchmark software, and using the difference from an arbitrarily set reference value. For example, if the CPU usage of the reference server is 50% and the CPU usage of the server being measured is 80%, the correction value would be 80 / 50 = 1.6. Here, server information acquisition only needs to be performed once when the server is deployed to the cloud environment, and does not need to be done each time an application is deployed.

[0063] <Necessity of Server Correction> The necessity of server correction is explained below. The application load represented by the load time series data mentioned above is shown using an indicator that does not depend on the performance of the server on which it is executed. For example, the CPU usage when running on a reference server (reference server in Figure 2) is used. On the other hand, even when the same application is run under the same service conditions, the load on each server will differ. For example, when run on a server with high CPU performance, the CPU usage will be low, and conversely, when run on a server with low CPU performance, the CPU usage will be high. To take into account the performance differences between servers and predict the load that will actually be placed on that server, a correction is made according to the unique performance differences of each server.

[0064] Figure 11 is an illustrative diagram illustrating the necessity of server correction. In Figure 11, the width of each block represents a load of 0-100%, and the bidirectional arrows within each block represent the load fluctuation range. The upper part of Figure 11 shows the expected load fluctuation [basic] with a load fluctuation range of 30-60. The result of applying server-specific performance correction (multiplying by correction coefficients ks1, ks2, and ks3, respectively) to this expected load fluctuation [basic] in the upper part of Figure 11 is shown in the lower part of Figure 11, with load fluctuation ranges of 20-50 for server #1, 20-40 for server #2 [high performance], and 50-80 for server #3 [low performance].

[0065] As can be seen from the lower part of Figure 11, even if the load fluctuation range of 30-60 in the original upper part of Figure 11 (predicted load fluctuation [basic]) is the same, the load fluctuation range of each server #1 to #3 differs due to differences in server performance. More importantly, it can also be seen that the load fluctuation range fluctuates in the high-load region (for example, the load fluctuation range of server #3 [low performance] is 50-80).

[0066] [Example of Calculating Load Correction and Estimated Total Power Consumption per Server] This section provides a detailed explanation of how to calculate load correction and estimated total power consumption per server. Figure 12 is an explanatory diagram of the example of calculating load correction and estimated total power consumption per server. The general process involves calculating estimated total power consumption 205 based on application time-series load data [reference] 201, server performance correction table 202, estimated service end date, and current date and time. This will be explained in detail below.

[0067] The application placement unit 110 (Figure 1) of the server process placement device 100 reads application time-series load data [reference] 201 and server performance correction table 202 from the server-application placement information DB 151 (Figure 1) of the storage unit 150 (Figure 1), and obtains corrected application time-series load data [corrected] 203 by multiplying the read application time-series load data by a performance correction coefficient for each server. In Figure 12, the application time-series load data [corrected] 203 is obtained by multiplying the application 1 load of the application time-series load data [reference] 201 by the performance correction coefficient of the server performance correction table 202.

[0068] Meanwhile, the application deployment unit 110 (Figure 1) acquires the server load versus power consumption characteristics 204 stored in the server load versus power consumption characteristics DB 153 (Figure 1).

[0069] The application placement unit 110 calculates the estimated total power consumption 205 based on the corrected application time-series load data [corrected] 203, server load vs power consumption characteristics 204, estimated service end date, and current date and time. The calculation of the estimated total power consumption 205 follows the placement decision algorithm shown in Figure 9. That is, the application placement unit 110 calculates the estimated increase in power consumption at the time of server placement for all servers and all applications to which the applications are placed. In Figure 12, the estimated total power consumption for server #1 is 3 GJ, the estimated total power consumption for server #2 is 5 GJ, and the estimated total power consumption for server #1 is 10 GJ.

[0070] The application deployment unit 110 minimizes the power consumption of the environment even when running long-lifecycle applications by performing an application-server deployment that minimizes the expected total power consumption.

[0071] [Considerations for Running Applications] There are several points to consider regarding running applications. These will be explained in order below.

[0072] <Consideration for Running Applications 1> When estimating power consumption for application deployment, for servers where no applications are running at all, the total power consumption up to the end date is calculated using the application time-series load data corrected for the server, as created according to the flowchart in Figure 5. For servers where one or more applications are already running and causing a load, the application time-series load data for the running applications and the application time-series load data for the newly deployed applications are added together, and the total power consumption is calculated based on the sum of these values.

[0073] Figure 13 shows an example of load calculation when deploying application [B] to server #1, which is already running application [A]. The application deployment unit 110 (Figure 1) of the server process deployment device 100 adds application time-series load data [Application A] 211 and application time-series load data [Application B] 212 (white arrow b in Figure 13) to calculate application time-series load data [A+B] 213. In other words, for servers where one or more applications are already running and causing a load, it is the sum of both values.

[0074] <Consideration of Running Applications 2> The estimated total server consumption is calculated by considering the overlap period between the target application and the already deployed application. Server correction may be applied to the application time series data mentioned above during this calculation.

[0075] Figure 14 shows an example calculation when application [A] is running on server #1. Similar to Figure 12, this is an example of calculating load correction and estimated total power consumption for each server. In this example, since the planned service end date is for the target service [B] (2028 / 3 / 31) > deployed service [A] (2027 / 3 / 31), the operating period of the target service [B] alone is calculated separately.

[0076] In Figure 14, the application deployment unit 110 (Figure 1) calculates the application time-series load data [A + B] 221. Specifically, considering the overlap period between the deployment target application (application time-series load data [A] 222) and the deployed application (application time-series load data [B] 223), the deployment target application (application time-series load data [A] 222) is not used.

[0077] The application deployment unit 110 calculates the estimated total power consumption of server #1 [A+B execution period] 225 (10 GJ) based on the application time-series load data [A+B] 221 (symbol c in Figure 14), its service execution period [A+B] (symbol d in Figure 14), and the server load versus power consumption characteristics 224 (symbol e in Figure 14).

[0078] The application deployment unit 110 calculates the expected total power consumption [B execution period] 226 (4 GJ) of server #1 based on the application time-series load data [B] 223 (symbol f in Figure 14), its service execution period [B] (symbol g in Figure 14), and the server load versus power consumption characteristics 224 (symbol h in Figure 14).

[0079] The application deployment unit 110 adds the estimated total power consumption of server #1 [A + B execution period] 225 (10 GJ) and the estimated total power consumption of server #1 [B execution period] 226 (4 GJ) (indicated by i in Figure 14), and calculates the estimated total power consumption [A + B, B] 227 (14 GJ), which is the estimated total power consumption of server #1.

[0080] <Considerations for Running Applications 3> Figure 14 shows that the estimated total power consumption of server #1 [A + B, B] 227 was calculated. However, it is necessary to calculate the difference from the power consumption before the deployment of application [B]. For this purpose, the estimated total power consumption [During the A execution period] up to the end date of application [B], assuming that deployment was not performed, is calculated.

[0081] Figure 15 shows an example of calculating the total power consumption up to the end date of application [B] when application [A] is running on server #1 and no deployment is performed. This example calculates the total power consumption up to the end date of the deployment target service [B] (the same applies when the end date of the deployment target service [B] < deployed service [A]).

[0082] In Figure 15, the application deployment unit 110 (Figure 1) calculates the estimated total power consumption [A execution period] 228 (8 GJ) of server #1 based on the application time-series load data [A] 222 (symbol j in Figure 15), its service execution period [A] (symbol k in Figure 15), and the server load versus power consumption characteristics 224 (symbol l in Figure 15). The service execution period [-] is the period after the service execution period [A] has ended and nothing is running.

[0083] <Consideration of Running Application 4> In Figure 14, the estimated total power consumption of server #1 [A + B, B] was calculated as 227 (14 GJ), and in Figure 15, the estimated total power consumption of server #1 [During A execution period] was calculated as 228 (8 GJ). From the calculated estimated total power consumption [A + B, B] 227 (14 GJ) and estimated total power consumption [During A execution period] 228 (8 GJ), the increase in power consumption caused by deploying application [B] is calculated.

[0084] Figure 16 is a diagram illustrating a calculation example for determining the increase in power consumption caused by deploying application [B], based on the expected total power consumption [A + B, B] of 227 (14 GJ) when application [A] is running on server #1, and the expected total power consumption [A execution period] of 228 (8 GJ) until the end date of application [B] if deployment is not performed.

[0085] In Figure 16, the application placement unit 110 (Figure 1) calculates the expected increase in total power consumption [increment due to placement of B] 229 (6 GJ) resulting from placing application [B] by subtracting the expected total power consumption [A execution period] 228 (8 GJ) from the expected total power consumption [A + B, B] 227 (14 GJ) (indicated by the symbol m in Figure 16).

[0086] <Consideration of Running Applications 5> The application deployment unit 110 (Figure 1) similarly calculates the increase in total power consumption when an application is added, taking into account the load of applications already running on other servers. The application deployment unit 110 (Figure 1) selects the server with the smallest expected increase in total power consumption as the deployment destination for application [B], in the same manner as described above.

[0087] Figure 17 is a table showing the expected increase in total power consumption [increment due to configuration B] for each server #1 to #3. As shown in Figure 17, the expected increase in total power consumption for server #1 is (6 GJ), for server #2 it is (8 GJ), and for server #3 it is (11 GJ). The application placement unit 110 (Figure 1) selects server #1, which has the smallest expected increase in total power consumption, as the placement destination for the application.

[0088] [Actual Measurement Correction of Application Load Data] The application time-series load data predicted in advance is corrected based on information actually measured on the server (this is called actual measurement correction). When calculating the subsequent deployment application load for a server where one or more applications are running and causing a load, the time-series load data corrected for actual measurements is used. Various correction methods can be taken depending on the nature of the service, but for example, there are methods such as simple updates based on actual measurements or adding the difference between prediction and actual to future data.

[0089] Figure 18 illustrates an example of correcting application load data by overwriting daily information with measured values. We take the example where the application time-series load data [measured] 232 is measured for the application time-series load data [initial forecast] 231 shown in the left figure of Figure 18. The application time-series load data [initial forecast] 231 shown in the left figure of Figure 18 is simply updated with the measured values ​​shown in the right figure of Figure 18, based on the application time-series load data [measured] 232. That is, the data updated based on the application time-series load data [measured] 232 becomes the application time-series load data [measured value correction] 233 shown in the right figure of Figure 18.

[0090] Figure 19 illustrates an example of correcting application load data to actual values ​​by future correction of monthly information. We take the example where the application time-series load data [actual values] 235 is measured for the application time-series load data [initial forecast] 234 shown in the left figure of Figure 19. The difference between the application time-series load data [initial forecast] 234 shown in the left figure of Figure 19 and the application time-series load data [actual values ​​corrected] 236 shown in the right figure of Figure 19 is calculated by adding the difference between the forecast and the actual data to the future data (indicated by p in Figure 19).

[0091] [Hardware Configuration] The server process placement device 100 (Figure 1) according to the above embodiment is implemented by a computer 900 having a configuration such as that shown in Figure 20. Figure 20 is a hardware configuration diagram showing an example of a computer 900 that implements the functions of the server process placement device 100 (Figure 1). The computer 900 has a CPU 901, ROM 902, RAM 903, HDD 904, communication interface (I / F: Interface) 906, input / output interface (I / F) 905, and media interface (I / F) 907.

[0092] The CPU 901 operates based on programs stored in the ROM 902 or HDD 904 and controls various parts of the server process placement device 100 (Figure 1). The ROM 902 stores boot programs executed by the CPU 901 when the computer 900 starts up, as well as programs that depend on the computer 900's hardware.

[0093] The CPU 901 controls input devices 910, such as a mouse or keyboard, and output devices 911, such as a display, via the input / output interface 905. The CPU 901 acquires data from the input devices 910 and outputs the generated data to the output devices 911 via the input / output interface 905. In addition to the CPU 901, a GPU (Graphics Processing Unit) or the like may also be used as a processor.

[0094] The HDD 904 stores programs executed by the CPU 901 and data used by those programs. The communication I / F 906 receives data from other devices via a communication network (e.g., NW (Network) 920) and outputs it to the CPU 901, and also transmits data generated by the CPU 901 to other devices via the communication network.

[0095] The media interface 907 reads a program or data stored in the recording medium 912 and outputs it to the CPU 901 via the RAM 903. The CPU 901 loads the program related to the desired processing from the recording medium 912 onto the RAM 903 via the media interface 907 and executes the loaded program. The recording medium 912 is an optical recording medium such as a DVD (Digital Versatile Disc) or PD (Phase Change Rewritable Disk), a magneto-optical recording medium such as an MO (Magneto Optical Disk), a magnetic recording medium, a conductive memory tape medium, or a semiconductor memory. The HDD 904 and the recording medium 912 correspond to the storage unit 150 in Figure 1.

[0096] For example, when computer 900 functions as a server process placement device 100 (Figure 1) configured as one of the devices according to this embodiment, the CPU 901 of computer 900 realizes the functions of the server process placement device 100 by executing a program loaded on RAM 903. The HDD 904 stores the data in RAM 903. The CPU 901 reads and executes a program related to the target processing from the recording medium 912. Alternatively, the CPU 901 may read a program related to the target processing from another device via a communication network (NW 920).

[0097] [Effect] As described above, the server process placement device 100 (Figure 1) of the server system 1000 (Figure 1) runs applications 21 (Figure 1) placed on servers 20 (#1 to #3) (Figure 1) on those servers (for example, runs the placed applications 21 on those servers permanently until the service ends), and includes an application placement unit 110 (Figure 1) that calculates the expected power consumption for each combination of application and all servers throughout the application lifecycle from the start of the service to the end of the service, and selects the server with the smallest expected power consumption to place the application.

[0098] As described in the problem statement, when there are many applications with short lifecycles, the optimized state is naturally maintained by repeatedly starting and assigning them. However, many applications used by telecommunications carriers have long lifecycles, and restarts or server placement changes may not be acceptable. In this embodiment, even in environments with many applications with long lifecycles, it is possible to maintain optimization by appropriately selecting servers. Specifically, when running long-lifecycle applications in a cloud environment consisting of multiple servers with different power characteristics for application loads, it is possible to reduce (preferably minimize) the power consumption of servers in the cloud environment. Furthermore, even if the application load fluctuates, optimization can be maintained by assigning processes that minimize the total power consumption over the entire operating time.

[0099] The server process placement device 100 (Figure 1) includes an application time-series data generation unit 130 (Figure 1) that generates application time-series load data by allocating the minimum and maximum load of an application over time, and the application placement unit 110 calculates the expected power consumption throughout the lifecycle based on the application time-series load data.

[0100] In this way, even if the service provider does not provide time-series load information for the application, it is possible to generate application time-series load data by allocating the minimum and maximum load of the application over time.

[0101] The server process placement device 100 (Figure 1) has server performance correction information (server performance correction table 152) (Figure 2) which expresses the intrinsic performance of the servers as the difference from a reference value. The application placement unit 110 predicts the load that will actually be placed on the servers based on the server performance correction information and performs a correction according to the intrinsic performance difference of each server.

[0102] By doing this, it is possible to compensate for the performance of multiple servers with different power characteristics under load, and to calculate accurate load-to-power consumption characteristics for each server.

[0103] Furthermore, among the processes described in the above embodiments, all or part of the processes described as being performed automatically can be performed manually, or all or part of the processes described as being performed manually can be performed automatically by known methods. In addition, the processing procedures, control procedures, specific names, and information including various data and parameters shown in the above documents and drawings can be arbitrarily changed unless otherwise specified. Moreover, each component of each illustrated device is a functional concept and does not necessarily have to be physically configured as shown. In other words, the specific forms of distribution and integration of each device are not limited to those shown, and all or part of them can be functionally or physically distributed and integrated in any unit according to various loads and usage conditions.

[0104] Furthermore, each of the above configurations, functions, processing units, and processing means may be implemented in hardware, either partially or entirely, by designing them as integrated circuits, for example. Alternatively, each of the above configurations and functions may be implemented in software that allows the processor to interpret and execute programs that implement each function. Information such as programs, tables, and files that implement each function can be stored in memory, a recording device such as a hard disk or SSD (Solid State Drive), or a recording medium such as an IC (Integrated Circuit) card, an SD (Secure Digital) card, or an optical disc.

[0105] 20 Servers (Servers #1 to #3) 21 Applications (APL) 100 Server Process Deployment Device 110 Application Deployment Unit 120 Server Characteristics Measurement Unit 130 Application Time-Series Data Generation Unit 140 Application Load Data Actual Value Correction Unit 150 Storage Unit 151 Server-Application Deployment Information DB 152 Server Performance Correction Table (Server Performance Correction Information) 153 Server Load vs. Power Consumption Characteristics DB 154 Application Time-Series Load Data DB 1000 Server System

Claims

1. A server process placement device for a server system that executes applications placed on a server, comprising an application placement unit that calculates the expected power consumption for each application and all server combinations throughout the lifecycle of the application from the start of the service to the end of the service, and selects the server with the minimum expected power consumption to place the application on.

2. The server process placement device according to claim 1, comprising an application time-series data generation unit that generates application time-series load data by allocating the minimum and maximum load of the application over time, wherein the application placement unit calculates the expected power consumption expected throughout the lifecycle based on the application time-series load data.

3. The server process placement device according to claim 1, wherein the application placement unit has server performance correction information that expresses the intrinsic performance of a server as a difference from a reference value, and based on the server performance correction information, predicts the load that will actually be placed on the server and performs a correction according to the intrinsic performance difference of each server.

4. A server process deployment method for a server process deployment device that executes an application deployed on a server, the server process deployment device comprising the steps of: calculating the expected power consumption for each application and all servers throughout the lifecycle of the application from the start of the service to the end of the service; and selecting the server with the minimum expected power consumption and deploying the application to it.