Resource Dynamic Allocation Device, Resource Dynamic Allocation Program, and Resource Dynamic Allocation Method

The resource dynamic allocation device addresses inefficient resource use by dynamically reallocating physical resources among applications, enhancing efficiency and reducing power consumption without altering application logic.

JP7700854B2Active Publication Date: 2025-07-01NIPPON TELEGRAPH & TELEPHONE CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023529376
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-06-24
Publication Date
2025-07-01
Estimated Expiration
2041-06-24

AI Technical Summary

Technical Problem

Existing resource allocation methods in applications using accelerators result in inefficient use of physical resources due to the inability to dynamically reallocate resources without stopping application processes, and require significant changes to application logic for dynamic resource connection and disconnection.

Method used

A resource dynamic allocation device that includes a thread ID acquisition unit and a resource recording and allocation unit to dynamically allocate and freeze threads based on traffic and load, allowing physical resources to be shared among applications without modifying existing application logic.

Benefits of technology

Maximizes resource efficiency by enabling dynamic allocation and separation of physical resources, preventing over-provisioning, and reducing power consumption through thread freezing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007700854000001
    Figure 0007700854000001
  • Figure 0007700854000002
    Figure 0007700854000002
  • Figure 0007700854000003
    Figure 0007700854000003
Patent Text Reader

Abstract

A resource dynamic allocation device (1) is provided with: a thread ID acquisition unit (31) that acquires identification information of an application process initialized at the time of startup, identification information of threads which constitute the application process and to which available physical resources on a physical server have been allocated, and identification information of the physical resources allocated to the threads; and a resource recording and allocation unit (34) that freezes all of the threads of the initialized application process and freezes or unfreezes a thread according to one of transfer traffic, a resource load, and an application process load.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a resource dynamic allocation device, a resource dynamic allocation program , oh and a resource dynamic allocation method.

Background Art

[0002] In recent years, accelerators with multiple inference convolutional neural networks mounted in IP core (Intellectual Property Core) units have come to be used. Such accelerators can be used in multiple use cases.

[0003] An accelerator has a plurality of transmission queues for transmitting data to a CPU (Central Processing Unit) or reception queues for receiving data from the CPU. The accelerator processes the data in each reception queue independently and in parallel and returns it to the corresponding transmission queue. Then, a CPU core that executes a thread constituting an application process performs polling transmission and polling reception of data with respect to the accelerator.

[0004] Existing applications that transfer data to an accelerator in a poll mode, such as DPDK (Data Plane Development Kit), describe in detail how to use NIC (Network Interface Card) logical queues, logical CPU cores, and ACC (Accelerator) logical queues within the application, and operate by associating them with physical resources at the time of initializing the application startup.

[0005] For example, the case of accelerating a network application such as vRAN (Virtualized Radio Access Network) with DPDK and FPGA (Field-Programmable Gate Array) corresponds to the above premise.

Prior Art Documents

Non-Patent Documents

[0006]

Non-Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0007] Here, when an application process uses physical resources such as an accelerator, there are the following two problems. The first problem is efficiency. When physical resources are allocated to an application process at initialization, the allocated physical resources move under the management of the application process. The physical resources allocated to a certain application process cannot be allocated to other application processes until the entire application process stops in terms of performance and security. That is, to reuse physical resources, it is necessary to stop all threads including the running processes. That is, even though physical resources are allocated to an application process, if these physical resources are not used, the operating efficiency of the physical resources will decrease.

[0008] The second problem is generality. If the application program supports not only initialization but also dynamic resource connection and disconnection during operation, the first problem can be solved, but significant changes are required to the logic of all application programs. Therefore, while following the logic of existing application programs to achieve generality, it is desirable that unused physical resources can be separated from the application process without stopping the application process and reassigned to other application processes. To achieve this, it is desirable that efficiency can be realized through platform-side measures without modifying the logic of existing application programs that describe how to use CPU cores and queues.

[0009] Therefore, an object of the present invention is to maximize resource efficiency by dynamically allocating physical resources installed in a physical server to each application.

Means for Solving the Problems

