Application placement apparatus and application placement method
The application deployment device optimizes CPU core and uncore frequencies to improve power efficiency and reduce power consumption in data centers by placing latency-critical applications on a single CPU node, addressing inefficient resource allocation and underutilization.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- NT T INC
- Filing Date
- 2025-01-10
- Publication Date
- 2026-07-16
AI Technical Summary
Existing server resource utilization rates are low due to strict performance requirements of applications, leading to excessive resource allocation and underutilization, resulting in wasted power consumption and inefficient power management in data centers.
An application deployment device that places latency-critical applications on a single CPU node and sets operating frequencies of CPU cores and uncores to optimize power efficiency, minimizing unused resources and reducing power consumption while meeting performance requirements.
The solution effectively reduces server power consumption while maintaining performance by optimizing CPU core and uncore frequencies and resource allocation, enhancing power efficiency in data centers.
Smart Images

Figure JP2025000722_16072026_PF_FP_ABST
Abstract
Description
Application Deployment Device and Application Deployment Method
[0001] The present invention relates to an application deployment device and an application deployment method for deploying an application on a CPU.
[0002] When multiple applications operate on a single physical server (simply referred to as a server), the resources to be used are allocated to each application. A typical resource is a CPU (Central Processing Unit, CPU core), and the resource utilization rate in a general data center is about 20% to 50%.
[0003] The reason for the low resource utilization rate of the CPU lies in the operation of the server that installs applications with strict performance requirements. To ensure the performance requirements of applications for fluctuating processing requests, excessive resources are allocated, and there are many situations where resources are underutilized during periods with few processing requests.
[0004] Operating the server for a long time in a state of low resource utilization leads to wasted power consumption. Therefore, improving the resource utilization rate is an important issue in addressing the power problems of data centers. For such problems, a method has been proposed to devise the application deployment on the server based on performance requirements to minimize surplus resources. Hereinafter, an application with strict performance requirements will be referred to as an LC (Latency Critical) application. Also, an application with loose or no imposed performance requirements will be referred to as a BE (Best Effort) application or a non-LC application. An LC application can also be regarded as an application that requires or meets a predetermined performance requirement.
[0005] In the technology described in Non-Patent Document 1, the CPU cores for processing LC applications and BE applications are separated. Thereby, while preventing violation of the performance requirements of LC applications due to resource competition, the resource utilization rate is improved. Furthermore, in this technology, the operating frequency (clock frequency) of the CPU core is controlled to achieve power saving.
[0006] Kostis Kaffes, et al., "Leveraging Application Classes to Save Power in Highly-Utilized Data Centers," Proceedings of the 11th ACM Symposium on Cloud Computing, pp. 134-149, 12 October 2020.
[0007] NUMA (Non-Uniform Memory Access) is a server configuration that uses a large number of CPU cores (for example, eight). In NUMA, there are multiple CPU-memory pairs (nodes), and these nodes are connected by interconnects. Access to memory within a node is low latency, but access to memory in other nodes is high latency.
[0008] The technology described in Non-Patent Document 1 does not take such server configurations into consideration, and depending on the allocation of CPU cores to applications, it may lead to performance degradation. Furthermore, while the operating frequency of the CPU cores is controlled, the operating frequency of the uncores (non-CPU core parts within the node) is not controlled, leaving room for further power consumption reduction.
[0009] This invention was made in view of the above background, and aims to reduce server power consumption while meeting the performance requirements of LC applications.
[0010] To solve the aforementioned problems, the application placement device according to the present invention comprises a placement unit that places an LC application, which is an application that satisfies predetermined performance requirements, on a CPU core in one of the multiple nodes provided in the server, and a frequency setting unit that sets the operating frequencies of the CPU cores and uncores in the node to satisfy predetermined conditions, wherein the operating frequencies of CPU cores to which neither the LC application nor non-LC applications are assigned, and the operating frequencies of uncores in nodes to which neither the LC application nor non-LC applications are placed, are minimized.
[0011] According to the present invention, it is possible to reduce the power consumption of a server while meeting the performance requirements of LC applications.
[0012] This is a functional block diagram of the application deployment device according to this embodiment. This diagram illustrates the configuration of the CPU core and memory provided in the server according to this embodiment. This is a data configuration diagram of the deployment information database according to this embodiment. This diagram shows the deployment status from LC1 to BE3 according to this embodiment. This diagram shows the deployment status after the deployment destination of BE1 and BE2 has been changed to node 1 according to this embodiment. This diagram shows the deployment status up to LC3 according to this embodiment. This diagram shows the deployment status up to BE4 according to this embodiment. This diagram shows the deployment status when LC2 is completed according to this embodiment. This diagram shows the deployment status after BE4 has been migrated from node 1 to node 0 according to this embodiment. This diagram shows the deployment status when LC3 is completed according to this embodiment. This diagram shows the deployment status after BE1 and BE2 have been migrated from node 1 to node 0 according to this embodiment. This is an example of setting the operating frequency according to this embodiment. This is a flowchart of the deployment process according to this embodiment. This is a flowchart of the deployment process according to this embodiment. This is a flowchart of the deployment process according to this embodiment. This is a flowchart of the frequency setting process according to this embodiment. This is a hardware configuration diagram showing an example of a computer that realizes the functions of the application deployment device according to the above embodiment.
[0013] <<Overview of Application Deployment Device>> The following describes the overview of the application deployment device in an embodiment for carrying out the present invention. The application deployment device receives an application deployment request and determines which server to deploy the application to from among multiple servers. Next, the application deployment device determines which CPU core the application will use from among the CPU cores installed in the server and deploys the application to use that CPU core. For LC applications, the application deployment device determines to use the CPU cores within one node. Here, a node refers to a NUMA node, and is also referred to as a CPU node.
[0014] The application deployment device also sets the operating frequency of the CPU cores used by LC applications to the maximum. Furthermore, the application deployment device sets the operating frequency of the uncores of nodes used by LC applications to the maximum. The application deployment device sets the operating frequencies of the CPU cores used by BE applications, and the uncores of nodes where LC applications are not deployed, to maximize power efficiency. Power efficiency will be discussed later. Such an application deployment device allows for reduced server power consumption while meeting the performance requirements of LC applications.
[0015] An application is a process, such as a container, that runs on the operating system. An application provides network services, for example, by receiving requests from a terminal and returning the processing results as a response. An application can also be thought of as a virtual machine running on a hypervisor.
[0016] ≪Overall Configuration≫ Figure 1 is a functional block diagram of the application deployment device 100 according to this embodiment. The application deployment device 100 receives a request to deploy (deploy, assign) an application to a server 300 and determines the server 300 to which the application will be deployed. The application deployment device 100 further determines the CPU cores that the application will use on the server 300 to which the application will be deployed (assigns CPU cores to the application).
[0017] ≪Server Configuration≫ Figure 2 is a diagram illustrating the configuration of the CPU cores 311, 321 and memory 313, 323 provided in the server 300 according to this embodiment. The configuration shown in Figure 2 is generally called NUMA. NUMA is composed of a plurality of nodes 310, 320. Node 310 includes four CPU cores 311, an uncore 312, and memory 313. Node 320 includes four CPU cores 321, an uncore 322, and memory 323. CPU cores 311, 321 include L1 cache and L2 cache (not shown) in addition to the CPU cores themselves. Uncores 312, 322 include LLC (Last-Level Cache), memory controller, system bus, etc.
[0018] Nodes 310 and 320 are connected by an interconnect 330 and are capable of data communication. CPU core 311 can access memory 313 within the same node 310 with low latency (high speed), but access to memory 323 in a different node 320 is high latency (low speed). The same applies to CPU core 321; it can access memory 323 with low latency, but access to memory 313 is high latency. For this reason, it is desirable that the CPU cores and memory used by applications be on the same node. The application placement device 100 arranges applications, especially LC applications, to use (multiple) CPU cores on the same node. For LC applications, it is also desirable to arrange them to use memory on the same node.
[0019] Server 300 periodically transmits its resource utilization status to the application deployment device 100. For example, Server 300 periodically transmits the utilization rates of CPU cores, memory, and communication interfaces. Server 300 transmits the utilization status using, for example, IPMI (Intelligent Platform Management Interface). Server 300 may also transmit the number of requests received by applications.
[0020] ≪Configuration of the Application Deployment Device≫ Returning to Figure 1, the configuration of the application deployment device 100 will be explained. The application deployment device 100 is a computer and comprises a control unit 110, a storage unit 120, and a communication unit 180. The communication unit 180 is equipped with a communication device (NIC) and is capable of sending and receiving data with the server 300.
[0021] ≪Application Placement Device: Storage Unit≫ The storage unit 120 is composed of storage devices such as ROM (Read Only Memory), RAM (Random Access Memory), and SSD (Solid State Drive). The storage unit 120 stores the placement information database 130, monitoring data 140, and program 128.
[0022] The monitoring data 140 stores the resource usage status transmitted by the server 300. The program 128 contains a description of the processing to be executed by the functional unit of the control unit 110, which will be described later. The various contents of the storage unit 120 may be stored in an external storage device such as a cloud server and read as needed.
[0023] Figure 3 is a data structure diagram of the deployment information database 130 according to this embodiment. The deployment information database 130 shows the deployment status of applications for each CPU core on each server 300. The deployment information database 130 is, for example, tabular data. One row (record) of the deployment information database 130 shows information about the CPU core and includes columns (attributes) for server, core, node, application identification information, and application type.
[0024] The server attributes stored in the deployment information database 130 are the identification information of the server 300 on which the core is installed. The core attribute is the core's identification number (identification information) in server 300. The node attribute is the identification number (identification information) of the node to which the core belongs. The application identification information (labeled "AP ID" in Figure 3) is the application identification information. The application type (labeled "AP type" in Figure 3) is the type of application, where "LC" indicates an LC application and "BE" indicates a BE application. Note that BE applications are sometimes referred to as non-LC applications.
[0025] The application identification information and application type for CPU cores that are not used (not deployed) by an application are blank or "NULL". The deployment information database 130 may also include the identification number and size attributes of the node to which the memory used by the application belongs.
[0026] ≪Application Placement Device: Control Unit≫ Returning to Figure 1, the control unit 110 will be explained. The control unit 110 includes a CPU and is equipped with a reception unit 111, a server monitoring unit 112, a server selection unit 113, a placement unit 114, and a frequency setting unit 115.
[0027] ≪Control Unit: Reception Unit / Server Monitoring Unit≫ The reception unit 111 receives requests for the deployment (deployment) of applications to the server 300. The requests include the type of application (LC application / BE application), the number of CPU cores used by the application, and the memory size. In particular, for LC applications, the number of CPU cores and memory size required to meet performance requirements are included. The server monitoring unit 112 stores the resource usage status transmitted from the server 300 in the monitoring data 140.
[0028] <Control Unit: Server Selection Unit> The server selection unit 113 selects a server 300 on which to deploy the application. In the case of an LC application, the server selection unit 113 selects a server 300 that has nodes 310 and 320 with available resources for use by the LC application. The server selection unit 113 can understand the resource utilization status by referring to the deployment information database 130. Even if there are no available resources on a node at the time of reference, if the resources for use by the LC application can be secured by migrating the BE application deployed on the node to another node, the server selection unit 113 considers the node to have available resources.
[0029] The server selection unit 113 references the number of CPU cores within the node as a resource. The server selection unit 113 may also reference the memory size within the node. In particular, when determining the placement of an LC application, it is desirable to place it on a node with available CPU cores and memory.
[0030] ≪Control Unit: Deployment Unit≫ The deployment unit 114 determines the node to which the application will be deployed. In the following description, it is assumed that the server 300 has two nodes, node 0 and node 1, and that each node has four CPU cores. The explanation will focus on CPU cores as resources.
[0031] The deployment unit 114 has the following policies for determining the node to which an application will be deployed: (1) Prioritize node 0 as the deployment destination. (2) LC applications should be deployed to one node. It is also desirable that BE applications be deployed to one node. Regarding (1), node 0 is the node that is closest to the communication device (NIC) used for application communication (the node with the greatest access performance).
[0032] The following example shows how to determine the placement of applications in the following order: LC1, BE1, BE2, LC2, BE3, LC3, and BE4. LC1, LC2, and LC3 are LC applications. BE1, BE2, BE3, and BE4 are BE applications. LC3 uses two CPU cores, while the others use one.
[0033] Figure 4 shows the arrangement of LC1 to BE3 according to this embodiment. C0 to C7 represent CPU cores. The placement unit 114 places LC1, BE1, BE2, and LC2 in that order at node 0. At this point, there are no available CPU cores at node 0, so the placement unit 114 places BE3 at node 1.
[0034] Next, the placement unit 114 determines the placement destination for LC3, which uses two CPU cores. There are no available CPU cores at node 0, but migrating BE1 and BE2 to node 1 will create a free CPU core for LC3 to use. Therefore, the placement unit 114 changes the placement destination of BE1 and BE2 to node 1, and then places LC3 at node 0.
[0035] Figure 5 shows the deployment status after changing the deployment destination of BE1 and BE2 to node 1 according to this embodiment. Compared to Figure 4, BE1 and BE2 have been migrated, and their deployment destination has changed from node 0 to node 1. Figure 6 shows the deployment status up to LC3 according to this embodiment. LC3 is deployed to node 0. Figure 7 shows the deployment status up to BE4 according to this embodiment. BE4 is deployed to node 1, which has available resources.
[0036] As explained above, the placement unit 114 prioritizes placing applications on node 0. For LC applications, if it is possible to place them by migrating the BE application already placed on node 0 to node 1, then it will be placed on node 1 with priority over node 0.
[0037] The following describes the application deployment status when LC2 and LC3 are terminated in that order, based on the deployment status shown in Figure 7. Figure 8 shows the deployment status when LC2 is terminated according to this embodiment. Node 0 becomes available. Therefore, the deployment unit 114 migrates the applications deployed on Node 1 to Node 0.
[0038] Figure 9 shows the deployment status after BE4 has been migrated from node 1 to node 0 according to this embodiment. The applications to be migrated are BE applications whose resource usage is less than or equal to the available resources on node 0. There may be multiple applications to be migrated (see Figures 10 and 11 described later).
[0039] Even LC applications may be migrated if they are low-load. Low load means, for example, that the number of requests the application receives per unit time is below a predetermined value, or that the CPU core utilization is below a predetermined value. Also, applications that have a large amount of cache or memory usage, or applications that concentrate the load on cache or memory, may be excluded from migration.
[0040] Figure 10 shows the layout at the end of LC3 according to this embodiment. Node 0 becomes available. Therefore, the placement unit 114 migrates the applications placed on Node 1 to Node 0. Figure 11 shows the layout after BE1 and BE2 have been migrated from Node 1 to Node 0 according to this embodiment.
[0041] ≪Control Unit: Frequency Setting Unit≫ Returning to Figure 1, we will continue the explanation of the control unit 110. The frequency setting unit 115 sets the operating frequencies of the CPU cores 311, 321 and uncores 312, 322 so that the power efficiency of the server 300 is maximized. The frequency setting unit 115 sets the operating frequencies at predetermined timings, for example, periodically, after the application is deployed and after the application is terminated.
[0042] The frequency setting unit 115 has the following guidelines for determining the operating frequency: (1) The operating frequency of the CPU core where the LC application is placed is set to the maximum. (2) The operating frequency of the uncore of the node where the LC application is placed is set to the maximum. (3) The operating frequency of the CPU core where no application is placed is set to the minimum. (4) The operating frequency of the uncore of the node where no application is placed is set to the minimum. (5) The operating frequency of the CPU core where the BE application is placed is set to the frequency at which the power efficiency is maximized. (6) The operating frequency of the uncore of the node where only the BE application is placed is set to the frequency at which the power efficiency is maximized. Regarding (5), the operating frequencies of the CPU cores where the BE application is placed are the same.
[0043] The calculation formula for power efficiency is, for example, (the number of instructions executed by the entire server) / (the power consumption of the CPU core, node, or the entire server). The number of instructions executed by the entire server may be the number of requests processed by the entire application.
[0044] The frequency setting unit 115 uses techniques of combinatorial optimization and machine learning such as Bayesian optimization, genetic algorithms, deep neural networks, reinforcement learning, etc. to determine and set the operating frequency at which the power efficiency is maximized.
[0045] FIG. 12 shows an example of setting the operating frequency according to this embodiment. FIG. 12 shows an example of setting the operating frequency in the application placement situation shown in FIG. 4. The operating frequencies of the cores C0, C6 where the LC application is placed, and the uncore of node 0 where the LC application is placed are the maximum, which is 2000 MHz. The operating frequencies of C3, C5, C7 where no application is placed are the minimum, which is 800 MHz.
[0046] The operating frequencies of C2, C4, C1 where the BE application is placed, and the uncore 322 of node 1 where only the BE application is placed are set so that the power efficiency is maximized. In FIG. 12, the operating frequencies of C2, C4, C1 are 1100 MHz, and the operating frequency of the uncore 322 of node 1 is 1300 MHz.
[0047] <<Configuration Processing>> FIGS. 13, 14, and 15 are flowcharts of the configuration processing according to the present embodiment. While referring to FIGS. 13, 14, and 15, the processing of the placement unit 114 after the reception unit 111 receives a placement request for an application to the server 300 and the server selection unit 113 determines the server 300 on which to place the application will be described. Note that "AP" described in the figure indicates an application. For example, "BE AP" refers to the BE application.
[0048] In step S11, the placement unit 114 starts a process of repeating the processes described in steps S12, S13, S14, and FIGS. 14 and 15. In step S12, if there is a new application for which a placement request has been received (step S12 → YES), the placement unit 114 advances the process to step S21 (see FIG. 14). If there is no new application (step S12 → NO), the placement unit 114 advances the process to step S13.
[0049] In step S13, if there is a terminated application (step S13 → YES), the placement unit 114 advances the process to step S41 (see FIG. 15). If there is no terminated application (step S13 → NO), the placement unit 114 advances the process to step S14.
[0050] In step S14, if a predetermined time has elapsed since the last operating frequency was set (step S14 → YES), the placement unit 114 advances the process to step S46 (see FIG. 15). If the predetermined time has not elapsed since the last operating frequency was set (step S14 → NO), the placement unit 114 returns the process to step S12.
[0051] Proceeding to FIG. 14, the description of the placement process continues. Step S21 is the process when there is a new application (hereinafter referred to as an application) (see step S12 → YES described in FIG. 13).
[0052] In step S21, if the application is an LC application (step S21 → LC), the placement unit 114 proceeds to step S23. If the application is a BE application (step S21 → BE), the placement unit 114 proceeds to step S22.
[0053] In step S22, the placement unit 114 places the application (BE application) on a node with available resources. If there are available resources on node 0, it is placed on node 0. The placement unit 114 then proceeds to step S29.
[0054] In step S23, if the placement unit 114 finds that there are available resources for the application (LC application) to use at node 0 (step S23 → YES), it proceeds to step S28. If the placement unit 114 finds that there are no available resources (step S23 → NO), it proceeds to step S24.
[0055] In step S24, the placement unit 114 searches for a BE application already placed on node 0 that is using more resources than the application itself is using. There may be more than one BE application.
[0056] In step S25, if the placement unit 114 finds a BE application in step S24 (step S25 → YES), it proceeds to step S27. If the placement unit 114 finds no BE application in step S24 (step S25 → NO), it proceeds to step S26.
[0057] In step S26, the placement unit 114 places the application (LC application) on node 1. The placement unit 114 then proceeds to step S29. In step S27, the placement unit 114 migrates the BE application found in step S24 to node 1.
[0058] In step S28, the placement unit 114 places the application (LC application) on node 0. In step S29, the placement unit 114 updates the placement information database 130 according to the latest application placement status. Subsequently, the placement unit 114 proceeds to step S46 (see Figure 15).
[0059] Proceed to Figure 15 and continue the explanation of the placement process. Step S41 is the process to be performed when there are completed applications (hereinafter referred to as applications) (see step S13 → YES in Figure 13).
[0060] In step S41, if the completed application is an application placed on node 0 (step S41 → YES), the placement unit 114 proceeds to step S42. If the completed application is not an application placed on node 0 (step S41 → NO), the placement unit 114 proceeds to step S46.
[0061] In step S42, the placement unit 114 searches for applications located on node 1 that can be migrated to node 0. The applications to be migrated are as described in Figure 9.
[0062] In step S43, if there are applications to be migrated in step S42 (step S43 → YES), the placement unit 114 proceeds to step S44. If there are no applications to be migrated (step S43 → NO), the placement unit 114 proceeds to step S45.
[0063] In step S44, the placement unit 114 migrates the application found in step S42 to node 0. In step S45, the placement unit 114 updates the placement information database 130 according to the latest application placement status. In step S46, the frequency setting process (see Figure 16 below) is executed, and the process returns to step S12 (see Figure 13).
[0064] <Frequency Setting Process> Figure 16 is a flowchart of the frequency setting process according to this embodiment. Step S46 (see Figure 15) will be explained in detail with reference to Figure 16.
[0065] In step S51, the frequency setting unit 115 sets the operating frequency of CPU cores where no application is deployed (empty cores) to the minimum. In step S52, the frequency setting unit 115 sets the operating frequency of uncores of nodes where all CPU cores are empty cores to the minimum.
[0066] In step S53, the frequency setting unit 115 sets the operating frequency of the CPU core on which the LC application is located to the maximum. In step S54, the frequency setting unit 115 sets the operating frequency of the uncore of the node on which the LC application is located to the maximum.
[0067] In step S55, the frequency setting unit 115 calculates the operating frequency for the CPU cores and uncores whose operating frequencies have not been set in steps S51 to S54, in order to maximize power efficiency. In step S56, the frequency setting unit 115 sets the operating frequency calculated in step S55.
[0068] ≪Features of the Application Deployment Device≫ The application deployment device 100 deploys LC applications to use CPU cores within a single node. The application deployment device 100 also sets the operating frequency of the CPU cores used by LC applications and the uncores of the nodes to the maximum. For the CPU cores used by BE applications and the uncores of nodes where LC applications are not deployed, the application deployment device 100 sets the operating frequency to maximize power efficiency. With such an application deployment device, it is possible to reduce the power consumption of the server 300 while meeting the performance requirements of LC applications.
[0069] <Modification: Number of Nodes> In the embodiment described above, the server 300 has two nodes (see Figure 2). The server 300 may have more nodes. In this case, the application deployment device 100 will prioritize deploying applications to nodes with smaller identification numbers, such as node 0 and node 1. It is assumed that nodes with smaller identification numbers have higher access performance to the NIC used by the application for communication.
[0070] <<Variation: Frequency Setting>> In the above embodiment, the CPU core on which the BE application is located is set to the same operating frequency so as to maximize the power efficiency of the server 300. Alternatively, the operating frequency may be set for each BE application so as to maximize power efficiency. Doing so can be expected to further improve power efficiency. On the other hand, there is a risk that the load on the process of determining the operating frequency that maximizes power efficiency (see step S55) will increase.
[0071] <<Modification: Node Priority>> In the embodiment described above, the placement unit 114 prioritizes placing applications on node 0. This is because node 0 is connected to the NIC used by the application for communication, and the distance between the cache (or memory) where the communication data arriving at the NIC is placed and the thread (CPU core) is short, resulting in the best data access performance. Depending on the NIC used in the server 300, there may be no difference in data I / O access performance between nodes. In such cases, the placement unit 114 may place applications according to a predetermined priority order rather than in ascending order of their numbers. For example, if there are four nodes, the placement unit 114 may place applications in the order of node 2, node 1, node 0, and node 3.
[0072] Although several embodiments of the present invention have been described above, these embodiments are merely illustrative and do not limit the technical scope of the present invention. The present invention can take various other embodiments, and furthermore, various modifications such as omissions and substitutions can be made without departing from the spirit of the invention. These embodiments and their variations are included in the scope and spirit of the invention as described herein and elsewhere, as well as in the scope of the invention and its equivalents as described in the claims.
[0073] ≪Hardware Configuration≫ The application placement device 100 according to the above embodiment is implemented by a computer 900 having a configuration such as that shown in Figure 17. Figure 17 is a hardware configuration diagram showing an example of a computer 900 that implements the functions of the application placement device 100 according to the above embodiment. The computer 900 includes a CPU 901, ROM 902, RAM 903, SSD 904, and an input / output interface 905 (labeled as input / output I / F (Interface) in Figure 17). Furthermore, the computer 900 includes a communication interface 906 (labeled as communication I / F in Figure 17) and a media interface 907 (labeled as media I / F in Figure 17). The computer 900 may have an HDD (Hard Disk Drive) instead of an SSD 904, or it may have an HDD in addition to the SSD 904.
[0074] The CPU 901 operates based on programs stored in the ROM 902 or SSD 904 and is controlled by the control unit 110 in Figure 1. The ROM 902 stores boot programs executed by the CPU 901 when the computer 900 starts up, as well as programs related to the computer 900's hardware.
[0075] The CPU 901 controls input devices 910, such as a mouse and keyboard, and output devices 911, such as a display and printer, 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.
[0076] The SSD 904 stores programs executed by the CPU 901 and data used by those programs. The communication interface 906 receives data from other devices (e.g., server 300) not shown via the communication network and outputs it to the CPU 901, and also transmits data generated by the CPU 901 to other devices via the communication network.
[0077] 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 from the recording medium 912 onto the RAM 903 via the media interface 907 and executes the loaded program. The recording medium 912 can be an optical recording medium such as a DVD (Digital Versatile 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.
[0078] For example, when the computer 900 functions as the application placement device 100 according to the above embodiment, the CPU 901 of the computer 900 realizes the function of the application placement device 100 by executing the program 128 (see Figure 1) loaded on the RAM 903. The CPU 901 reads the program from the recording medium 912 and executes it. In addition, the CPU 901 may read the program from another device via a communication network, or it may install the program 128 from the recording medium 912 onto the SSD 904 and execute it.
[0079] <<Effects>> The effects of the application placement device 100 are described below.
[0080] The application placement device 100 according to the above embodiment includes a placement unit 114 that places an LC application, which is an application that satisfies predetermined performance requirements, on a CPU core in one of the multiple nodes 310, 320 (see Figure 2) provided in the server 300. The application placement device 100 also includes a frequency setting unit 115 that sets the operating frequencies of the CPU cores 311, 321 and uncores 312, 322 in nodes 310, 320 to satisfy predetermined conditions. The predetermined conditions are that the operating frequency of CPU cores to which no LC applications or non-LC applications are assigned, and the operating frequency of the uncores 312, 322 in nodes 310, 320 to which no LC applications or non-LC applications are placed, are at their minimum.
[0081] With such an application placement device 100, LC applications are placed on CPU cores 311 and 321 within a single node 310 or 320. Furthermore, the operating frequency of CPU cores 311 and 321 on which no applications are placed, and the uncore operating frequency of nodes where no applications are placed on any of the CPU cores 311 or 321, are minimized. As a result, the power consumption of the server 300 can be reduced while meeting the performance requirements of the LC applications.
[0082] When the deployment unit 114 according to the above embodiment deploys a new non-LC application to nodes 310 and 320, it searches for and deploys CPU cores 311 and 321 that do not have LC applications or non-LC applications deployed to them, in a predetermined order of node priority. When the deployment unit 114 deploys a new LC application to a node, it searches in order of node priority, and if the resources used by a migration candidate, which is a non-LC application already deployed to a first node where an existing LC application or non-LC application is deployed, are greater than or equal to the resources used by the new LC application, it migrates the migration candidate to a second node with a lower node priority than the first node, and deploys the new LC application to the first node. When there are no migration candidates, the deployment unit 114 searches for and deploys CPU cores that do not have LC applications or non-LC applications deployed to them, in order of node priority.
[0083] With such an application placement device 100, applications are placed according to a predetermined node priority order, and the number of nodes where no applications are placed increases. Consequently, the power consumption of the server 300 can be reduced.
[0084] The frequency setting unit 115 according to the above embodiment sets the operating frequency of the CPU core on which the LC application is located to the maximum. The frequency setting unit 115 sets the operating frequency of the uncore of the node including the CPU core on which the LC application is located to the maximum. The frequency setting unit 115 sets the operating frequency of the CPU core on which the non-LC application is located, and the operating frequency of the uncore of the node including only the CPU core on which the non-LC application is located, to maximize power efficiency.
[0085] With such an application placement device 100, the operating frequency of the CPU cores and nodes where LC applications are placed is maximized, reducing factors that degrade the performance of LC applications. Furthermore, non-LC applications can be improved while reducing power consumption.
[0086] 100 Application deployment device 111 Reception unit 112 Server monitoring unit 113 Server selection unit 114 Deployment unit 115 Frequency setting unit 130 Deployment information database 140 Monitoring data 300 Server 310, 320 Node 311, 321 CPU core 312, 322 Uncore
Claims
1. An application placement device comprising: a placement unit that places an LC application, which is an application that satisfies predetermined performance requirements, on a CPU core in one of several nodes provided in a server; and a frequency setting unit that sets the operating frequencies of the CPU cores and uncores in the node to satisfy predetermined conditions, wherein the predetermined conditions are that the operating frequencies of CPU cores to which neither the LC application nor non-LC applications are assigned, and the operating frequencies of uncores in nodes to which neither the LC application nor non-LC applications are placed, are minimized.
2. The application placement device according to claim 1, wherein when a new non-LC application is placed on the node, the placement unit searches for and places a CPU core on which neither the LC application nor the non-LC application is placed, in a predetermined order of node priority; when a new LC application is placed on the node, it searches in order of node priority, and if the resources used by a migration candidate, which is an existing LC application or a non-LC application already placed on a first node where a non-LC application is placed, are greater than or equal to the resources used by the new LC application, it migrates the migration candidate to a second node with a lower node priority than the first node, and places the new LC application on the first node; and when there are no migration candidates, it searches for and places a CPU core on which neither the LC application nor the non-LC application is placed, in a predetermined order of node priority.
3. The application placement device according to claim 1, wherein the frequency setting unit sets the operating frequency of the CPU core on which the LC application is placed to the maximum, the uncore operating frequency of the node including the CPU core on which the LC application is placed to the maximum, and the operating frequency of the CPU core on which the non-LC application is placed, and the uncore operating frequency of the node including only the CPU core on which the non-LC application is placed, in a manner that maximizes power efficiency.
4. An application placement method comprising: an application placement device placing an LC application, which is an application that satisfies predetermined performance requirements, onto a CPU core in one of several nodes provided in a server; and setting the operating frequencies of the CPU cores and uncores in the node to satisfy predetermined conditions, wherein the predetermined conditions are that the operating frequencies of CPU cores to which neither the LC application nor non-LC applications are assigned, and the operating frequencies of uncores in nodes to which neither the LC application nor non-LC applications are placed, are minimized.