Information processing device, information processing method, and program
The information processing device addresses bandwidth congestion issues by monitoring and adjusting CPU-device interface bandwidth through logical resource management and computational unit control, enhancing application performance and throughput.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- NIPPON TELEGRAPH & TELEPHONE CORP
- Filing Date
- 2022-06-16
- Publication Date
- 2026-06-23
Smart Images

Figure 0007878410000001 
Figure 0007878410000002 
Figure 0007878410000003
Abstract
Description
Technical Field
[0001] The present invention relates to an information processing apparatus, an information processing method, and a program for adjusting the usage amount of the bandwidth of an interface between devices in the orchestration of containers and virtual machines.
Background Art
[0002] In recent years, in server farms such as data centers, it has become common to construct and operate a virtualization infrastructure. A virtualization infrastructure refers to a virtual environment that abstracts and hides physical resources such as servers and networks using virtualization technology and prepares them as a common infrastructure for a plurality of applications and services, and a system that manages those virtual environments.
[0003] As open-source virtualization infrastructures, OpenStack, which is software for constructing a cloud environment, and Kubernetes, which is software for operating and managing containerized workloads and services, are known. OpenStack is mainly used for the management and operation of physical machines and virtual machines (VMs). Kubernetes is mainly used for the management and operation of containers. These software are called orchestration software.
[0004] Generally, an application executed in a VM or a container requests an amount of physical resources from an orchestrator (a functional unit that manages a server group composed of a plurality of physical servers). For example, the application requests the orchestrator how much resource amount is required, such as "3 cores" for the CPU (Central Processing Unit), "4 GB" for the memory, and "1 unit" for the GPU (Graphics Processing Unit). The orchestrator finds a server that satisfies the requested conditions among the available server groups and allocates a VM or a container to the found server.
[0005] For example, in Kubernetes, which manages containers, when deploying a Pod containing a container, the required amount of resources (CPU, memory, devices, etc.) is described in a manifest file, and the amount of resources allocated to the Pod is managed (see Non-Patent Literature 1). This makes it possible for Kubernetes to limit allocations to prevent exceeding the available resources. [Prior art documents] [Non-patent literature]
[0006] [Non-Patent Document 1] Kubernetes, “GPU scheduling”, [online], [Accessed May 25, 2022], Internet<URL:https: / / kubernetes.io / ja / docs / tasks / manage-gpus / scheduling-gpus / > [Overview of the Initiative] [Problems that the invention aims to solve]
[0007] However, orchestration software cannot limit the bandwidth of the connection interface (sometimes referred to as "connection IF") that connects the CPU and devices as a resource. These devices include, for example, GPUs, FPGAs (Field Programmable Gate Arrays), ASICs (Application Specific Integrated Circuits), and NICs (Network Interface Cards).
[0008] For example, consider the bandwidth of PCIe (Peripheral Component Interconnect Express), which is currently commonly used as an interface connecting the CPU and devices. PCIe bandwidth may be shared by multiple devices connected to the CPU, and the available bandwidth changes depending on the communication status of each device. Therefore, it is not possible to allocate PCIe bandwidth to each device as an independent resource amount, like the CPU or memory. Consequently, PCIe bandwidth is not treated as a resource amount and is not managed.
[0009] Furthermore, when many devices are connected to the CPU, the bandwidth of the connection interface becomes insufficient, leading to increased competition at the switch and a decrease in the throughput of multiple applications. In other words, when many devices are connected to the CPU, communication with the CPU competes with other devices, causing congestion similar to that of a network. As a result, performance is limited by the bandwidth of the connection interface rather than the performance of the devices themselves, leading to a decrease in the performance of applications that utilize the devices and making it impossible to guarantee performance.
[0010] In view of these points, the present invention has been made, and its objective is to suppress the degradation of application performance caused by the congestion of bandwidth in the connection interface connecting the CPU and the device. [Means for solving the problem]
[0011] The information processing device according to the present invention is an information processing device capable of executing either a container or a virtual machine application, comprising: a CPU; a connection interface for connecting a plurality of devices to the CPU; a monitoring unit for monitoring whether the bandwidth usage of the connection interface exceeds an upper limit; and an adjustment unit for adjusting the bandwidth usage when the usage exceeds the upper limit, wherein a logical resource amount is defined for the bandwidth, and an allocation ratio linked to the devices is set based on the logical resource amount. The device can adjust the bandwidth usage of the connection interface by controlling the throughput of the device, and the minimum change in computational performance due to control that reduces the number of computational units is different from the minimum change in computational performance due to control that lowers the operating clock, and the device has a threshold value at which the amount of change when the setting value with the smaller minimum change is lowered is equal to the amount of change when the setting value with the larger minimum change is lowered, and a priority setting is made which of the control that reduces the number of computational units and the control that lowers the operating clock is to be prioritized.The adjustment unit controls the bandwidth usage to reduce the amount of bandwidth used when the bandwidth usage ratio is higher than the allocation ratio. To that end, if the usage exceeds the upper limit, at least one of the following is performed: a control to reduce the number of arithmetic units, and a control to lower the operating clock. The setting value with the smaller minimum change range is gradually lowered, and when the amount of change of the setting value with the smaller minimum change range reaches the threshold, the setting value of the preferred setting is lowered, and the other setting value is returned to its initial state. [Effects of the Invention]
[0012] According to the present invention, it is possible to suppress the degradation of application performance caused by bandwidth constraints on the connection interface connecting the CPU and the device. [Brief explanation of the drawing]
[0013] [Figure 1] This figure shows the overall configuration of the information processing system according to this embodiment. [Figure 2] This table shows the range of logical resources that can be set for the bandwidth of the connection interface. [Figure 3] This table shows the allocation ratio of logical resources. [Figure 4] This is an example of a flowchart (first device) of the information processing method according to this embodiment. [Figure 5] This is an example of a flowchart (second device) of the information processing method according to this embodiment. [Figure 6] This is an example of a flowchart (second device) of the information processing method according to this embodiment. [Figure 7] This is a list of parameters to be set in the combination adjustment process. [Figure 8] This is an example of a flowchart (second device) of the information processing method according to this embodiment. [Figure 9] This diagram shows the overall configuration of the information processing system related to the modification. [Figure 10] This hardware configuration diagram shows an example of a computer that implements the functions of the information processing device according to this embodiment. [Modes for carrying out the invention]
[0014] <Summary of the Invention> First, the outline of the processing of the present invention will be described. In the present invention, the amount of logical resources is defined in advance for the bandwidth of a connection IF (for example, PCIe) possessed by a server that constructs a virtualization infrastructure. The amount of logical resources is, for example, a value based on the specifications of the server and is a number without a unit (a dimensionless number). Also, an allocation ratio associated with a device is set for the defined amount of logical resources. The allocation ratio is, for example, such that the ratio of distributing the amount of logical resources to each device can be understood. A value that enables calculation of the allocation ratio may be set, and the allocation ratio may be calculated as necessary. Then, when an application is executed and the usage amount of the bandwidth exceeds the upper limit (when the actual effective bandwidth reaches the upper limit), the usage amount of the bandwidth is adjusted based on the allocation ratio. Note that the devices connected to the CPU via the connection IF are not limited to those possessed by its own server and may be connected via a network. That is, it is possible to adjust the bandwidth including devices provided in other apparatuses.
[0015] Next, a mode for implementing the present invention (hereinafter referred to as "the present embodiment") will be described. <Configuration of Information Processing System> The configuration of the information processing system 1 according to the present embodiment will be described. FIG. 1 is a diagram showing the overall configuration of the information processing system 1 according to the present embodiment. The information processing system 1 includes a plurality of servers 10 (10A, 10B, 10C) which are physical resources, and a management device 20 communicatively connected to the servers 10. The information processing system 1 is managed by an orchestration software (for example, Kubernetes) designed to perform operation management and automation of containers or virtual machines (VMs). The orchestration software virtualizes physical resources (here, the servers 10) by virtualization technology and provides applications by virtualization resources (such as containers and VMs) set on each server 10. The server 10 is an example of an "information processing device".
[0016] The server 10 includes a CPU 11, a device 12, and a connection IF 13. Device 12 is, for example, a GPU, FPGA, ASIC, NIC, etc. The connection interface (Device IF) 13 connects Device 12 to CPU 11. The connection interface 13 is, for example, PCIe, etc.
[0017] CPU 11 is connected to Device 12 via connection interface 13. For example, the CPU 11 of "Server A", which is the first server 10A, is connected to "Device A-1", which is the first Device 12, and "Device A-2", which is the second Device 12, via connection interface 13. Also, the CPU 11 of "Server B", which is the second server 10B, is connected to "Device B-1", which is the first Device 12, and "Device B-2", which is the second Device 12, via connection interface 13. Also, the CPU 11 of "Server C", which is the third server 10C, is connected to "Device C-1", which is the first Device 12, and "Device C-2", which is the second Device 12, via connection interface 13.
[0018] As shown in FIG. 9, CPU 11 may also be connected to Device 12 provided in other servers 10 via connection interface 13 and the network. In the configuration shown in FIG. 9, the CPU 11 of "Server A", which is the first server 10A, is connected to "Device A-1", which is the first Device 12 it has, and "Device A-2", which is the second Device 12, via connection interface 13, and is also connected to "Device B-1", which is the first Device 12 of "Server B", which is the second server 10B, and "Device B-2", which is the second Device 12, via the network.
[0019] As shown in FIG. 1, server 10 also includes a monitoring unit 14 and an adjustment unit 15. The monitoring unit 14 and the adjustment unit 15 are realized by program execution processing of orchestration software.
[0020] The monitoring unit 14 monitors the bandwidth usage of the connection interface 13. For example, the monitoring unit 14 can monitor the bandwidth usage of the connection interface 13 on a per-device basis. If the bandwidth usage (effective bandwidth) of the connection interface 13 exceeds the performance limit of the connection interface 13 (or if there is a risk of exceeding the performance limit), the monitoring unit 14 notifies the adjustment unit 15 that the limit has been exceeded.
[0021] The adjustment unit 15 controls the amount of bandwidth used (effective bandwidth) of the connection IF 13 when it exceeds the performance limit of the connection IF 13 (or when it is likely to exceed the performance limit).
[0022] Here, a logical resource amount is defined for the bandwidth of connection IF13. The logical resource amount is a parameter that can be set by, for example, the administrator of information processing system 1, and has a minimum and maximum value. The administrator sets a value within that range based on the specifications of server 10 (in particular, the specifications of connection IF13).
[0023] For example, based on the information shown in Figure 2, the administrator sets the logical resource amount. Figure 2 is a table showing the range of logical resource amounts that can be set for the bandwidth of connection IF13, and integer values within the range of "1 to 10" can be set as the logical resource amount. The logical resource amount set for the bandwidth of connection IF13 may be a relative value (relative performance ratio) based on a specific server, for example, in which case the logical resource amount is a unitless number (dimensionless number). If the specifications of the servers 10 are the same, the logical resource amount may be a default value. The logical resource amount is registered, for example, in the management unit 21 of the management device 20. Here, let's assume that the maximum value "10" has been set as the logical resource amount for the bandwidth of connection IF13 of the first server 10A, "Server A".
[0024] Furthermore, the application creator (referred to as the "user") sets the allocation ratio associated with device 12. The allocation ratio is set based on the amount of logical resources configured for the bandwidth of connection IF 13. Alternatively, a value that can be calculated for the allocation ratio can be set, and the allocation ratio can be calculated as needed.
[0025] An example of an allocation ratio is shown in Figure 3. Figure 3 is a table showing the allocation ratio of logical resource amounts. The table shown in Figure 3 has the following items: "Application Name," "Device Type," and "IF Bandwidth Setting Resource Amount." The table shown in Figure 3 is registered in the management unit 21. For example, each application can register its own information, and when deployed, the application notifies the management unit 21 of its own information (it may notify only some of the information).
[0026] The "App Name" is information that identifies the application. Figure 3 shows that the first application, "App-α," and the second application, "App-β," are registered.
[0027] The "device type" refers to information about the types of devices used by the application. In Figure 3, device type "X,Y" is registered as the device used by the first application, "App-α," and device type "Z" is registered as the device used by the second application, "App-β." The device type is information that can distinguish between devices such as GPUs, FPGAs, ASICs, and NICs.
[0028] The "IF Bandwidth Configuration Resource Amount" is information regarding the bandwidth of the connection IF13 used by the application. In Figure 3, "3" is registered as the logical resource amount for device type "X" used by the first application "App-α", "4" is registered as the logical resource amount for device type "Y" used by the first application "App-α", and "3" is registered as the logical resource amount for device type "Z" used by the second application "App-β". The "IF Bandwidth Logical Resource Amount" is set based on the range of logical resources in Figure 2. When the container is deployed to server 10, the bandwidth registered as the "IF Bandwidth Configuration Resource Amount" is allocated to device 12.
[0029] Note that if the specifications of each server 10 are the same, you may not set the logical resource amount based on Figure 2 (i.e., set a default value as the logical resource amount), and instead only set the allocation ratio of the logical resource amount shown in Figure 3. Setting the logical resource amount for the bandwidth of each server 10 based on Figure 2 is done when it is assumed that there are differences in the specifications of each server 10.
[0030] The adjustment unit 15 of the server 10 shown in Figure 1 controls the bandwidth usage of devices where the bandwidth usage ratio is higher than the allocation ratio, so as to reduce the amount of bandwidth used. The comparison between the bandwidth usage ratio and the allocation ratio can be performed on a device-by-device basis.
[0031] (Explanation of the process for comparing usage ratio and allocation ratio on a per-device basis) The adjustment unit 15 calculates the allocation ratio per device based on the "configured resource amount of IF bandwidth". For example, assuming that "App-α" and "App-β" are to be executed on a certain server 10, the adjustment unit 15 calculates an allocation ratio of "3 / 10 (30%)" for device 12 of device type "X" used in "App-α", an allocation ratio of "4 / 10 (40%)" for device 12 of device type "Y" used in "App-α", and an allocation ratio of "3 / 10 (30%)" for device 12 of device type "Z" used in "App-β". The adjustment unit 15 also obtains the bandwidth usage amount for each device 12 from the monitoring unit 14, calculates the usage ratio, and compares it with the allocation ratio of the device 12 to determine which devices 12 have a usage ratio higher than their allocation ratio. The adjustment unit 15 then controls the bandwidth usage of the devices 12 that it has determined to have a usage ratio higher than their allocation ratio to be reduced.
[0032] Next, the management device 20 will be described. As shown in Figure 1, the management device 20 includes a management unit 21. The management unit 21 is implemented by programmatically executing orchestration software. The management unit 21 controls applications running on virtualized resources (containers, VMs, etc.). Virtualized resources are configured on each server 10.
[0033] The application requests the amount of physical resources from the management unit 21. For example, the application requests from the management unit 21 how much physical resources are needed, such as "3 CPU cores", "4GB" of memory, and "1" GPU. Furthermore, the application requests the amount of logical resources from the management unit 21. For example, the application requests the management unit 21 how much logical resources are needed on a per-device basis, such as "3 (when App-α requests the amount of logical resources for device 12 of device type "X")" or "4 (when App-α requests the amount of logical resources for device 12 of device type "Y")" for the bandwidth of the connection IF13.
[0034] The management unit 21 finds a server 10 among the available servers that meets the requested physical and logical resource requirements, and assigns a VM or container to the found server 10. After the VM or container is deployed to server 10, the application is executed. While the application is running, the monitoring unit 14 monitors the bandwidth usage of the connection interface 13, and the adjustment unit 15 adjusts the bandwidth usage if it exceeds the upper limit. The adjustment unit 15 sends and receives information necessary to adjust the bandwidth usage to and from the management unit 21.
[0035] <Processing to adjust bandwidth usage in information processing systems> Next, the flow of the bandwidth usage adjustment process executed by the information processing system 1 according to this embodiment will be described. The process for adjusting the bandwidth usage of connection IF13 should be selected according to the method configurable for device 12. <1> A device (referred to as "the first device") that allows direct adjustment of the bandwidth usage of connection IF13 by changing the settings of device 12. <2> The process of adjusting bandwidth usage will be explained by dividing it into cases where the bandwidth usage of connection IF13 can be indirectly adjusted by controlling the throughput of device 12 (referred to as the "second device").
[0036] <1> Adjustment process for a device (first device) that allows direct adjustment of the bandwidth usage of connection IF13 by changing the settings of device 12. If the setting value of the device 12 itself is equal to the bandwidth of the connection IF 13 it uses, such as with a network interface card (NIC), or if the device 12 allows the bandwidth of the connection IF 13 to be directly configured, the bandwidth usage of the connection IF 13 is adjusted by changing the settings of the device 12. The adjustment unit 15 controls the first device 12 to reduce the available bandwidth when the bandwidth usage of the connection IF 13 exceeds the upper limit. This reduces the amount of data input via the NIC, for example, and therefore inevitably reduces the amount of data flowing to the connection IF 13.
[0037] Referring to Figure 4 (and Figures 1 to 3 as appropriate), the bandwidth adjustment process for the first device 12 will be described. Figure 4 is an example of a flowchart of the information processing method according to this embodiment (first device).
[0038] The management unit 21 of the management device 20 sets the amount of logical resources to be allocated when deploying containers (step S11). For example, assuming that "App-α" and "App-β" will be run on the first server 10A, "Server A", the management unit 21 allocates a logical resource amount of "3" to device 12 of device type "X" used for "App-α", a logical resource amount of "4" to device 12 of device type "Y" used for "App-α", and a logical resource amount of "3" to device 12 of device type "Z" used for "App-β". Then, the applications are executed based on the allocated logical resources.
[0039] After the application starts running, the monitoring unit 14 of the server 10 checks the bandwidth usage on both the transmitting and receiving sides of the connection IF 13 (step S12). In Figure 4, the bandwidth usage on the transmitting side is denoted as "tx" and the bandwidth usage on the receiving side is denoted as "rx". Next, the monitoring unit 14 determines whether the bandwidth usage on either the transmitting or receiving side has reached the performance limit (step S13). If the performance limit has not been reached ("No" in step S13), no conflict has occurred, so no adjustment is made, and the process proceeds to step S12 to continue checking the bandwidth usage.
[0040] On the other hand, if the performance limit is reached (Yes in step S13), the adjustment unit 15 of the server 10 compares the allocation ratio and the usage ratio and reduces the available bandwidth of the connection IF 13 for the first device 12 whose usage ratio is high (step S14). For example, if the allocation ratio of the first device 12 used in "App-α" is "3 / 10 (30%)" but the usage ratio is "4 / 10 (40%)", the bandwidth available to the first device 12 is reduced. Then, the process proceeds to step S12 to continue checking the bandwidth usage.
[0041] <2> Adjustment process for a second device that can indirectly adjust the bandwidth usage of connection IF 13 by controlling the throughput of device 12. If device 12 is a computing device such as a GPU, FPGA, or ASIC, the bandwidth usage of connection IF 13 is adjusted by controlling the processing throughput. If the bandwidth usage of connection IF 13 exceeds the upper limit, the adjustment unit 15 performs at least one of the following: reducing the number of computing units of the second device 12, or lowering the operating clock. This reduces the amount of data to be processed, and therefore inevitably reduces the amount of data flowing to connection IF 13.
[0042] Referring to Figures 5 and 6 (and Figures 1 to 4 as appropriate), the bandwidth adjustment process for the second device 12 will be described. Figures 5 and 6 are examples of flowcharts (second device) of the information processing method according to this embodiment.
[0043] The processing in steps S21 to S23 in Figure 5 is the same as the processing in steps S11 to S13 in Figure 4. Therefore, the explanation of the processing in these steps will be omitted. If the performance limit has been reached in the determination in step S23 ("Yes" in step S23), the adjustment unit 15 of the server 10 compares the allocation ratio and the usage ratio and reduces the number of executable computing units of the second device 12 whose usage ratio is high (step S24). For example, if the allocation ratio of the second device 12 used in "App-α" is "3 / 10 (30%)" and the usage ratio is "4 / 10 (40%)", the number of executable computing units of the second device 12 will be reduced. Then, the process proceeds to step S22 to continue checking the bandwidth usage.
[0044] The processing in steps S31 to S33 in Figure 6 is the same as the processing in steps S11 to S13 in Figure 4. Therefore, the explanation of the processing in these steps will be omitted. If the performance limit is reached in the determination in step S33 (Yes in step S33), the adjustment unit 15 of the server 10 compares the allocation ratio and the usage ratio and lowers the operating clock of the second device 12 whose usage ratio is high (step S34). For example, if the allocation ratio of the second device 12 used in "App-α" is "3 / 10 (30%)" and the usage ratio is "4 / 10 (40%)", the operating clock of the second device 12 will be lowered. Then, the process proceeds to step S32 to continue checking the bandwidth usage.
[0045] Furthermore, if device 12 is a computing device such as a GPU, FPGA, or ASIC, the adjustment unit 15 may perform a process that combines control to reduce the number of computing units of the second device 12 and control to lower the operating clock.
[0046] Referring to Figures 7 and 8 (and Figures 1 to 6 as appropriate), the combination-based bandwidth adjustment process for the second device 12 will be described. Figure 7 is a list of parameters set in the combination-based adjustment process. Figure 8 is an example of a flowchart of the information processing method (second device) according to this embodiment.
[0047] Here, let's assume the computing device has, for example, an operating frequency of around "1.5GHz" and approximately "108" computing units. The operating clock can often be set in "100MHz" increments, and the minimum change associated with the setting is about "5-10%". Also, assuming an "NVIDIA Multi-Instance GPU", the minimum change associated with the setting of the number of computing units is about "15%".
[0048] The "threshold" parameter shown in Figure 7 is the value at which the change in computational performance due to the minimum change in operating clock is equal to the change in computational performance due to the minimum change in the number of computational units. For example, if the minimum change in operating clock is "5%" and the minimum change in the number of computational units is "15%", then the threshold is "15%".
[0049] The parameter "Setting Value A" is the setting value with the smaller minimum change range that can be set using either the operating clock or the number of arithmetic units. In this case, the minimum change range for the operating clock is smaller, so Setting Value A is the setting value for the operating clock.
[0050] The parameter "Setting Value B" is the setting value that has a larger minimum change range, either for the operating clock or the number of arithmetic units. In this case, the minimum change range for the number of arithmetic units is larger, so Setting Value B is the setting value for the number of arithmetic units.
[0051] The "Priority Settings" parameter indicates whether to reduce the operating clock or the number of compute units in specific situations. Here, the smaller the minimum configurable change (operating clock), the finer the granularity of bandwidth usage adjustments, minimizing the impact on performance. Then, in the case of setting changes exceeding a threshold, the bandwidth usage is adjusted based on pre-configured priority settings (e.g., number of compute units) to minimize the impact on performance according to the application characteristics. Details of the priority setting process are shown in Figure 8.
[0052] The processes in steps S41 to S43 in Figure 8 are the same as the processes in steps S11 to S13 in Figure 4. Therefore, the explanation of these steps will be omitted. If the performance limit has been reached in the determination in step S43 (Yes in step S43), the adjustment unit 15 of the server 10 compares the allocation ratio and the usage ratio to identify the second device 12 whose usage ratio is high (step S44).
[0053] Next, the adjustment unit 15 determines whether a setting change has already been made to the confirmed second device 12 and whether the threshold will be reached when the setting is lowered next (step S45). If the answer in step S45 is "No", the adjustment unit 15 lowers the setting with the smaller minimum change range based on the parameter "setting value A" (step S46). On the other hand, if the answer in step S45 is "Yes", the adjustment unit 15 lowers the setting value based on the priority setting and returns it to the value that is not the priority setting (step S47).
[0054] For example, when bandwidth usage first reaches its upper limit, the operating clock is reduced to adjust bandwidth usage, resulting in a minimum performance decrease of 5%. When bandwidth usage next reaches its upper limit, reducing performance will not reach the threshold of 15%, so the operating clock is further reduced to adjust bandwidth usage, resulting in a minimum performance decrease of 5% and a total change of 10%. When bandwidth usage reaches its upper limit again, reducing performance will reach the threshold of 15%, so the number of processing units is reduced to adjust bandwidth usage, and the operating clock setting is restored to eliminate the performance decrease caused by the operating clock. As a result, performance decreases by a minimum performance decrease of 15% due to the setting of the number of processing units. When bandwidth usage reaches its upper limit again, reducing performance will not reach the threshold of 15% (because the operating clock setting has been restored), so the operating clock is reduced to adjust bandwidth usage, resulting in a minimum performance decrease of 5% and a total change of 20%. Furthermore, by setting the operating clock as the priority setting, it is possible to constantly adjust the bandwidth usage based on the operating clock setting. This allows for fine-grained adjustment of bandwidth usage and enables setting changes to suit the characteristics of the application. For example, it can meet the requirement that the operating clock should not be lowered more than necessary due to the characteristics of the application.
[0055] <Hardware Configuration> The server 10 (information processing device) according to this embodiment is implemented by a computer 900 having a configuration such as that shown in Figure 10. Figure 10 is a hardware configuration diagram showing an example of a computer 900 that implements the functions of the server 10 (information processing device) according to this embodiment. The computer 900 has a CPU 901, ROM (Read Only Memory) 902, RAM 903, HDD (Hard Disk Drive) 904, input / output I / F (Interface) 905, communication I / F 906, and media I / F 907.
[0056] The CPU 901 operates based on programs stored in the ROM 902 or HDD 904 and is controlled by the control unit. 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.
[0057] The CPU 901 controls input devices 910, such as a mouse or keyboard, and output devices 911, such as a display or 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. A GPU or other processor may also be used in conjunction with the CPU 901.
[0058] HDD904 stores programs executed by CPU901 and data used by those programs. Communication I / F906 receives data from other devices via a communication network (e.g., NW(Network)920) and outputs it to CPU901, and also transmits data generated by CPU901 to other devices via the communication network.
[0059] 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 can be 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, or a semiconductor memory.
[0060] For example, when computer 900 functions as server 10 (information processing device) according to the present invention, the CPU 901 of computer 900 realizes the functions of server 10 (information processing device) 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 desired processing from the recording medium 912. Alternatively, the CPU 901 may read a program related to the desired processing from another device via a communication network (NW 920).
[0061] <Effects> The effects of the information processing device, etc., according to the present invention will be described below. The information processing device according to the present invention is a server 10 capable of executing either a container or a virtual machine application, comprising a CPU 11, a connection IF 13 for connecting a plurality of devices 12 to the CPU 11, a monitoring unit 14 for monitoring whether the bandwidth usage of the connection IF 13 exceeds an upper limit, and an adjustment unit 15 for adjusting the bandwidth usage when the usage exceeds the upper limit, wherein a logical resource amount is defined for the bandwidth, and an allocation ratio linked to the devices 12 is set based on the logical resource amount, and the adjustment unit 15 controls the bandwidth usage to be reduced for those whose bandwidth usage ratio is higher than the allocation ratio.
[0062] According to this server 10 as an information processing device, a logical resource amount is defined for the bandwidth of connection IF 13, and it is possible to adjust the bandwidth usage using this logical resource amount. This prevents the usage of connection IF 13 from exceeding the upper limit and suppresses contention caused by insufficient bandwidth of connection IF 13. As a result, it is possible to guarantee the performance of the application. Furthermore, the present invention can be used universally, regardless of the application implementation.
[0063] Furthermore, device 12 is a first device capable of adjusting the amount of bandwidth used by connection IF 13 by changing the settings of device 12, and adjustment unit 15 is characterized in that it performs control to reduce the available bandwidth when the amount of bandwidth used exceeds the upper limit.
[0064] This makes it possible to appropriately adjust bandwidth usage even when devices 12 such as NICs are connected to the CPU 11.
[0065] Furthermore, device 12 is a second device capable of adjusting the bandwidth usage of connection IF 13 by controlling the throughput of device 12, and adjustment unit 15 is characterized in that, when the usage exceeds the upper limit, it performs at least one of the following: control to reduce the number of arithmetic units, and control to lower the operating clock.
[0066] This makes it possible to appropriately adjust bandwidth usage even when devices 12 such as GPUs, FPGAs, and ASICs are connected to the CPU 11.
[0067] Furthermore, the minimum change in computational performance due to the control that reduces the number of computational units is different from the minimum change in computational performance due to the control that lowers the operating clock, and a threshold value is set such that the amount of change when the setting value with the smaller minimum change is lowered is equal to the amount of change when the setting value with the larger minimum change is lowered, and a priority setting is made which of the control that reduces the number of computational units and the control that lowers the operating clock is to be prioritized, and the adjustment unit 15 is characterized in that, when the usage amount exceeds the upper limit, it gradually lowers the setting value with the smaller minimum change, and when the amount of change for the setting value with the smaller minimum change reaches the threshold, it lowers the setting value of the priority setting and returns the other setting value to its initial state.
[0068] In this way, when devices 12 such as GPUs, FPGAs, and ASICs are connected to the CPU 11, it becomes possible to adjust bandwidth usage at a fine granularity and change settings to suit the characteristics of the application.
[0069] It should be noted that the present invention is not limited to the embodiments described above, and many modifications are possible within the technical concept of the present invention by those with ordinary skill in the art. [Explanation of symbols]
[0070] 1. Information Processing System 10, 10A, 10B, 10C Server (Information Processing Device) 11 CPU 12 devices 13 Connection IF 14 Monitoring Department 15 Adjustment part 20 Management device 21 Management Department
Claims
1. An information processing device capable of running either a container or a virtual machine application, CPU and, A connection interface for connecting multiple devices to the CPU, A monitoring unit that monitors whether the bandwidth usage of the aforementioned connection interface exceeds the upper limit, The system includes an adjustment unit that adjusts the amount of bandwidth used when the amount of bandwidth used exceeds the upper limit, The bandwidth has a defined amount of logical resources, and the allocation ratio associated with the device is set based on the amount of logical resources. The device can adjust the bandwidth usage of the connection interface by controlling the throughput of the device, The minimum change in computational performance due to control that reduces the number of computational units is different from the minimum change in computational performance due to control that lowers the operating clock, and a threshold value is set such that the amount of change when the setting value with the smaller minimum change is lowered is equal to the amount of change when the setting value with the larger minimum change is lowered. Priority settings are configured to register which of the control that reduces the number of processing units and the control that lowers the operating clock should take priority. The adjustment unit controls the bandwidth usage to be reduced for those whose bandwidth usage ratio is higher than the allocation ratio. To this end, when the usage exceeds the upper limit, it performs at least one of the following: reducing the number of arithmetic units and reducing the operating clock. The adjustment unit gradually lowers the setting value with the smaller minimum change range, and when the change amount of the setting value with the smaller minimum change range reaches the threshold, it lowers the setting value of the prioritized setting while returning the other setting value to its initial state. An information processing device characterized by the following:
2. An information processing method for an information processing device capable of running either a container or a virtual machine application, The aforementioned information processing device is It comprises a CPU and a connection interface for connecting multiple devices to the CPU, A monitoring step to monitor whether the bandwidth usage of the aforementioned connection interface exceeds the upper limit, If the usage exceeds the upper limit, an adjustment step is performed to adjust the usage of the bandwidth. The bandwidth has a defined amount of logical resources, and the allocation ratio associated with the device is set based on the amount of logical resources. The device can adjust the bandwidth usage of the connection interface by controlling the throughput of the device, The minimum change in computational performance due to control that reduces the number of computational units is different from the minimum change in computational performance due to control that lowers the operating clock, and a threshold value is set such that the amount of change when the setting value with the smaller minimum change is lowered is equal to the amount of change when the setting value with the larger minimum change is lowered. Priority settings are configured to register which of the control that reduces the number of processing units and the control that lowers the operating clock should take priority. In the adjustment step, for those whose bandwidth usage ratio is higher than the allocation ratio, in order to control the amount of bandwidth usage to be reduced, if the amount of usage exceeds the upper limit, at least one of the following is performed: control to reduce the number of arithmetic units and control to lower the operating clock, and the setting value with the smaller minimum change range is gradually lowered, and then when the amount of change of the setting value with the smaller minimum change range reaches the threshold, the setting value of the prioritized one is lowered and the other setting value is returned to its initial state. An information processing method characterized by the following:
3. A program for causing a computer to function as an information processing device as described in claim 1.