[0010] To solve the above problems, a resource dynamic allocation device of the present invention includes: a thread ID acquisition unit that acquires identification information of an application process initialized at startup, identification information of a thread that constitutes the application process and to which possible physical resources on a physical server are allocated, and identification information of physical resources allocated to the thread; and a resource recording and allocation unit that freezes all threads of the initialized application process and freezes or unfreezes the thread according to any one of transfer traffic, resource load, and the load of the application process. Other means will be described in the mode for carrying out the invention.

Effects of the Invention

[0011] According to the present invention, it is possible to maximize resource efficiency by dynamically allocating physical resources installed in a physical server to each application.

Brief Description of the Drawings

[0012]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Modes for Carrying Out the Invention

[0013] Hereinafter, modes for carrying out the present invention will be described in detail with reference to the respective drawings. FIG. 1 is a configuration diagram of the resource dynamic allocation device 1 according to this embodiment. The resource dynamic allocation device 1 includes a thread ID acquisition unit 31, a thread control unit 36, a resource recording and allocation unit 34, and a monitoring unit 33. These functional units are implemented on the same physical server.

[0014] This resource dynamic allocation device 1 is further a computer including an operating system 40 and hardware 41. Note that the operating system 40 may sometimes be simply described as "OS". The hardware 41 includes a NIC physical queue 42, a NIC 43, a CPU 44, an ACC physical queue 45, an accelerator 46, and a storage unit 47. A resource dynamic allocation program 471 is stored in the storage unit 47. By the CPU 44 executing the resource dynamic allocation program 471, the functional units of the thread ID acquisition unit 31, the thread control unit 36, the resource recording and allocation unit 34, and the monitoring unit 33 are implemented.

[0015] When each application 2a, 2b is started, all possible physical resources on the physical server constituting the resource dynamic allocation device 1 are allocated. Here, the physical resources are, for example, the physical CPU cores constituting the CPU 44 of the hardware 41, the NIC physical queue 42, the NIC 43, the ACC physical queue 45, the accelerator 46, and the like. When these physical resources are allocated to a plurality of applications, they are used exclusively by each application in a time-sharing manner.

[0016] The CPU 44 includes a plurality of physical CPU cores. The NIC 43 includes a plurality of ports. The NIC physical queue 42 includes a plurality of physical queues. These physical queues are roughly classified into a transmission queue and a reception queue. The data stored in the transmission queue is transmitted outside this resource dynamic allocation device 1 through any of the ports of the NIC 43. The data taken out from the reception queue is received from the outside through any of the ports of the NIC 43.

[0017] The accelerator 46 is configured to include a plurality of accelerator cores. The ACC physical queue 45 is configured to include a plurality of physical queues. These physical queues are roughly classified into a transmission queue and a reception queue. The data placed in the transmission queue is processed by the accelerator core and then stored in the reception queue. The data retrieved from the reception queue by the physical CPU core is the data processed by any of the accelerator cores.

[0018] The thread ID acquisition unit 31 acquires, at the initialization of the application, the thread IDs of each thread of the application, the correspondence between the logical CPU cores and the physical CPU cores, the correspondence between the ACC logical queue and the ACC physical queue 45, and the correspondence between the NIC logical queue and the NIC physical queue 42, and stores them in the thread information table 32.

[0019] The monitoring unit 33 monitors the transfer traffic, resource load (such as the usage rate of the queue), and the load of the application. The monitoring unit 33 compares these loads with the threshold values and notifies the resource recording and allocation unit 34 of the scale-out or scale-in of the application as necessary.

[0020] After the initialization of the application, the resource recording and allocation unit 34 transmits the thread ID of this application to the thread control unit 36 and freezes all the threads of this application. When the resource recording and allocation unit 34 is notified of scale-out from the monitoring unit 33, it freezes the threads, and when it is notified of scale-in, it releases the freezing of the threads.

[0021] The resource recording and allocation unit 34 holds the frozen state of the threads in the thread state table 35. By referring to both the thread state table 35 and the thread information table 32, the resource recording and allocation unit 34 controls the access to the physical resources allocated to this application by this application and other applications so that they do not occur simultaneously.

[0022] The resource recording and allocation unit 34 holds the freezing state of each thread, and realizes dynamic resource allocation by performing freezing control so that applications do not access the same resource simultaneously.

