WO2023243039A1 - 情報処理装置、情報処理方法、および、プログラム - Google Patents

情報処理装置、情報処理方法、および、プログラム Download PDF

Info

Publication number
WO2023243039A1
WO2023243039A1 PCT/JP2022/024146 JP2022024146W WO2023243039A1 WO 2023243039 A1 WO2023243039 A1 WO 2023243039A1 JP 2022024146 W JP2022024146 W JP 2022024146W WO 2023243039 A1 WO2023243039 A1 WO 2023243039A1
Authority
WO
WIPO (PCT)
Prior art keywords
amount
usage
information processing
band
connection
Prior art date
Application number
PCT/JP2022/024146
Other languages
English (en)
French (fr)
Inventor
晃一 原
紀貴 堀米
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to PCT/JP2022/024146 priority Critical patent/WO2023243039A1/ja
Publication of WO2023243039A1 publication Critical patent/WO2023243039A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer

Definitions

  • the present invention relates to an information processing apparatus, an information processing method, and a program that adjust the amount of bandwidth used in an inter-device interface in orchestration of containers and virtual machines.
  • a virtualization platform is a virtual environment that abstracts and hides physical resources such as servers and networks using virtualization technology, and is prepared as a common platform for multiple applications and services, and manages these virtual environments. Refers to a system.
  • OpenStack which is software for building cloud environments
  • Kubernetes which is software for operating and managing containerized workloads and services.
  • OpenStack is primarily used for managing and operating physical machines and virtual machines (VMs).
  • VMs virtual machines
  • Kubernetes is mainly used for managing and operating containers. These software are called orchestration software.
  • an application executed in a VM or a container requests the amount of physical resources from an orchestrator (a functional unit that manages a server group consisting of a plurality of physical servers). For example, how much resources does the application require for the orchestrator, such as ⁇ 3 cores'' for the CPU (Central Processing Unit), ⁇ 4 GB'' for the memory, and ⁇ 1'' for the GPU (Graphics Processing Unit)? Request.
  • the orchestrator finds a server that satisfies the requested conditions among a group of available servers, and allocates a VM or container to the found server.
  • Non-Patent Document 1 For example, in Kubernetes, which manages containers, when deploying a Pod containing a container, the required amount of resources (CPU, memory, device, etc.) is described in the manifest file, and the amount of resources allocated to the Pod is managed. (See Non-Patent Document 1). This makes it possible for Kubernetes to restrict allocations from exceeding the amount of resources.
  • connection IF connection interface
  • the devices include, for example, a GPU, an FPGA (Field Programmable Gate Array), an ASIC (Application Specific Integrated Circuit), and a NIC (Network Interface Card).
  • PCIe Peripheral Component Interconnect Express
  • the PCIe band may be shared by multiple devices connected to the CPU, and the available band changes depending on the communication status of each device. Therefore, PCIe bandwidth cannot be allocated to each device as an independent resource amount like a CPU or memory. Therefore, the PCIe band is not treated as a resource amount and is not managed.
  • the present invention has been made in view of these points, and an object of the present invention is to suppress the deterioration of application performance due to the tightness of the bandwidth of the connection IF that connects the CPU and the device.
  • An information processing apparatus is an information processing apparatus capable of executing either a container or a virtual machine application, and includes a CPU, a connection IF for connecting a plurality of devices to the CPU, and a bandwidth of the connection IF.
  • a monitoring unit that monitors whether the usage of the band exceeds the upper limit; and an adjustment unit that adjusts the usage of the band when the usage exceeds the upper limit; is defined, and an allocation ratio linked to the device is set based on the amount of logical resources, and the adjustment unit is configured to set an allocation ratio linked to the device based on the amount of logical resources, and the adjustment unit is configured to set an allocation ratio for a device where the usage ratio of the band is higher than the allocation ratio. control is performed so that the usage of the band is reduced.
  • FIG. 1 is a diagram showing the overall configuration of an information processing system according to an embodiment. It is a table showing the range of logical resource amount that can be set in the bandwidth of the connection IF. 3 is a table showing allocation ratios of logical resource amounts.
  • 1 is an illustration of a flowchart (first device) of an information processing method according to the present embodiment. It is an illustration of the flowchart (2nd device) of the information processing method based on this embodiment. It is an illustration of the flowchart (2nd device) of the information processing method based on this embodiment. This is a list of parameters to be set in the combination method adjustment process. It is an illustration of the flowchart (2nd device) of the information processing method based on this embodiment. It is a figure showing the whole structure of an information processing system concerning a modification.
  • FIG. 1 is a hardware configuration diagram showing an example of a computer that implements the functions of the information processing device according to the present embodiment.
  • a logical resource amount is defined in advance in the bandwidth of a connection IF (for example, PCIe) that a server that constructs a virtualization infrastructure has.
  • the logical resource amount is, for example, a value based on the specifications of the server, and is a unitless number (dimensionless number).
  • an allocation ratio linked to the device is set.
  • the allocation ratio indicates, for example, the ratio at which the amount of logical resources is distributed to each device. A value that allows calculation of the allocation ratio may be set, and the allocation ratio may be calculated as necessary.
  • the bandwidth usage is adjusted based on the allocation ratio.
  • the device connected to the CPU via the connection IF is not limited to one that is included in the own server, but may be one that is connected via a network. In other words, it is possible to adjust the band including devices included in other devices.
  • FIG. 1 is a diagram showing the overall configuration of an information processing system 1 according to this embodiment.
  • the information processing system 1 includes a plurality of servers 10 (10A, 10B, 10C) that are physical resources, and a management device 20 that is communicatively connected to the servers 10.
  • the information processing system 1 is managed by orchestration software (eg, Kubernetes) designed to manage and automate the operation of containers or virtual machines (VMs).
  • the orchestration software virtualizes physical resources (here, servers 10) using virtualization technology, and provides applications using virtualized resources (containers, VMs, etc.) set on each server 10.
  • the server 10 is an example of an "information processing device.”
  • the server 10 includes a CPU 11, a device 12, and a connection IF 13.
  • the device 12 is, for example, a GPU, FPGA, ASIC, NIC, or the like.
  • a connection IF (Device IF) 13 connects the device 12 to the CPU 11.
  • the connection IF 13 is, for example, PCIe.
  • the CPU 11 is connected to the device 12 via the connection IF 13.
  • the CPU 11 of "Server A” which is the first server 10A connects to "Device A-1” which is the first device 12 and "Device A-1” which is the second device 12 via the connection IF 13. A-2”.
  • the CPU 11 of "Server B” which is the second server 10B connects "Device B-1” which is the first device 12 and "Device B-1” which is the second device 12 via the connection IF 13. B-2”.
  • the CPU 11 of "Server C” which is the third server 10C connects to "Device C-1" which is the first device 12 and "Device C-1" which is the second device 12 via the connection IF 13. C-2”.
  • the CPU 11 may be connected to a device 12 included in another server 10 via the connection IF 13 and the network.
  • the CPU 11 of "Server A” which is the first server 10A connects to "Device A-1" which is the first device 12 of itself via the connection IF 13.
  • "Device A-2" is the second device 12
  • "Device B-1” is the first device 12 of "Server B”, which is the second server 10B, via the network. ” and the second device 12, “Device B-2.”
  • the server 10 includes a monitoring section 14 and an adjustment section 15.
  • the monitoring unit 14 and the adjustment unit 15 are realized by program execution processing of orchestration software.
  • the monitoring unit 14 monitors the amount of bandwidth used by the connection IF 13. For example, the monitoring unit 14 can monitor the amount of bandwidth used by the connection IF 13 on a device-by-device basis. When the bandwidth usage (effective bandwidth) of the connection IF 13 exceeds the performance upper limit of the connection IF 13 (it may be possible to exceed the performance upper limit), the monitoring unit 14 detects that the upper limit has been exceeded. Notify.
  • the adjustment unit 15 performs control to adjust the bandwidth usage when the bandwidth usage (effective bandwidth) of the connection IF 13 exceeds the performance upper limit of the connection IF 13 (even if there is a risk of exceeding the performance upper limit). conduct.
  • the amount of logical resources is defined for the bandwidth of the connection IF 13.
  • the logical resource amount is a parameter that can be set, for example, by the administrator of the information processing system 1, and has a minimum value and a maximum value, and the amount of logical resources can be set by the administrator based on the specifications of the server 10 (in particular, the specifications of the connection IF 13). , set a number within that range.
  • FIG. 2 is a table showing the range of the amount of logical resources that can be set in the bandwidth of the connection IF 13, and an integer value within the range of "1 to 10" can be set as the amount of logical resources.
  • the amount of logical resources set in the bandwidth of the connection IF 13 may be, for example, a relative value (relative performance ratio) based on a specific server, and in that case, the amount of logical resources is a unitless number (dimensionless number). It is. If the specs of the servers 10 are the same, the amount of logical resources may be a specified value.
  • the logical resource amount is registered in the management unit 21 of the management device 20, for example. Here, it is assumed that the maximum value "10" is set as the amount of logical resources in the bandwidth of the connection IF 13 of "Server A" which is the first server 10A.
  • the creator of the application (referred to as the "user") sets an allocation ratio linked to the device 12.
  • the allocation ratio is set based on the amount of logical resources set in the bandwidth of the connection IF 13. A value that allows calculation of the allocation ratio may be set, and the allocation ratio may be calculated as necessary.
  • FIG. 3 is a table showing allocation ratios of logical resource amounts.
  • the table shown in FIG. 3 has items of "application name”, "device type", and "set resource amount of IF band”.
  • the table shown in FIG. 3 is registered in the management section 21. For example, each application registers its own information, and when deployed, the application notifies the management unit 21 of its own information (part of the information may be notified).
  • Application name is information that identifies an application.
  • FIG. 3 a first application “App- ⁇ ” and a second application “App- ⁇ ” are registered.
  • Device type is information regarding the type of device 12 used in the application.
  • device types "X, Y” are registered as the device 12 used in the first application “App- ⁇ ”
  • the device type 12 used in the second application "App- ⁇ ” is registered.
  • Device type "Z” is registered as .
  • the device type is information that can distinguish GPU, FPGA, ASIC, and NIC, for example.
  • the "set resource amount of IF band” is information regarding the band of the connection IF 13 used by the application.
  • "3" is registered as the logical resource amount of device type "X” used by the first application “App- ⁇ ", and used by the first application “App- ⁇ ”.
  • "4" is registered as the logical resource amount for the device type "Y” to be used, and "3” is registered as the logical resource amount for the device type "Z” used by the second application "App- ⁇ ”.
  • the “logical resource amount of IF band” is set based on the range of logical resource amount in FIG. 2. When a container is deployed to the server 10, the bandwidth registered as the "IF bandwidth setting resource amount" is allocated to the device 12.
  • the logical resource amount is not set based on FIG. 2 (in other words, a prescribed value is set as the logical resource amount), and the logical resource amount allocation ratio shown in FIG. You may also set only The logical resource amount is set for the bandwidth of each server 10 based on FIG. 2 when it is assumed that the specifications of each server 10 are different.
  • the adjustment unit 15 of the server 10 shown in FIG. 1 performs control so that the usage of the band is reduced for those whose usage ratio of the band is higher than the allocation ratio.
  • the comparison between the band usage ratio and the allocation ratio can be performed on a device-by-device basis.
  • the adjustment unit 15 calculates the allocation ratio for each device based on the "set resource amount of the IF band.” For example, if it is assumed that "App- ⁇ " and "App- ⁇ ” are executed on a certain server 10, the allocation ratio of the device 12 of device type "X" used by "App- ⁇ ” is "3/10". (30%)", and calculate "4/10 (40%)” as the allocation ratio for device 12 of device type "Y” used in “App- ⁇ ", and use it in "App- ⁇ ". "3/10 (30%)” is calculated as the allocation ratio of the device 12 of device type "Z”.
  • the adjusting unit 15 acquires the bandwidth usage amount of each device 12 from the monitoring unit 14, calculates the usage ratio, and compares it with the allocation ratio of the device 12, thereby determining whether the usage ratio is higher than the allocation ratio. Determine 12. Then, the adjustment unit 15 controls the device 12 whose usage ratio is determined to be higher than the allocation ratio so that the amount of bandwidth used is reduced.
  • the management device 20 includes a management section 21.
  • the management unit 21 is realized by executing a program using orchestration software.
  • the management unit 21 controls applications executed on virtualized resources (containers, VMs, etc.). Virtualization resources are set on each server 10.
  • the application requests the amount of physical resources from the management unit 21 .
  • the application requests the management unit 21 how much physical resources are required, such as "3 cores" for the CPU, "4 GB” for the memory, and "1" for the GPU.
  • the application also requests the amount of logical resources from the management unit 21 .
  • the application requests the management unit 21 to set the logical resource amount of the bandwidth of the connection IF 13 as "3 (when App- ⁇ requests the logical resource amount of the device 12 of device type "X”)” or "4". (When App- ⁇ requests the amount of logical resources of the device 12 of device type "Y”), the amount of logical resources required is requested for each device.
  • the management unit 21 finds a server 10 that satisfies the requested physical resource amount and logical resource amount conditions among the vacant server group, and allocates a VM or container to the found server 10. Then, after the VM or container is deployed on the server 10, the application is executed. While the application is being executed, the monitoring unit 14 monitors the usage of the bandwidth of the connection IF 13, and the adjustment unit 15 adjusts the usage of the bandwidth when it exceeds the upper limit. The adjustment unit 15 transmits and receives information necessary for adjusting the amount of bandwidth used to and from the management unit 21 .
  • the process for adjusting the amount of bandwidth used by the connection IF 13 is preferably selected in accordance with the method that can be set in the device 12.
  • ⁇ 1> a device that can directly adjust the bandwidth usage of the connection IF 13 by changing the settings of the device 12 (referred to as a "first device”); and ⁇ 2> a device that controls the throughput of the device 12.
  • the processing for adjusting the amount of bandwidth used by the connection IF 13 will be explained by dividing the amount of bandwidth used by the connection IF 13 into cases where the amount of bandwidth used can be indirectly adjusted (referred to as a "second device").
  • Adjustment processing for devices that can directly adjust the bandwidth usage of the connection IF 13 by changing the settings of the device 12
  • Setting values of the device 12 itself, such as a network interface card (NIC) is equal to the amount of bandwidth of the connection IF 13 to be used, or if the device 12 can directly set the amount of bandwidth of the connection IF 13, the usage of the band of the connection IF 13 is adjusted by changing the settings of the device 12.
  • the adjustment unit 15 performs control to reduce the band usable by the first device 12 when the usage amount of the band of the connection IF 13 exceeds the upper limit. As a result, for example, the amount of data input via the NIC can be reduced, and therefore the amount of data flowing to the connection IF 13 can also be reduced.
  • FIG. 4 is an example of a flowchart (first device) of the information processing method according to the present embodiment.
  • the management unit 21 of the management device 20 sets the allocation amount of logical resources when deploying a container (step S11). For example, if it is assumed that "App- ⁇ " and “App- ⁇ ” are executed on "Server A" which is the first server 10A, the management unit 21 determines the type of device used by "App- ⁇ ". Assign “3" as the logical resource amount to device 12 of "X”, assign “4" as the logical resource amount to device 12 of device type "Y” used in "App- ⁇ ”, and assign "4" as the logical resource amount to device 12 of device type "Y” used in "App- ⁇ ". A logical resource amount of "3" is assigned to the device 12 of the device type "Z" to be used. The application is then executed based on the allocated logical resource amount.
  • the monitoring unit 14 of the server 10 checks the amount of bandwidth used on the transmitting side and the receiving side of the connection IF 13 (step S12).
  • the amount of bandwidth used on the transmitting side is expressed as "tx”
  • the amount of bandwidth used on the receiving side is expressed as "rx”.
  • the monitoring unit 14 determines whether the amount of bandwidth used on the transmitting side or the receiving side has reached the performance upper limit (step S13). If the performance upper limit has not been reached (“No” in step S13), no adjustment is made since there is no conflict, and the process proceeds to step S12 to continue checking the amount of bandwidth used.
  • step S13 the adjustment unit 15 of the server 10 compares the allocation ratio and the usage ratio, and selects the usage of the first device 12 with the higher usage ratio.
  • the possible bandwidth of the connection IF 13 is reduced (step S14). For example, if the allocation ratio of the first device 12 used in "App- ⁇ " is "3/10 (30%)" and the usage ratio is "4/10 (40%)", The bandwidth available to the first device 12 is reduced. The process then proceeds to step S12 to continue checking the amount of bandwidth used.
  • the device 12 is a calculation device such as a GPU, FPGA, or ASIC.
  • the usage of the bandwidth of the connection IF 13 is adjusted by controlling the processing throughput.
  • the adjustment unit 15 performs at least one of reducing the number of arithmetic units of the second device 12 and lowering the operating clock. .
  • the amount of data to be subjected to arithmetic processing can be reduced, and therefore the amount of data flowing to the connection IF 13 can also be reduced.
  • FIGS. 5 and 6 are illustrations of a flowchart (second device) of the information processing method according to this embodiment.
  • step S21 to step S23 in FIG. 5 is similar to the processing from step S11 to step S13 in FIG. Therefore, a description of the processing of these steps will be omitted.
  • the adjustment unit 15 of the server 10 compares the allocation ratio and the usage ratio, and selects the second device with a higher usage ratio.
  • the number of executable arithmetic units is reduced to 12 (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 arithmetic units of the second device 12 is reduced.
  • the process then proceeds to step S22 to continue checking the amount of bandwidth used.
  • step S31 to step S33 in FIG. 6 is similar to the processing from step S11 to step S13 in FIG. 4. Therefore, a description of the processing of these steps will be omitted.
  • step S33 If it is determined in step S33 that the performance upper limit has been reached (“Yes” in step S33), the adjustment unit 15 of the server 10 compares the allocation ratio and the usage ratio, and selects the second device with a higher usage ratio. 12 operation clock is lowered (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 is lowered. The process then proceeds to step S32 to continue checking the amount of bandwidth used.
  • the adjustment unit 15 performs a process that combines control to reduce the number of arithmetic units of the second device 12 and control to lower the operating clock. Good too.
  • FIG. 7 is a list of parameters set in the combination method adjustment process.
  • FIG. 8 is an illustration of a flowchart (second device) of the information processing method according to the present embodiment.
  • the operating frequency of the arithmetic device is approximately "1.5 GHz” and the number of arithmetic units is approximately "108", for example.
  • the operating clock can often be set in increments of 100 MHz, and the minimum change in setting is about 5 to 10%. Also, assuming that the number of processing units is NVIDIA Multi-Instance GPU, the minimum change in the number of calculation units due to the setting will be about 15%.
  • the "threshold" parameter shown in FIG. 7 is a value at which the change in calculation performance due to the minimum width of change that can be set by the operation clock is the same as the change in calculation performance due to the minimum width of change that can be set by the number of calculation units. For example, if the minimum variation width of the operating clock is "5%" and the minimum variation width depending on the number of arithmetic units is "15%", the threshold value is "15%".
  • the parameter "setting value A" is a setting value with a smaller minimum change width that can be set by the operating clock or the number of arithmetic units.
  • the setting value A is the setting value of the operating clock.
  • the parameter "setting value B" is the setting value that has a larger minimum change width that can be set in terms of the operating clock or the number of arithmetic units.
  • the setting value B is the setting value of the number of calculation units.
  • the "priority setting" parameter is information indicating whether to reduce the operating clock or the number of arithmetic units in a specific situation.
  • the bandwidth usage is adjusted with finer granularity by using the one (operating clock) with a smaller settable minimum change width to minimize the impact on performance.
  • bandwidth usage is adjusted based on preset priority settings (for example, number of processing units) to minimize performance impact according to application characteristics. do. Details of the priority setting process are shown in FIG.
  • step S41 to step S43 in FIG. 8 is similar to the processing from step S11 to step S13 in FIG. Therefore, a description of the processing of these steps will be omitted. If it is determined in step S43 that the performance upper limit has been reached (“Yes” in step S43), the adjustment unit 15 of the server 10 compares the allocation ratio and the usage ratio, and selects the second device with a higher usage ratio. 12 is confirmed (step S44).
  • step S45 determines whether or not the setting has already been changed for the confirmed second device 12 and the threshold value is reached when lowering the setting next time. If “No” in step S45, the adjustment unit 15 lowers the setting with the smaller minimum change width based on the "setting value A" of the parameter (step S46). On the other hand, if "Yes” in step S45, the adjustment unit 15 lowers the set value based on the priority setting and returns the value that is not the priority setting (step S47).
  • the operating clock is lowered to adjust the amount of bandwidth usage, and as a result, the calculation performance decreases by the minimum change width of "5%". If the bandwidth usage reaches the next upper limit, even if the calculation performance is lowered, it will not reach the threshold "15%", so the operating clock will be further lowered to adjust the bandwidth usage, and the minimum change width will be adjusted accordingly. The calculation performance decreases by 5%, resulting in a total change of 10%. If the bandwidth usage reaches the next upper limit, lowering the calculation performance will reach the threshold of 15%, so reduce the number of calculation units to adjust the bandwidth usage, and set the operating clock. is reset to eliminate the deterioration in arithmetic performance due to the operating clock.
  • the calculation performance will be reduced by the minimum change width of 15% due to the setting of the number of calculation units. If the bandwidth usage reaches the next upper limit, even if you lower the calculation performance, it will not reach the threshold "15%" (because the operating clock setting was returned), so lower the operating clock and use the bandwidth. The amount of change is adjusted, and the calculation performance decreases by the minimum change width of 5%, resulting in a total change of 20%. Note that by setting the priority setting to the operating clock, it is also possible to constantly adjust the amount of bandwidth used by setting the operating clock. This makes it possible to adjust the amount of bandwidth used on a fine-grained basis and to change settings in accordance with the characteristics of the application. For example, it is possible to meet the request that the operating clock should not be lowered more than necessary due to the characteristics of the application.
  • the server 10 (information processing device) is realized, for example, by a computer 900 having a configuration as shown in FIG.
  • FIG. 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 the present embodiment.
  • the computer 900 has a CPU 901, a ROM (Read Only Memory) 902, a RAM 903, an HDD (Hard Disk Drive) 904, an input/output I/F (Interface) 905, a communication I/F 906, and a media I/F 907.
  • the CPU 901 operates based on a program stored in the ROM 902 or HDD 904, and performs control by the control unit.
  • the ROM 902 stores a boot program executed by the CPU 901 when the computer 900 is started, programs related to the hardware of the computer 900, and the like.
  • the CPU 901 controls an input device 910 such as a mouse or a keyboard, and an output device 911 such as a display or printer via an input/output I/F 905.
  • the CPU 901 acquires data from the input device 910 via the input/output I/F 905 and outputs the generated data to the output device 911.
  • a GPU or the like may be used in addition to the CPU 901 as the processor.
  • the HDD 904 stores programs executed by the CPU 901 and data used by the programs.
  • the communication I/F 906 receives data from other devices via a communication network (for example, NW (Network) 920) and outputs it to the CPU 901, and also sends data generated by the CPU 901 to other devices via the communication network. Send to device.
  • NW Network
  • the media I/F 907 reads the program or data stored in the recording medium 912 and outputs it to the CPU 901 via the RAM 903.
  • the CPU 901 loads a program related to target processing from the recording medium 912 onto the RAM 903 via the media I/F 907, and executes the loaded program.
  • the recording medium 912 is an optical recording medium such as a DVD (Digital Versatile Disc) or a PD (Phase change rewritable disk), a magneto-optical recording medium such as an MO (Magneto Optical disk), a magnetic recording medium, a semiconductor memory, or the like.
  • the CPU 901 of the computer 900 realizes the functions of the server 10 (information processing device) by executing a program loaded on the RAM 903. do. Furthermore, data in the RAM 903 is stored in the HDD 904 .
  • the CPU 901 reads a program related to target processing from the recording medium 912 and executes it. In addition, the CPU 901 may read a program related to target processing from another device via a communication network (NW 920).
  • the information processing device is a server 10 that can execute either a container or a virtual machine application, and includes a CPU 11, a connection IF 13 that connects a plurality of devices 12 to the CPU 11, and a bandwidth usage of the connection IF 13.
  • a monitoring unit 14 that monitors whether the amount of usage exceeds the upper limit, and an adjustment unit 15 that adjusts the amount of usage of the band when the amount of usage exceeds the upper limit. is defined, and an allocation ratio linked to the device 12 is set based on the amount of logical resources, and the adjustment unit 15 controls the allocation ratio for the band whose usage ratio is higher than the allocation ratio.
  • the method is characterized in that the amount of usage of the band is controlled to be reduced.
  • a logical resource amount is defined in the bandwidth of the connection IF 13, and it is possible to adjust the bandwidth usage using the logical resource amount. This makes it possible to prevent the amount of usage of the connection IF 13 from exceeding the upper limit, and to suppress contention due to insufficient bandwidth of the connection IF 13. As a result, it becomes possible to guarantee the performance of the application. Further, the present invention can be used for general purposes without depending on the implementation of the application.
  • the device 12 is a first device that can adjust the usage of the band of the connection IF 13 by changing the settings of the device 12, and the adjustment unit 15 is configured to adjust the usage of the bandwidth of the connection IF 13 when the usage exceeds the upper limit.
  • the method is characterized in that control is performed to reduce the usable band.
  • the device 12 is a second device that can adjust the usage of the band of the connection IF 13 by controlling the throughput of the device 12, and the adjustment unit 15 is configured to adjust the usage if the usage exceeds the upper limit.
  • the present invention is characterized in that at least one of control for reducing the number of arithmetic units and control for lowering the operating clock is performed.
  • the minimum change width of the calculation performance change due to the control to reduce the number of calculation units and the minimum change width of the calculation performance change due to the control to lower the operation clock are different, and the set value of the smaller minimum change width is different.
  • the threshold value is set to a value at which the amount of change when decreasing the minimum change width is equal to the amount of change when decreasing the set value with the larger minimum change width, and the number of calculation units is reduced.
  • a priority setting is made in which it is registered which of the control and the control to lower the operating clock should be prioritized, and when the usage exceeds the upper limit, the adjustment unit 15 selects the one with the smaller minimum change width.
  • the set value is gradually lowered, and then the set value is lowered so that the amount of change in which the minimum change width is smaller reaches the threshold value, the set value for the one that has been set as a priority is lowered and the other set value is lowered.
  • the setting value is returned to an initial state.
  • Information processing system 10 10A, 10B, 10C Server (information processing device) 11 CPU 12 Device 13 Connection IF 14 Monitoring Department 15 Adjustment Department 20 Management Device 21 Management Department

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

コンテナおよび仮想マシンの何れかのアプリケーションを実行可能な情報処理装置としてのサーバ(10)であって、サーバは、CPU(11)と、CPUに複数のデバイス(12)を接続する接続IF(13)と、接続IFの帯域の使用量が上限を超えているかを監視する監視部(14)と、使用量が上限を超えている場合に当該帯域の使用量を調整する調整部(15)と、を備える。帯域には、論理リソース量が定義されており、また、デバイスに紐付けた割り当て比率が論理リソース量に基づいて設定されており、調整部は、帯域の使用比率が割り当て比率に比べて高いものに対して、帯域の使用量が低減するように制御する。

Description

情報処理装置、情報処理方法、および、プログラム
 本発明は、コンテナおよび仮想マシンのオーケストレーションにおいて、デバイス間インタフェースの帯域の使用量を調整する情報処理装置、情報処理方法、および、プログラムに関する。
 近年、データセンタ等のサーバファームでは、仮想化基盤を構築して運用されることが多くなってきている。仮想化基盤とは、仮想化技術を用いてサーバやネットワークといった物理資源を抽象化・隠蔽し、複数のアプリケーションやサービスに対して共通基盤として準備された仮想環境、またそれらの仮想環境を管理するシステムのことをいう。
 オープンソースの仮想化基盤としては、クラウド環境構築用のソフトウェアであるOpenStackや、コンテナ化されたワークロードやサービスを運用管理するためのソフトウェアであるKubernetesが知られている。OpenStackは、主に物理マシンや仮想マシン(VM)の管理・運用に用いられる。Kubernetesは、主にコンテナの管理・運用に用いられる。これらのソフトウェアは、オーケストレーションソフトウェアと呼ばれる。
 一般的に、VMまたはコンテナで実行されるアプリケーションは、オーケストレータ(複数の物理サーバで構成されるサーバ群を管理する機能部)に対して、物理のリソース量をリクエストする。例えば、アプリケーションは、オーケストレータに対して、CPU(Central Processing Unit)が「3コア」、メモリが「4GB」、GPU(Graphics Processing Unit)が「1つ」のように、どのくらいのリソース量が必要かをリクエストする。オーケストレータは、空いているサーバ群の中で、リクエストされた条件を満たすサーバを見つけ、見つけたサーバにVMまたはコンテナを割り当てる。
 例えば、コンテナを管理するKubernetesでは、コンテナを含むPodをデプロイする際に、必要なリソース量(CPU、メモリ、デバイス等)をマニフェストファイルに記述して、Podに割り当てた分のリソース量を管理する(非特許文献1参照)。これにより、Kubernetesでは、リソース量を超える割り当てが発生しないように制限することが可能である。
Kubernetes,"GPUのスケジューリング",[online],[令和4年5月25日検索],インターネット<URL:https://kubernetes.io/ja/docs/tasks/manage-gpus/scheduling-gpus/>
 しかし、オーケストレーションソフトウェアでは、CPUとデバイスとを接続する接続インタフェース(「接続IF」と表記する場合がある)の帯域をリソース量として制限することが出来ない。ここでのデバイスは、例えば、GPU、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)、NIC(Network Interface Card)などである。
 例えば、CPUとデバイスとを繋ぐIFとして現在一般に用いられるPCIe(Peripheral Component Interconnect Express)の帯域について考える。PCIeの帯域は、CPUに繋がる複数のデバイスで共有されている場合があり、各々のデバイスの通信状況によって利用可能な帯域が変化する。その為、CPUやメモリのように独立したリソース量としてPCIeの帯域をデバイスごとに割り当てることが出来ない。したがって、PCIeの帯域は、リソース量として扱われず、管理もされていない。
 そして、CPUに沢山のデバイスが接続されている状況下では、接続IFの帯域が不足するためにswitchで競合するケースが増加し、複数のアプリケーションのスループットが低下する。つまり、CPUに沢山のデバイスが繋がっている状況では、CPUとの通信が他のデバイスと競合してしまい、ネットワークと同じように輻輳する。その結果、デバイスの性能よりも接続IFの帯域に律速されることになり、デバイスを利用するアプリケーションの性能が落ちてしまい、性能保証が出来ないという問題が発生する。
 このような点に鑑みて本発明がなされたのであり、本発明は、CPUとデバイスとを接続する接続IFの帯域が逼迫することによるアプリケーションの性能の低下を抑制することを課題とする。
 本発明に係る情報処理装置は、コンテナおよび仮想マシンの何れかのアプリケーションを実行可能な情報処理装置であって、CPUと、前記CPUに複数のデバイスを接続する接続IFと、前記接続IFの帯域の使用量が上限を超えているかを監視する監視部と、前記使用量が上限を超えている場合に当該帯域の使用量を調整する調整部と、を備え、前記帯域には、論理リソース量が定義されており、また、前記デバイスに紐付けた割り当て比率が前記論理リソース量に基づいて設定されており、前記調整部は、前記帯域の使用比率が前記割り当て比率に比べて高いものに対して、前記帯域の使用量が低減するように制御する。
 本発明によれば、CPUとデバイスとを接続する接続IFの帯域が逼迫することによるアプリケーションの性能の低下を抑制することができる。
本実施形態に係る情報処理システムの全体構成を示す図である。 接続IFの帯域に設定可能な論理リソース量の範囲を示すテーブルである。 論理リソース量の割り当て比率を示すテーブルである。 本実施形態に係る情報処理方法のフローチャート(第1のデバイス)の例示である。 本実施形態に係る情報処理方法のフローチャート(第2のデバイス)の例示である。 本実施形態に係る情報処理方法のフローチャート(第2のデバイス)の例示である。 組合せ方式の調整処理で設定するパラメータの一覧である。 本実施形態に係る情報処理方法のフローチャート(第2のデバイス)の例示である。 変形例に係る情報処理システムの全体構成を示す図である。 本実施形態に係る情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
<本発明の概要>
 まず、本発明の処理の概要を説明する。本発明では、仮想化基盤を構築するサーバが有する接続IF(例えば、PCIe)の帯域に論理リソース量を予め定義する。論理リソース量は、例えば、サーバのスペックに基づく値であり、単位の無い数(無次元の数)である。また、定義した論理リソース量に対して、デバイスに紐づけた割り当て比率を設定する。割り当て比率は、例えば、各々のデバイスに対して論理リソース量を振り分けた割合が分かるものである。割り当て比率を算出可能な値を設定し、必要に応じて割り当て比率を算出してもよい。そして、アプリケーションを実行し、帯域の使用量が上限を超えている場合(実効帯域が上限に達している場合)に、割り当て比率に基づいて帯域の使用量を調整する。なお、接続IFを介してCPUに接続されるデバイスは、自身のサーバが有するものに限らず、ネットワークを介して接続されるものであってもよい。つまり、他の装置が備えるデバイスを含めて帯域の調整を行うことが可能である。
 次に、本発明を実施するための形態(以下、「本実施形態」と称する。)について説明する。
<情報処理システムの構成>
 本実施形態に係る情報処理システム1の構成について説明する。図1は、本実施形態に係る情報処理システム1の全体構成を示す図である。
 情報処理システム1は、物理資源である複数台のサーバ10(10A,10B,10C)と、サーバ10と通信接続される管理装置20とを含んで構成される。情報処理システム1は、コンテナまたは仮想マシン(VM)の運用管理と自動化を行うために設計されたオーケストレーションソフトウェア(例えば、Kubernetes)によって管理されている。オーケストレーションソフトウェアは、仮想化技術により物理資源(ここでは、サーバ10)を仮想化し、各サーバ10上に設定した仮想化リソース(コンテナやVM等)によりアプリケーションを提供する。サーバ10は、「情報処理装置」の一例である。
 サーバ10は、CPU11と、デバイス12と、接続IF13とを含んで構成される。
 デバイス12は、例えば、GPU、FPGA、ASIC、NICなどである。
 接続IF(Device IF)13は、CPU11にデバイス12を接続するものである。接続IF13は、例えば、PCIeなどである。
 CPU11は、接続IF13を介して、デバイス12に接続される。例えば、一つ目のサーバ10Aである「Server A」のCPU11は、接続IF13を介して、一つ目のデバイス12である「Device A-1」と、二つ目のデバイス12である「Device A-2」とに接続される。また、二つ目のサーバ10Bである「Server B」のCPU11は、接続IF13を介して、一つ目のデバイス12である「Device B-1」と、二つ目のデバイス12である「Device B-2」とに接続される。また、三つ目のサーバ10Cである「Server C」のCPU11は、接続IF13を介して、一つ目のデバイス12である「Device C-1」と、二つ目のデバイス12である「Device C-2」とに接続される。
 なお、図9に示すように、CPU11は、接続IF13およびネットワークを介して、他のサーバ10が備えるデバイス12に接続されていてもよい。図9に示す構成では、一つ目のサーバ10Aである「Server A」のCPU11は、接続IF13を介して、自身が有する一つ目のデバイス12である「Device A-1」と、二つ目のデバイス12である「Device A-2」とに接続され、また、ネットワークを介して、二つ目のサーバ10Bである「Server B」の一つ目のデバイス12である「Device B-1」と、二つ目のデバイス12である「Device B-2」とに接続される。
 また、図1に示すように、サーバ10は、監視部14と、調整部15とを備える。監視部14および調整部15は、オーケストレーションソフトウェアをプログラム実行処理することによって実現される。
 監視部14は、接続IF13の帯域の使用量を監視する。例えば、監視部14は、接続IF13の帯域の使用量を、デバイス単位で監視することができる。監視部14は、接続IF13の帯域の使用量(実効帯域)が接続IF13の性能上限を超えている場合(性能上限を超える恐れがある場合でもよい)に、上限を超えたことを調整部15に通知する。
 調整部15は、接続IF13の帯域の使用量(実効帯域)が接続IF13の性能上限を超えている場合(性能上限を超える恐れがある場合でもよい)に、帯域の使用量を調整する制御を行う。
 ここで、接続IF13の帯域には、論理リソース量が定義されている。論理リソース量は、例えば情報処理システム1の管理者によって設定可能なパラメータであり、最小値および最大値が決められていて、管理者がサーバ10のスペック(特に、接続IF13のスペック)に基づいて、その範囲内の数値を設定する。
 例えば図2に示す情報に基づいて、管理者は論理リソース量を設定する。図2は、接続IF13の帯域に設定可能な論理リソース量の範囲を示すテーブルであり、論理リソース量として「1~10」の範囲内の整数値が設定可能である。接続IF13の帯域に設定される論理リソース量は、例えば特定のサーバを基準とした相対値(相対性能比)であってよく、その場合の論理リソース量は単位の無い数(無次元の数)である。サーバ10のスペックが同様である場合、論理リソース量は規定値であってもよい。論理リソース量は、例えば管理装置20の管理部21に登録される。ここでは、一つ目のサーバ10Aである「Server A」の接続IF13の帯域に、論理リソース量として最大値「10」を設定したことにする。
 また、アプリケーションの作成者(「ユーザ」と称する)は、デバイス12に紐付けた割り当て比率を設定する。割り当て比率は、接続IF13の帯域に設定される論理リソース量に基づいて設定される。割り当て比率を算出可能な値を設定し、必要に応じて割り当て比率を算出してもよい。
 割り当て比率の一例を図3に示す。図3は、論理リソース量の割り当て比率を示すテーブルである。図3に示すテーブルは、「アプリ名」、「デバイス種類」、「IF帯域の設定リソース量」の項目を有する。図3に示すテーブルは、管理部21に登録される。例えば、各アプリケーションに自身の情報を登録しておき、デプロイする際にアプリケーションが自身の情報を管理部21に通知する(一部の情報を通知してもよい)。
 「アプリ名」は、アプリケーションを識別する情報である。図3には、一つ目のアプリケーションである「App-α」と、二つ目のアプリケーションである「App-β」とが登録されている。
 「デバイス種類」は、アプリケーションで使用するデバイス12の種類に関する情報である。図3では、一つ目のアプリケーションである「App-α」で使用するデバイス12としてデバイス種類「X,Y」が登録され、二つ目のアプリケーションである「App-β」で使用するデバイス12としてデバイス種類「Z」が登録されている。デバイス種類は、例えば、GPU、FPGA、ASIC、NICを区別可能な情報である。
 「IF帯域の設定リソース量」は、アプリケーションで使用する接続IF13の帯域に関する情報である。図3では、一つ目のアプリケーションである「App-α」で使用するデバイス種類「X」の論理リソース量として「3」が登録され、一つ目のアプリケーションである「App-α」で使用するデバイス種類「Y」の論理リソース量として「4」が登録され、二つ目のアプリケーションである「App-β」で使用するデバイス種類「Z」の論理リソース量として「3」が登録されている。「IF帯域の論理リソース量」は、図2における論理リソース量の範囲に基づいて設定される。コンテナがサーバ10にデプロイされるときに、「IF帯域の設定リソース量」として登録された分の帯域が、デバイス12に割り当てられる。
 なお、各々のサーバ10のスペックが同じ場合には、図2に基づく論理リソース量の設定を行わず(つまり、論理リソース量として規定値を設定し)、図3に示す論理リソース量の割り当て比率のみを設定してもよい。図2に基づいて、各々のサーバ10の帯域に対して論理リソース量を設定するのは、各々のサーバ10のスペックに差があることを想定している場合である。
 図1に示すサーバ10の調整部15は、帯域の使用比率が割り当て比率に比べて高いものに対して、前記帯域の使用量が低減するように制御する。帯域の使用比率と割り当て比率との比較は、デバイス単位で行うことができる。
(デバイス単位で使用比率と割り当て比率との比較を行う処理の説明)
 調整部15は、「IF帯域の設定リソース量」に基づいてデバイス単位での割り当て比率を算出する。例えば、あるサーバ10で「App-α」および「App-β」を実行することを想定した場合、「App-α」で使用するデバイス種類「X」のデバイス12の割り当て比率として「3/10(30%)」を算出し、「App-α」で使用するデバイス種類「Y」のデバイス12の割り当て比率として「4/10(40%)」を算出し、「App-β」で使用するデバイス種類「Z」のデバイス12の割り当て比率として「3/10(30%)」を算出する。また、調整部15は、デバイス12ごとの帯域の使用量を監視部14から取得して使用比率を算出し、デバイス12の割り当て比率と比較することによって、使用比率が割り当て比率に比べて高いデバイス12を判定する。そして、調整部15は、使用比率が割り当て比率に比べて高いと判定したデバイス12に対して帯域の使用量が低減するように制御する。
 次に、管理装置20について説明する。図1に示すように、管理装置20は、管理部21を備える。管理部21は、オーケストレーションソフトウェアをプログラム実行処理することによって実現される。
 管理部21は、仮想化リソース(コンテナやVM等)で実行されるアプリケーションを制御する。仮想化リソースは、各サーバ10に設定される。
 アプリケーションは、管理部21に対して、物理リソース量をリクエストする。例えば、アプリケーションは、管理部21に対して、CPUが「3コア」、メモリが「4GB」、GPUが「1つ」のように、どのくらいの物理リソース量が必要かをリクエストする。
 また、アプリケーションは、管理部21に対して、論理リソース量をリクエストする。例えば、アプリケーションは、管理部21に対して、接続IF13の帯域の論理リソース量として「3(App-αが、デバイス種類「X」のデバイス12の論理リソース量をリクエストする場合)」、「4(App-αが、デバイス種類「Y」のデバイス12の論理リソース量をリクエストする場合)」のように、どのくらいの論理リソース量が必要かをデバイス単位でリクエストする。
 管理部21は、空いているサーバ群の中で、リクエストされた物理リソース量および論理リソース量の条件を満たすサーバ10を見つけ、見つけたサーバ10にVMまたはコンテナを割り当てる。そして、サーバ10にVMまたはコンテナがデプロイされた後でアプリケーションが実行される。アプリケーションが実行されている間、監視部14は、接続IF13の帯域の使用量を監視し、調整部15は、帯域の使用量が上限を超えている場合に使用量を調整する。調整部15は、帯域の使用量を調整するために必要な情報を、管理部21との間で送受信する。
<情報処理システムでの帯域の使用量の調整処理>
 次に、本実施形態に係る情報処理システム1が実行する帯域の使用量の調整処理の流れについて説明する。
 接続IF13の帯域の使用量の調整処理は、デバイス12に設定可能な方法に合わせて選択するのがよい。以下では、<1>デバイス12の設定を変更することによって接続IF13の帯域の使用量を直接調整可能なもの(「第1のデバイス」と称する)、<2>デバイス12のスループットを制御することによって接続IF13の帯域の使用量を間接的に調整可能なもの(「第2のデバイス」と称する)に場合分けして、帯域の使用量の調整処理について説明する。
<1>デバイス12の設定を変更することによって接続IF13の帯域の使用量を直接調整可能なもの(第1のデバイス)の調整処理
 ネットワークインターフェースカード(NIC)のように、デバイス12自体の設定値が利用する接続IF13の帯域量に等しい場合、または、接続IF13の帯域量を直接設定可能なデバイス12である場合、デバイス12の設定を変更することによって接続IF13の帯域の使用量を調整する。調整部15は、接続IF13の帯域の使用量が上限を超えている場合に、第1のデバイス12が使用可能な帯域を削減する制御を行う。これにより、例えば、NICを介して入力されるデータ量を減らせるので、接続IF13に流れるデータ量も必然的に減らすことが可能となる。
 図4を参照して(適宜、図1乃至図3を参照)、第1のデバイス12に対する帯域の調整処理について説明する。図4は、本実施形態に係る情報処理方法のフローチャート(第1のデバイス)の例示である。
 管理装置20の管理部21は、コンテナをデプロイする際に、論理リソースの割り当て量を設定する(ステップS11)。例えば、一つ目のサーバ10Aである「Server A」で「App-α」および「App-β」を実行することを想定した場合、管理部21は、「App-α」で使用するデバイス種類「X」のデバイス12に論理リソース量として「3」を割り当て、「App-α」で使用するデバイス種類「Y」のデバイス12に論理リソース量として「4」を割り当て、「App-β」で使用するデバイス種類「Z」のデバイス12に論理リソース量として「3」を割り当てる。そして、割り当てられた論理リソース量に基づいて、アプリケーションが実行される。
 アプリケーションの実行が開始した後で、サーバ10の監視部14は、接続IF13の送信側および受信側の帯域の使用量を確認する(ステップS12)。図4では、送信側の帯域の使用量を「tx」と表記し、受信側の帯域の使用量を「rx」と表記している。続いて、監視部14は、送信側または受信側の帯域の使用量が性能上限に達しているか否かを判定する(ステップS13)。性能上限に達していない場合(ステップS13で“No”)、競合が起きていないので調整は行わず、処理をステップS12に進めて帯域の使用量を引き続き確認する。
 一方、性能上限に達している場合(ステップS13で“Yes”)、サーバ10の調整部15は、割り当て比率と使用比率を比較して、使用比率が高くなっている第1のデバイス12の利用可能な接続IF13の帯域を削減する(ステップS14)。例えば、「App-α」で使用する第1のデバイス12の割り当て比率「3/10(30%)」に対して、使用比率が「4/10(40%)」になっていた場合に、当該第1のデバイス12が利用可能な帯域を削減する。そして、処理をステップS12に進めて帯域の使用量を引き続き確認する。
<2>デバイス12のスループットを制御することによって接続IF13の帯域の使用量を間接的に調整可能なもの(第2のデバイス)の調整処理
 デバイス12がGPU、FPGA、ASICなどの演算デバイスである場合、処理のスループットを制御することで、接続IF13の帯域の使用量を調整する。調整部15は、接続IF13の帯域の使用量が上限を超えている場合に、第2のデバイス12の演算ユニット数を削減する制御、および、動作クロックを下げる制御、の少なくとも何れか一方を行う。これにより、演算処理を行うデータ量を減らせるので、接続IF13に流れるデータ量も必然的に減らすことが可能となる。
 図5および図6を参照して(適宜、図1乃至図4を参照)、第2のデバイス12に対する帯域の調整処理について説明する。図5および図6は、本実施形態に係る情報処理方法のフローチャート(第2のデバイス)の例示である。
 図5におけるステップS21~ステップS23の処理は、図4におけるステップS11~ステップS13の処理と同様である。その為、これらのステップの処理の説明は省略する。ステップS23の判定で性能上限に達している場合(ステップS23で“Yes”)、サーバ10の調整部15は、割り当て比率と使用比率を比較して、使用比率が高くなっている第2のデバイス12の実行可能な演算ユニット数を削減する(ステップS24)。例えば、「App-α」で使用する第2のデバイス12の割り当て比率「3/10(30%)」に対して、使用比率が「4/10(40%)」になっていた場合に、当該第2のデバイス12の実行可能な演算ユニット数を削減する。そして、処理をステップS22に進めて帯域の使用量を引き続き確認する。
 図6におけるステップS31~ステップS33の処理は、図4におけるステップS11~ステップS13の処理と同様である。その為、これらのステップの処理の説明は省略する。ステップS33の判定で性能上限に達している場合(ステップS33で“Yes”)、サーバ10の調整部15は、割り当て比率と使用比率を比較して、使用比率が高くなっている第2のデバイス12の動作クロックを下げる(ステップS34)。例えば、「App-α」で使用する第2のデバイス12の割り当て比率「3/10(30%)」に対して、使用比率が「4/10(40%)」になっていた場合に、当該第2のデバイス12の動作クロックを下げる。そして、処理をステップS32に進めて帯域の使用量を引き続き確認する。
 また、デバイス12がGPU、FPGA、ASICなどの演算デバイスである場合、調整部15は、第2のデバイス12の演算ユニット数を削減する制御と動作クロックを下げる制御とを組み合わせた処理を行ってもよい。
 図7および図8を参照して(適宜、図1乃至図6を参照)、第2のデバイス12に対する組合せ方式による帯域の調整処理について説明する。図7は、組合せ方式の調整処理で設定するパラメータの一覧である。図8は、本実施形態に係る情報処理方法のフローチャート(第2のデバイス)の例示である。
 ここで、演算デバイスは、例えば、動作周波数が「1.5GHz」程度であり、演算ユニット数が「108」程度であるとする。動作クロックは、「100MHz」単位で設定可能な場合が多く、設定に伴う最小変化幅は「5~10%」程度となる。また、演算ユニット数は、「NVIDIA Multi-Instance GPU」を想定すると、設定に伴う最小変化幅は「15%」程度となる。
 図7に示す「閾値」のパラメータは、動作クロックで設定可能な最小変化幅による演算性能変化と、演算ユニット数で設定可能な最小変化幅による演算性能変化とが同じになる値である。例えば、動作クロックの最小変化幅が「5%」であるとし、演算ユニット数による最小変化幅が「15%」であるとした場合、閾値は「15%」である。
 「設定値A」のパラメータは、動作クロックまたは演算ユニット数で設定可能な最小変化幅が小さい方の設定値である。ここでは、動作クロックの最小変化幅の方が小さいので、設定値Aは動作クロックの設定値である。
 「設定値B」のパラメータは、動作クロックまたは演算ユニット数で設定可能な最小変化幅が大きい方の設定値である。ここでは、演算ユニット数の最小変化幅の方が大きいので、設定値Bは演算ユニット数の設定値である。
 「優先設定」のパラメータは、特定の状況になった場合に、動作クロックまたは演算ユニット数のどちらを削減するかを示す情報である。ここでは、設定可能な最小変化幅が小さい方(動作クロック)を用いてより細かな粒度で帯域の使用量の調整を行い、性能影響を最小化する。そして、閾値を超える設定変更の場合に、事前に設定された優先設定(例えば、演算ユニット数)に基づいた帯域の使用量の調整を行うことで、アプリケーションの特性に合わせて性能影響を最小化する。優先設定の処理の詳細は図8に示す通りである。
 図8におけるステップS41~ステップS43の処理は、図4におけるステップS11~ステップS13の処理と同様である。その為、これらのステップの処理の説明は省略する。ステップS43の判定で性能上限に達している場合(ステップS43で“Yes”)、サーバ10の調整部15は、割り当て比率と使用比率を比較して、使用比率が高くなっている第2のデバイス12を確認する(ステップS44)。
 続いて、調整部15は、確認した第2のデバイス12に対して既に設定変更を行っていて、次に設定を下げる場合に閾値に到達するか否かを判定する(ステップS45)。ステップS45で“No”の場合、調整部15は、パラメータの「設定値A」に基づいて最小変化幅が小さい方の設定を下げる(ステップS46)。一方、ステップS45で“Yes”の場合、調整部15は、優先設定に基づく設定値を下げ、優先設定ではない値を戻す(ステップS47)。
 例えば、帯域の使用量が最初に上限に達した場合に、動作クロックを下げて帯域の使用量を調整し、それに伴い最小変化幅「5%」だけ演算性能が低下する。帯域の使用量が次に上限に達した場合に、演算性能を下げたとしても閾値「15%」まで達しないので、動作クロックをさらに下げて帯域の使用量を調整し、それに伴い最小変化幅「5%」だけ演算性能が低下して合計の変化量が「10%」となる。帯域の使用量がさらに次に上限に達した場合に、演算性能を下げると閾値「15%」に到達するので、演算ユニット数を削減して帯域の使用量を調整すると共に、動作クロックの設定を戻して動作クロックによる演算性能の低下を解消する。それに伴い演算ユニット数の設定による最小変化幅「15%」だけ演算性能が低下する。帯域の使用量がさらに次に上限に達した場合に、演算性能を下げたとしても閾値「15%」まで達しないので(動作クロックの設定を戻したので)、動作クロックを下げて帯域の使用量を調整し、それに伴い最小変化幅「5%」だけ演算性能が低下して合計の変化量が「20%」となる。なお、優先設定を動作クロックとすることで、動作クロックの設定による帯域の使用量の調整を常に行うことも可能である。これにより、細かな粒度で帯域の使用量の調整を行うと共に、アプリケーションの特性に合わせた設定の変更が可能となる。例えば、アプリケーションの特性上、動作クロックを必要以上に下げたくないという要望に応えることが可能となる。
<ハードウェア構成>
 本実施形態に係るサーバ10(情報処理装置)は、例えば図10に示すような構成のコンピュータ900によって実現される。
 図10は、本実施形態に係るサーバ10(情報処理装置)の機能を実現するコンピュータ900の一例を示すハードウェア構成図である。コンピュータ900は、CPU901、ROM(Read Only Memory)902、RAM903、HDD(Hard Disk Drive)904、入出力I/F(Interface)905、通信I/F906およびメディアI/F907を有する。
 CPU901は、ROM902またはHDD904に記憶されたプログラムに基づき作動し、制御部による制御を行う。ROM902は、コンピュータ900の起動時にCPU901により実行されるブートプログラムや、コンピュータ900のハードウェアに係るプログラム等を記憶する。
 CPU901は、入出力I/F905を介して、マウスやキーボード等の入力装置910、および、ディスプレイやプリンタ等の出力装置911を制御する。CPU901は、入出力I/F905を介して、入力装置910からデータを取得するともに、生成したデータを出力装置911へ出力する。なお、プロセッサとしてCPU901とともに、GPU等を用いても良い。
 HDD904は、CPU901により実行されるプログラムおよび当該プログラムによって使用されるデータ等を記憶する。通信I/F906は、通信網(例えば、NW(Network)920)を介して他の装置からデータを受信してCPU901へ出力し、また、CPU901が生成したデータを、通信網を介して他の装置へ送信する。
 メディアI/F907は、記録媒体912に格納されたプログラムまたはデータを読み取り、RAM903を介してCPU901へ出力する。CPU901は、目的の処理に係るプログラムを、メディアI/F907を介して記録媒体912からRAM903上にロードし、ロードしたプログラムを実行する。記録媒体912は、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto Optical disk)等の光磁気記録媒体、磁気記録媒体、半導体メモリ等である。
 例えば、コンピュータ900が本発明のサーバ10(情報処理装置)として機能する場合、コンピュータ900のCPU901は、RAM903上にロードされたプログラムを実行することにより、サーバ10(情報処理装置)の機能を実現する。また、HDD904には、RAM903内のデータが記憶される。CPU901は、目的の処理に係るプログラムを記録媒体912から読み取って実行する。この他、CPU901は、他の装置から通信網(NW920)を介して目的の処理に係るプログラムを読み込んでもよい。
<効果>
 以下、本発明に係る情報処理装置等の効果について説明する。
 本発明に係る情報処理装置は、コンテナおよび仮想マシンの何れかのアプリケーションを実行可能なサーバ10であって、CPU11と、CPU11に複数のデバイス12を接続する接続IF13と、接続IF13の帯域の使用量が上限を超えているかを監視する監視部14と、前記使用量が上限を超えている場合に当該帯域の使用量を調整する調整部15と、を備え、前記帯域には、論理リソース量が定義されており、また、デバイス12に紐付けた割り当て比率が前記論理リソース量に基づいて設定されており、調整部15は、前記帯域の使用比率が前記割り当て比率に比べて高いものに対して、前記帯域の使用量が低減するように制御する、ことを特徴とする。
 この情報処理装置としてのサーバ10によれば、接続IF13の帯域に論理リソース量が定義されており、当該論理リソース量を用いて帯域の使用量の調整を行うことが可能となる。これにより、接続IF13の使用量が上限を超えるのを防ぐことができ、接続IF13の帯域が不足することによる競合を抑制することが可能となる。その結果、アプリケーションの性能を保証することが可能となる。また、本発明は、アプリケーションの実装に依存せず、汎用的に使用することが可能である。
 また、デバイス12は、当該デバイス12の設定を変更することによって、接続IF13の帯域の使用量を調整可能な第1のデバイスであり、調整部15は、前記使用量が上限を超えている場合に、使用可能な前記帯域を削減する制御を行う、ことを特徴とする。
 このようにすることで、NICなどのデバイス12がCPU11に接続されている場合でも帯域の使用量を適切に調整することが可能となる。
 また、デバイス12は、当該デバイス12のスループットを制御することによって、接続IF13の帯域の使用量を調整可能な第2のデバイスであり、調整部15は、前記使用量が上限を超えている場合に、演算ユニット数を削減する制御、および、動作クロックを下げる制御、の少なくとも何れか一方を行う、ことを特徴とする。
 このようにすることで、GPU、FPGA、ASICなどのデバイス12がCPU11に接続されている場合でも帯域の使用量を適切に調整することが可能となる。
 また、前記演算ユニット数を削減する制御による演算性能変化の最小変化幅と、前記動作クロックを下げる制御による演算性能変化の最小変化幅とが異なっており、前記最小変化幅が小さい方の設定値を下げていった場合の変化量と前記最小変化幅が大きい方の設定値を下げていった場合の変化量とが同等になる値を閾値として有しており、前記演算ユニット数を削減する制御および前記動作クロックを下げる制御の何れを優先するかを登録した優先設定が行われており、調整部15は、前記使用量が上限を超えている場合に、前記最小変化幅が小さい方の設定値を徐々に下げていき、次に前記設定値を下げることで前記最小変化幅が小さい方の変化量が前記閾値に到達する場合に、前記優先設定した方の前記設定値を下げると共に他方の前記設定値を最初の状態に戻す、ことを特徴とする。
 このようにすることで、GPU、FPGA、ASICなどのデバイス12がCPU11に接続されている場合に、細かな粒度で帯域の使用量の調整を行うと共に、アプリケーションの特性に合わせた設定の変更が可能となる。
 なお、本発明は、以上説明した実施形態に限定されるものではなく、多くの変形が本発明の技術的思想内で当分野において通常の知識を有する者により可能である。
 1   情報処理システム
 10,10A,10B,10C サーバ(情報処理装置)
 11  CPU
 12  デバイス
 13  接続IF
 14  監視部
 15  調整部
 20  管理装置
 21  管理部

Claims (6)

  1.  コンテナおよび仮想マシンの何れかのアプリケーションを実行可能な情報処理装置であって、
     CPUと、
     前記CPUに複数のデバイスを接続する接続IFと、
     前記接続IFの帯域の使用量が上限を超えているかを監視する監視部と、
     前記使用量が上限を超えている場合に当該帯域の使用量を調整する調整部と、を備え、
     前記帯域には、論理リソース量が定義されており、また、前記デバイスに紐付けた割り当て比率が前記論理リソース量に基づいて設定されており、
     前記調整部は、前記帯域の使用比率が前記割り当て比率に比べて高いものに対して、前記帯域の使用量が低減するように制御する、
     ことを特徴とする情報処理装置。
  2.  前記デバイスは、当該デバイスの設定を変更することによって、前記接続IFの帯域の使用量を調整可能な第1のデバイスであり、
     前記調整部は、前記使用量が上限を超えている場合に、使用可能な前記帯域を削減する制御を行う、
     ことを特徴とする請求項1に記載の情報処理装置。
  3.  前記デバイスは、当該デバイスのスループットを制御することによって、前記接続IFの帯域の使用量を調整可能な第2のデバイスであり、
     前記調整部は、前記使用量が上限を超えている場合に、演算ユニット数を削減する制御、および、動作クロックを下げる制御、の少なくとも何れか一方を行う、
     ことを特徴とする請求項1に記載の情報処理装置。
  4.  前記演算ユニット数を削減する制御による演算性能変化の最小変化幅と、前記動作クロックを下げる制御による演算性能変化の最小変化幅とが異なっており、前記最小変化幅が小さい方の設定値を下げていった場合の変化量と前記最小変化幅が大きい方の設定値を下げていった場合の変化量とが同等になる値を閾値として有しており、
     前記演算ユニット数を削減する制御および前記動作クロックを下げる制御の何れを優先するかを登録した優先設定が行われており、
     前記調整部は、前記使用量が上限を超えている場合に、前記最小変化幅が小さい方の設定値を徐々に下げていき、次に前記設定値を下げることで前記最小変化幅が小さい方の変化量が前記閾値に到達する場合に、前記優先設定した方の前記設定値を下げると共に他方の前記設定値を最初の状態に戻す、
     ことを特徴とする請求項3に記載の情報処理装置。
  5.  コンテナおよび仮想マシンの何れかのアプリケーションを実行可能な情報処理装置の情報処理方法であって、
     前記情報処理装置は、
     CPUと、前記CPUに複数のデバイスを接続する接続IFと、を備えており、
     前記接続IFの帯域の使用量が上限を超えているかを監視する監視ステップと、
     前記使用量が上限を超えている場合に当該帯域の使用量を調整する調整ステップと、を実行し、
     前記帯域には、論理リソース量が定義されており、また、前記デバイスに紐付けた割り当て比率が前記論理リソース量に基づいて設定されており、
     前記調整ステップでは、前記帯域の使用比率が前記割り当て比率に比べて高いものに対して、前記帯域の使用量が低減するように制御する、
     ことを特徴とする情報処理方法。
  6.  コンピュータを、請求項1乃至請求項4のいずれか一項に記載の情報処理装置として機能させるためのプログラム。
PCT/JP2022/024146 2022-06-16 2022-06-16 情報処理装置、情報処理方法、および、プログラム WO2023243039A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/024146 WO2023243039A1 (ja) 2022-06-16 2022-06-16 情報処理装置、情報処理方法、および、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/024146 WO2023243039A1 (ja) 2022-06-16 2022-06-16 情報処理装置、情報処理方法、および、プログラム

Publications (1)

Publication Number Publication Date
WO2023243039A1 true WO2023243039A1 (ja) 2023-12-21

Family

ID=89192491

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/024146 WO2023243039A1 (ja) 2022-06-16 2022-06-16 情報処理装置、情報処理方法、および、プログラム

Country Status (1)

Country Link
WO (1) WO2023243039A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005222123A (ja) * 2004-02-03 2005-08-18 Hitachi Ltd 計算機システム、管理装置、ストレージ装置及びコンピュータ装置
JP2012181578A (ja) * 2011-02-28 2012-09-20 Fuji Xerox Co Ltd 更新制御装置及びプログラム
WO2016092604A1 (ja) * 2014-12-08 2016-06-16 株式会社日立製作所 データ処理システムおよびデータアクセス方法
JP2017142647A (ja) * 2016-02-10 2017-08-17 日本電信電話株式会社 リソース管理装置及びリソース管理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005222123A (ja) * 2004-02-03 2005-08-18 Hitachi Ltd 計算機システム、管理装置、ストレージ装置及びコンピュータ装置
JP2012181578A (ja) * 2011-02-28 2012-09-20 Fuji Xerox Co Ltd 更新制御装置及びプログラム
WO2016092604A1 (ja) * 2014-12-08 2016-06-16 株式会社日立製作所 データ処理システムおよびデータアクセス方法
JP2017142647A (ja) * 2016-02-10 2017-08-17 日本電信電話株式会社 リソース管理装置及びリソース管理方法

Similar Documents

Publication Publication Date Title
US10255217B2 (en) Two level QoS scheduling for latency and queue depth control
US10360653B2 (en) Host-based GPU resource scheduling
US9621654B2 (en) Intelligent data propagation using performance monitoring
US9442763B2 (en) Resource allocation method and resource management platform
US8756610B2 (en) Dynamically scaling multi-tier applications vertically and horizontally in a cloud environment
US20190052532A1 (en) Cross layer signaling for network resource scaling
RU2682844C1 (ru) Способ и устройство управления потоком в nfv архитектуре
WO2020015356A1 (en) Method and system for cluster rate limiting in a cloud computing system
US9411658B2 (en) Token-based adaptive task management for virtual machines
US10630600B2 (en) Adaptive network input-output control in virtual environments
CN111404992A (zh) 承租人控制的云更新
US11163606B1 (en) Systems and methods for thread management to optimize resource utilization in a distributed computing environment
US20210389995A1 (en) Information processing system and control method
US20220075665A1 (en) Scheduling method for selecting optimal cluster within cluster of distributed collaboration type
CN111512291A (zh) 基于服务质量底限调度存储器带宽
Elnably et al. Reward scheduling for QoS in cloud applications
WO2023243039A1 (ja) 情報処理装置、情報処理方法、および、プログラム
KR101924467B1 (ko) 가상 머신의 cpu 및 블록 i/o 작업에 성능 보장을 위한 자원 할당 시스템 및 방법
Wu et al. Abp scheduler: Speeding up service spread in docker swarm
Mann A taxonomy for the virtual machine allocation problem
JP2007179246A (ja) 計算機管理方法、計算機管理プログラム、および、計算機管理サーバ
Silva et al. VM performance isolation to support QoS in cloud
WO2024053021A1 (ja) 動作モード設定装置、動作モード設定方法、動作モード設定プログラムおよびシステム
JP2012133629A (ja) ストレージリソース制御システムおよびストレージリソース制御プログラムならびにストレージリソース制御方法
WO2014115282A1 (ja) 計算機システム及び計算機リソースの割当方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22946856

Country of ref document: EP

Kind code of ref document: A1