[0023] The thread control unit 36 has an interface compatible with existing applications. By freezing and unfreezing each thread from the outside, this thread control unit 36 realizes dynamic resource allocation without changing the logic of existing applications.

[0024] Figure 2 is a diagram showing an operation example of application 2a (App#1). An existing application 2a that transfers data to the accelerator 46 in poll mode, such as DPDK, embodies an NIC logical queue 22, logical CPU cores 24a, 24b,... and an ACC logical queue 25 inside.

[0025] The logical CPU core 24a assigned the number #0 performs data reception processing of the NIC logical queue 22a assigned the number #0 and offload transmission to the ACC logical queue 25a. This series of processes is called a transfer loop process 1A. By this transfer loop process 1A, the content of the NIC logical queue 22a is transferred to the ACC logical queue 25a, and the accelerator core associated with the ACC logical queue 25a can process the content of the ACC logical queue 25a.

[0026] The logical CPU core 24b assigned the number #1 performs offload reception processing of the ACC logical queue 25b assigned the number #1 and data transmission to the NIC logical queue 22b. This series of processes is called a transfer loop process 1B. By this transfer loop process 1B, the content output by the accelerator core to the ACC logical queue 25b is transferred to the NIC logical queue 22b.

[0027] Figure 3 is a diagram for explaining the startup parameter 21a of application #1. The startup parameters 21a store the correspondence between the NIC logical queue and the NIC physical queue, the correspondence between the logical CPU core and the physical CPU core, and the correspondence between the ACC logical queue and the ACC physical queue. Specifically, NIC logical queue #0 is associated with NIC physical queue #0. Logical CPU core #1 is associated with physical CPU core #1. ACC logical queue #1 is associated with ACC physical queue #0.

[0028] In this way, the startup parameters 21a describe in detail the settings at the startup of the application 2a, and when the application 2a is initialized at startup, each logical resource of the application 2a is associated with a physical resource.

[0029] When the physical resources required at the initialization of the application are allocated, the allocated physical resources are transferred under the management of the application. From the perspective of performance and security, these physical resources cannot be allocated to other applications until the entire process of that application stops. That is, for the reuse of physical resources, it is necessary to stop all the threads to which this physical resource is allocated, including the running processes.

[0030] Even though physical resources are allocated to an application, if these physical resources are not used, the operating efficiency of the physical resources (such as the accelerator) will decrease. Here, if the application supports dynamic resource connection and separation not only at initialization but also online, the above-mentioned first problem can be solved, but major changes are required to the logic of all applications.

[0031] Figure 4 is a diagram showing an operation example of the application 2b (App#2). The application 2b embodies an NIC logical queue 22, logical CPU cores 24a, 24b,... and an ACC logical queue 25 inside.

[0032] The logical CPU core 24a assigned the number #0 performs data reception processing of the NIC logical queue 22a assigned the number #0 and offload transmission to the ACC logical queue 25a. These series of processes are called transfer loop process 2A. By this transfer loop process 2A, the content of the NIC logical queue 22a is transferred to the ACC logical queue 25a, and the accelerator core associated with the ACC logical queue 25a can process the content of the ACC logical queue 25a.

[0033] The logical CPU core 24b assigned the number #1 performs offload reception processing of the ACC logical queue 25b assigned the number #1 and data transmission to the NIC logical queue 22b. These transfer loop processes are process 2B. By this transfer loop process 2B, the content output by the accelerator core to the ACC logical queue 25b is transferred to the NIC logical queue 22b.

[0034] Figure 5 is a diagram for explaining the startup parameters 21b of application #2. The startup parameters 21b store the correspondence between the NIC logical queue and the NIC physical queue, the correspondence between the logical CPU core and the physical CPU core, and the correspondence between the ACC logical queue and the ACC physical queue. Specifically, NIC logical queue #0 is associated with NIC physical queue #4. Logical CPU core #1 is associated with physical CPU core #3. ACC logical queue #1 is associated with ACC physical queue #0.

[0035] Figure 6 is a diagram for explaining the thread information table 32. The thread information table 32 is configured to include an application ID column, a transfer loop column, a thread ID column, a physical CPU core column, and an ACC physical queue column. Each row of the thread information table 32 corresponds to each thread that constitutes the application. The application ID column stores the identification number of the application. The transfer loop column stores the identification information of the transfer loop process.

[0036] In the thread ID column, the identifier of the thread that constitutes the application is stored. In the physical CPU core column, the identifier of the physical CPU assigned to this thread is stored. In the ACC physical queue column, the identifier of the ACC physical queue assigned to this thread is stored.

[0037] Figure 7 is a diagram for explaining the thread state table 35. The thread state table 35 is composed of a thread ID column and a freezing column. Each row of the thread state table 35 corresponds to each thread that constitutes the application. In the thread ID column, the identifier of the thread that constitutes the application is stored. In the freezing column, it is stored whether this thread is being frozen.

[0038] Figure 8 is a flowchart of the thread ID acquisition process. In this thread ID acquisition process, the thread ID acquisition unit 31 always determines whether there is a new process (S10). If there is a new process (Yes), the thread ID acquisition unit 31 proceeds to step S11; if there is no new process, the process of this step S10 is repeated.

[0039] In step S11, the thread ID acquisition unit 31 acquires the process ID as the application ID from the operator, the operating system 40, etc. Next, the thread ID acquisition unit 31 uses the functions of DPDK and the operating system 40 to acquire the thread ID, the physical CPU core ID used by each thread, and the ACC physical queue ID (step S12). After the thread ID acquisition unit 31 notifies the acquired physical CPU core ID and ACC physical queue ID, together with the application ID, to the resource recording and allocation unit 34 (step S13), it returns to the process of step S10.

[0040] Figure 9 is a flowchart of the monitoring process. In this monitoring process, the monitoring unit 33 constantly monitors the NIC 43 etc., and acquires statistical information such as traffic for each application on the physical server (S20). Then, the monitoring unit 33 determines whether the load of this application exceeds the upper limit threshold (S21). If the load of this application exceeds the upper limit threshold (Yes), the monitoring unit 33 notifies the resource recording and allocation unit 34 of the application ID and the necessity of scaling out this application (step S22), and then returns to the process of step S20.

[0041] If the load of this application does not exceed the upper limit threshold (No), the monitoring unit 33 proceeds to step S23. In step S23, if the load of this application is below the lower limit threshold (Yes), the monitoring unit 33 notifies the resource recording and allocation unit 34 of the application ID and the necessity of scaling in this application (step S24), and then returns to the process of step S20. In step S23, if the load of this application is not below the lower limit threshold (No), the monitoring unit 33 returns to the process of step S20.

[0042] Figure 10 is a flowchart of the thread control process. In this thread control process, the thread control unit 36 determines whether there is a notification of thread freezing or thawing from the resource recording and allocation unit 34 (S30). If there is a notification from the resource recording and allocation unit 34 (Yes), the thread control unit 36 uses functions of DPDK, the operating system 40, etc., and implements thread freezing or thawing as notified by the resource recording and allocation unit 34 (S31), and then returns to the process of step S30. If there is no notification from the resource recording and allocation unit 34 (No), the thread control unit 36 returns to the process of step S30.

[0043] Figure 11 is a flowchart of the thread freezing process. In this thread freezing process, the resource recording and allocation unit 34 determines whether there is a notification from the thread ID acquisition unit 31 that the application process has been started (S40). In step S40, if the resource recording and allocation unit 34 has received a notification from the thread ID acquisition unit 31 (Yes), it proceeds to step S41; if not (No), it returns to step S40.

[0044] In step S41, based on the information of the thread ID acquisition unit 31, the resource recording and allocation unit 34 notifies the thread control unit 36 to freeze all the threads of the application process. Next, after the resource recording and allocation unit 34 adds each thread ID to the thread state table 35, it returns to the process of step S40.

[0045] Figure 12 is a flowchart of the scale-out / scale-in process. The scale-out / scale-in process is implemented in parallel with the thread freezing process. In this scale-out / scale-in process, the resource recording and allocation unit 34 determines whether there is a notification from the monitoring unit 33 (S50). Then, the resource recording and allocation unit 34 determines whether the notification from the monitoring unit 33 is a scale-out (S51). If the notification from the monitoring unit 33 is a scale-out (Yes), the resource recording and allocation unit 34 proceeds to step S52; if it is a scale-in (No), it proceeds to step S58.

[0046] 《Scale-Out Process》 In step S52, the resource recording and allocation unit 34 repeats the processes of steps S53 to S56 for the frozen threads related to the notified process ID. The resource recording and allocation unit 34 refers to the thread information table and extracts all the threads of another process that use the same resources as that thread (step S53). Then, the resource recording and allocation unit 34 determines whether all the threads extracted in step S53 are in the frozen state (S54).

[0047] In step S54, if all the threads extracted in step S53 are frozen (Yes), the resource recording and allocation unit 34 proceeds to step S55, instructs the thread control unit 36 to unfreeze the selected thread, and updates the thread status table 32. If any of the extracted threads is not frozen (No), the resource recording and allocation unit 34 proceeds to step S56 and notifies an error due to resource shortage. In step S57, if the resource recording and allocation unit 34 has finished processing the frozen threads related to the notified process ID, it returns to the process of step S50.

[0048] 《Scale-in Processing》 In step S58, the resource recording and allocation unit 34 refers to the thread status table and selects any one of the threads that have been unfrozen among the processes. Then, the resource recording and allocation unit 34 instructs the thread control unit 36 to freeze the selected thread, and after updating the thread status table 35 (step S59), it returns to the process of step S50.

[0049] According to this embodiment, when multiple network applications that accelerate packet transfer using an accelerator such as vRAN are installed on the same server, the platform-side response enables dynamic allocation and separation of physical resources including the accelerator without modifying the existing application logic.

[0050] As a result, it is possible to dynamically adjust which application process to allocate physical resources according to the actual load. Therefore, over-provisioning to one application process can be prevented, and service continuity is possible with fewer physical resources. Furthermore, by freezing unused CPU threads, power consumption can be suppressed.

[0051] When the technology of the present invention is used, accelerators can be shared. For example, if there are three applications and four accelerators are prepared, basically, in a form where one accelerator is allocated to each application process on a one-to-one basis. Then, for each application process, one additional accelerator is redundantly allocated, and by sharing this additional accelerator among each process, it is possible to switch to the additional accelerator without dropping the process. That is, it is possible to utilize the present sharing technology for accelerator redundancy.

[0052] Furthermore, when freezing a thread, it is also possible to transfer the processing to another thread that is operating within the same process and then perform the freezing.

[0053] 《First Modified Example》 In the above embodiment, each function operates within the same physical server. In contrast, the first modified example is a resource dynamic allocation system that controls scale-in and scale-out of physical resources in cooperation with an external controller unit 5 based on information from a plurality of physical servers 4a, 4b.

[0054] FIG. 13 is an explanatory diagram of external controller cooperation during resource control. The resource dynamic allocation system 6 of the first modified example is configured to include a plurality of physical servers 4a, 4b and an external controller unit 5.

[0055] The physical servers 4a and 4b are resource dynamic allocation devices each including a thread ID acquisition unit 31, a thread control unit 36, a resource recording / assignment unit 34, and a monitoring unit 33. The monitoring unit 33 of the physical server 4a not only determines by itself the scale-in / out of resources from the load of the application and the traffic volume on its own physical server 4a, but also continuously notifies statistical information to the external controller unit 5. The monitoring unit 33 of the physical server 4b not only determines by itself the scale-in / out of resources from the load of the application and the traffic volume on its own physical server 4b, but also continuously notifies statistical information to the external controller unit 5. In this way, it is also possible to adopt a form in which the determination of the scale-in / out of resources is entrusted to the external controller unit 5.

[0056] According to the resource dynamic allocation system 6 of the first modification example, in combination with the statistical information (such as traffic volume) from each of the physical servers 4a and 4b, it is possible to comprehensively determine the necessity of scaling the resources from the values specific to the application (for example, in the case of RAN, weather, time zone in a day, etc.).

[0057] 《Second Modification Example》 FIG. 14 is an explanatory diagram of cooperation with another application. The error correction code processing function 2x operates in cooperation with the MAC (Media Access Control) scheduler function 2y. And the MAC scheduler function 2y operates in cooperation with the monitoring unit 33. The monitoring unit 33 determines the scale-in and scale-out of physical resources based not only on the information obtained from the operating system 40 or the external controller, but also on the information from the MAC scheduler function 2y which is the related application. Thereby, it is possible to suitably determine the scale-in and scale-out of physical resources.

[0058] 《Effect》 Hereinafter, the effects of the resource dynamic allocation device and the like according to the present invention will be described.

[0059] Claim 1 An application process initialized at startup, a thread that constitutes the application process and to which possible physical resources on a physical server are allocated, and a thread ID acquisition unit that acquires allocation information of the physical resources allocated to the thread and records it in a thread information table, a resource recording / assignment unit that freezes all threads of the initialized application process and freezes or unfreezes the thread according to any one of transfer traffic, resource load, and the load of the application process; A resource dynamic allocation device characterized by comprising the above.

[0060] The resource recording / assignment unit determines whether to freeze or unfreeze the thread according to any one of transfer traffic, resource load, and the load of the application process. As a result, the physical resources installed on the physical server can be used by each application in a time-sharing and dynamic manner, so that it is possible to maximize resource efficiency.

[0061] Claim 2 The resource recording / assignment unit holds the frozen state of the thread in a thread state table, and if it is determined that all other threads using the physical resources allocated to the frozen thread are frozen by referring to the thread information table and the thread state table, the freezing of the frozen thread is released. The resource dynamic allocation device according to claim 1, characterized by the above.

[0062] Thereby, it is possible to control so that accesses by a plurality of applications to the same physical resource do not occur simultaneously.

[0063] Claim 3 When the load of the application process exceeds the upper limit threshold, the resource recording and allocation unit further includes a monitoring unit that notifies the scale-out of the application process. The resource recording and allocation unit determines whether it can release the freezing of the frozen threads that make up the application process notified by the monitoring unit for scale-out. The resource dynamic allocation device according to claim 2, characterized in that.

[0064] In this way, it is possible to detect the scale-out of the application process and dynamically release the freezing of the frozen threads.

[0065] 《Claim 4》 When the load of the application process is below the lower limit threshold, the monitoring unit notifies the resource recording and allocation unit of the scale-in of the application process. The resource recording and allocation unit selects and freezes any one of the thawing threads that make up the application process notified by the monitoring unit for scale-in. The resource dynamic allocation device according to claim 3, characterized in that.

[0066] In this way, it is possible to detect the scale-in of the application process and dynamically freeze the threads that are being thawed.

[0067] 《Claim 5》 The application process permits duplicate allocation of the same physical resource to different threads. The resource dynamic allocation device according to claim 1, characterized in that.

[0068] In this way, for example, the reserves of the physical resources of a plurality of application processes can be allocated to a single physical resource.

[0069] 《Claim 6》 An application process initialized at startup, a thread that constitutes the application process and to which possible physical resources on a physical server are allocated, and a procedure for obtaining allocation information of the physical resources allocated to the thread A procedure for freezing all threads of the initialized application process and freezing or unfreezing the threads according to any one of transfer traffic, resource load, and the load of the application process A resource dynamic allocation program for causing a computer to execute

[0070] As a result, the physical resources installed on the physical server can be used by each application in a time-sharing and dynamic manner, so that it is possible to maximize resource efficiency.

[0071] 《Claim 7》 A plurality of resource dynamic allocation devices for dynamically allocating resources A controller unit for determining scale-in and scale-out of the resources, comprising The resource dynamic allocation device An application process initialized at startup, a thread that constitutes the application process and to which possible physical resources on a physical server are allocated, and a thread ID acquisition unit that acquires allocation information of the physical resources allocated to the thread and records it in a thread information table A resource recording and allocation unit that freezes all threads of the initialized application process and freezes or unfreezes the threads according to any one of transfer traffic, resource load, and the load of the application process A resource dynamic allocation system, characterized in that it comprises

[0072] By doing so, it becomes possible to maximize resource efficiency by dynamically allowing each application to use the physical resources installed in the physical server. And since the external controller determines scale-in and scale-out, it is possible to appropriately determine whether to freeze or unfreeze each process.

[0073] <<Claim 8>> A step in which a thread ID acquisition unit acquires allocation information of physical resources allocated to a thread that constitutes an application process initialized at startup and the possible physical resources on the physical server, and records the information in a thread information table; A step of freezing all threads of the initialized application process and freezing or unfreezing the threads according to any one of transfer traffic, resource load, and the load of the application process; A resource dynamic allocation method characterized by executing the above steps.

[0074] All threads of the initialized application process are frozen, and the threads are frozen or unfrozen according to any one of transfer traffic, resource load, and the load of the application process. By doing so, it becomes possible to maximize resource efficiency by dynamically allowing each application to use the physical resources installed in the physical server.

Explanation of Signs

[0075] 1 Resource dynamic allocation device 2a, 2b Applications 2x Error correction code processing function 2y MAC scheduler function 21a, 21b Startup parameters 22 NIC logical queue 22a, 22b NIC logical queues 24a, 24b Logical CPU cores 25, 25a, 25b ACC Logic Queue 30 Initialization Unit 31 Thread ID Acquisition Unit 32 Thread Information Table 33 Monitoring Unit 34 Resource Recording and Allocation Unit 35 Thread Status Table 36 Thread Control Unit 4a, 4b Physical Server (Resource Dynamic Allocation Device) 40 Operating System 41 Hardware 42 NIC Physical Queue 43 NIC 44 CPU 45 ACC Physical Queue 46 Accelerator 47 Storage Unit 471 Resource Dynamic Allocation Program 5 Controller Unit

Claims

1. A thread ID acquisition unit that acquires identification information of an application process initialized at startup, identification information of a thread that constitutes the application process and to which possible physical resources on a physical server are allocated, and identification information of the physical resources allocated to the thread; A resource recording and allocation unit that freezes all threads of the initialized application process, and freezes or unfreezes the thread according to any one of transfer traffic, resource load, and the load of the application process; A resource dynamic allocation device characterized by comprising the above.

2. The thread ID acquisition unit stores, in a thread information table, identification information of an application process, identification information of the thread, and identification information of the physical resources at the time of initialization of the application. The resource recording and allocation unit refers to a thread state table that holds the frozen state of the thread and the thread information table, and if it determines that all other threads that use the physical resources allocated to the frozen thread are frozen, it unfreezes the frozen thread and updates the thread state table. The resource dynamic allocation device according to claim 1, characterized by the above.

3. The resource dynamic allocation device further comprises a monitoring unit that notifies the resource recording and allocation unit of scale-out of the application process when the load of the application process exceeds an upper threshold value. The resource recording and allocation unit determines whether it can unfreeze the frozen threads that constitute the application process notified by the monitoring unit of scale-out. The resource dynamic allocation device according to claim 2, characterized by the above.

4. The monitoring unit notifies the resource recording and allocation unit of scale-in of the application process when the load of the application process falls below a lower threshold value. The resource recording and allocation unit selects and freezes any one of the threads being unfrozen that constitute the application process notified by the monitoring unit of scale-in. The resource dynamic allocation device according to claim 3, characterized by the above.

5. An application process initialized at startup, a thread that constitutes the application process and to which possible physical resources on a physical server are allocated, and a procedure for obtaining allocation information of the physical resources allocated to the thread A procedure for freezing all threads of the initialized application process and freezing or unfreezing the thread according to any one of transfer traffic, resource load, and the load of the application process A resource dynamic allocation program for causing a computer to execute

6. A step in which a thread ID acquisition unit acquires an application process initialized at startup, a thread that constitutes the application process and to which possible physical resources on a physical server are allocated, and allocation information of the physical resources allocated to the thread A step in which a resource recording and allocation unit freezes all threads of the initialized application process and freezes or unfreezes the thread according to any one of transfer traffic, resource load, and the load of the application process A resource dynamic allocation method characterized by executing the above

Citation Information

Patent Citations

  • Processing system and program

    JP2013186745A

  • Methods for virtualizing the hardware resources of a computer system and the system as executable pieces of code.

    JP2015517158A

  • Resource allocation management device and allocation destination server determination method

    JP2017199176A

  • System and method for creating a process invocation tree

    US20040168157A1