Devices, systems, methods, and programs for dynamically deploying applications
By predicting future resource utilization to select stable relocation destinations, the system reduces application downtime caused by continuous repositioning in existing technologies, ensuring smoother application operations.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- RENESAS ELECTRONICS CORP
- Filing Date
- 2024-11-06
- Publication Date
- 2026-05-19
AI Technical Summary
Existing technologies for dynamically arranging applications across management units with varying resource utilization rates lead to continuous relocation and increased downtime due to frequent repositioning, as the resource utilization in the new node often increases shortly after relocation, causing applications to stop and restart repeatedly.
A system with a determination unit and decision unit that assesses future resource fluctuations to identify a relocation destination where resource usage is not expected to increase, minimizing the need for repeated repositioning by selecting a destination with lower and stable resource utilization.
This approach reduces application downtime by minimizing the frequency of relocation and ensuring applications can continue to operate effectively without frequent interruptions.
Smart Images

Figure 2026081864000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to devices, systems, methods, and programs, and can be suitably used for devices, systems, methods, and programs for dynamically arranging applications, for example.
Background Art
[0002] Conventionally, technologies for dynamically arranging an application in any one of a plurality of management units to which computing resources are allocated have been developed. For example, ““Descheduler for Kubernetes”, [online], [searched on October 9, 2024], Internet <URL:https: / / github.com / kubernetes-sigs / descheduler>” (Non-Patent Document 1) discloses a technology for repositioning pods on a node with a high resource utilization rate to a node with a low resource utilization rate.
Prior Art Documents
Non-Patent Documents
[0003]
Non-Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] In the technology disclosed in Non-Patent Document 1, when the resource utilization rate in the repositioned node increases, the pod is repositioned again. A pod includes one or more applications. The application stops every time the pod is repositioned. Therefore, when repositioning occurs continuously, the stop time of the application increases.
[0005] Other challenges and novel features will become apparent from the description and accompanying drawings in this specification. [Means for solving the problem]
[0006] A device according to one embodiment comprises a determination unit and a decision unit. The determination unit determines the utilization rate of computing resources in each of a plurality of management units. The decision unit determines the relocation destination for the first application that is located in a target management unit whose utilization rate is higher than a first criterion among the plurality of management units. Furthermore, based on first information regarding future fluctuations in the amount of computing resources used in the plurality of management units, the decision unit determines from among the plurality of management units a management unit whose usage is not expected to increase as the relocation destination.
[0007] The system according to another embodiment comprises a plurality of management units to which computing resources are allocated, a determination unit, a decision unit, and a transfer unit. The determination unit determines the utilization rate of computing resources in each of the plurality of management units. The decision unit determines the relocation destination of a first application from among one or more applications placed in the target management unit when the utilization rate in the target management unit exceeds a first threshold. The transfer unit transfers the first application from the target management unit to the relocation destination. Based on first information regarding future fluctuations in the usage of computing resources in the plurality of management units, the decision unit determines a management unit from among the plurality of management units whose usage is not expected to increase as the relocation destination.
[0008] Furthermore, a method according to another embodiment includes determining the utilization rate of computing resources in each of a plurality of management units. The method further includes determining the relocation destination of a first application located in a target management unit in response to the utilization rate in the target management unit among the plurality of management units exceeding a first threshold. Determining the relocation destination includes determining a management unit from among the plurality of management units as the relocation destination, based on first information regarding future fluctuations in the utilization of computing resources in the plurality of management units, that is not expected to see an increase in utilization.
[0009] Furthermore, programs according to other embodiments cause a computer to execute the above method. [Effects of the Invention]
[0010] According to each of the above embodiments, the increase in application downtime is suppressed. [Brief explanation of the drawing]
[0011] [Figure 1] This figure shows an example of the overall configuration of the system according to the embodiment. [Figure 2] This figure shows an example of how to determine resource utilization. [Figure 3] This figure shows an example of application deployment to multiple management units related to the reference form at the first timing. [Figure 4] This figure shows an example of application deployment to multiple management units related to the reference form during the second timing, which occurs after the first timing. [Figure 5] This figure shows the change in CPU load over time in multiple management units related to the reference configuration. [Figure 6] This diagram shows the configuration of Embodiment 1 of the dynamic placement processing unit according to the embodiment. [Figure 7] This figure shows an example of an application dependency table. [Figure 8] This figure shows an example of the priority settings that can be configured for an application. [Figure 9] It is a diagram showing the change over time of the CPU load in a plurality of management units according to Example 1. [Figure 10] It is a diagram for explaining an example of processing by an update unit. [Figure 11] It is a flowchart showing an example of the processing flow in the dynamic allocation unit according to Example 1. [Figure 12] It is a diagram showing the configuration of Example 2 of the dynamic allocation processing unit according to the embodiment.
Embodiments for Carrying Out the Invention
[0012] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings. Note that the same or corresponding parts are denoted by the same reference numerals, and the description thereof will not be repeated.
[0013] <Overall Configuration of the System> FIG. 1 is a diagram showing an example of the overall configuration of a system according to an embodiment. As shown in FIG. 1, the system 1 includes a plurality of management units 10 and a dynamic allocation processing unit 20.
[0014] Each of the plurality of management units 10 is a unit that manages computing resources 30. That is, dedicated computing resources 30 are allocated to each of the plurality of management units 10. In the example shown in FIG. 1, the plurality of management units 10 includes three management units 10_1, 10_2, and 10_3. However, the number of the plurality of management units 10 is not particularly limited.
[0015] Each of the plurality of management units 10 may be, for example, a device or any of a plurality of domains provided in a device. The device is, for example, a semiconductor integrated circuit such as a SoC (System-on-a-chip) or an MCU (Micro Controller Unit). The plurality of computing resources 30 respectively allocated to the plurality of domains provided in the device may operate according to different OSs (Operating Systems). <00 The computing resource 30 typically includes a CPU (Central Processing Unit) 32 and a memory 34. The memory 34 is, for example, RAM (Random Access Memory). Note that the computing resource 30 may include a processor such as an MPU (Micro Processing Unit) instead of the CPU 32.
[0017] One or more applications 40 are arranged in each of the plurality of management units 10. The application 40 arranged in a certain management unit is executed by the computing resource 30 assigned to the certain management unit.
[0018] The dynamic allocation processing unit 20 dynamically allocates the application 40 to any one of the plurality of management units 10 to which the computing resource 30 is assigned.
[0019] The dynamic allocation processing unit 20 is realized by a processor executing a program. The processor for realizing the dynamic allocation processing unit 20 may be included in the computing resource 30 assigned to any one of the plurality of management units 10. In this case, the program for realizing the dynamic allocation processing unit 20 is an application arranged in the management function to which the computing resource 30 including the processor for realizing the dynamic allocation processing unit 20 is assigned. For example, the program for realizing the dynamic allocation processing unit 20 may be "Application A" arranged in the management unit 10_1.
[0020] Alternatively, the processor for realizing the dynamic allocation processing unit 20 may be included in a computing resource different from the computing resource 30 assigned to the plurality of management units 10. In this case, the program for realizing the dynamic allocation processing unit 20 is arranged outside the plurality of management units 10.
[0021] The dynamic allocation processing unit 20 includes a determination unit 22, a decision unit 23, and a transfer unit 24. The determination unit 22 determines the utilization rate of computing resources 30 in each of the multiple management units 10 (hereinafter referred to as "resource utilization rate").
[0022] The decision unit 23 determines the relocation destination of the first application located in the target management unit, based on the determination that the resource utilization rate in the target management unit among the multiple management units 10 exceeds the first criterion. The first application is selected from one or more applications 40 located in the target management unit. The relocation destination is determined from among the multiple management units 10.
[0023] The transfer unit 24 transfers the first application from the target management unit to the relocation destination. Specifically, the transfer unit 24 transfers the program file representing the first application and the data used to execute the first application.
[0024] <Example of resource utilization determination> Figure 2 shows an example of resource utilization determination. In the example shown in Figure 2, the multiple management units 10 include domains 13 and 14 provided on device 11 and domain 15 provided on device 12. Devices 11 and 12 can communicate with each other, for example, via Ethernet®. Note that if device 12 does not include domains other than domain 15, device 12 can become a management unit 10. In other words, the multiple management units 10 include domains 13 and 14 provided on device 11 and device 12.
[0025] The dynamic placement processing unit 20 shown in Figure 1 may be incorporated into a device that constitutes one of the multiple management units 10. For example, the dynamic placement processing unit 20 may be incorporated into device 11. In this case, device 12 is an example of "another device" in this disclosure.
[0026] The determination unit 22 determines the resource utilization rate as either "high," "medium," or "low." A resource utilization rate of "high" is equivalent to the resource utilization rate being higher than the first criterion. A resource utilization rate of "low" is equivalent to the resource utilization rate being lower than the second criterion. The second criterion indicates that the degree to which computing resources 30 are used is lower than that of the first criterion. A resource utilization rate of "medium" is equivalent to the resource utilization rate being between the first and second criterions.
[0027] The determination unit 22 determines the resource utilization rate based on the CPU load and memory usage. Specifically, the determination unit 22 determines that the resource utilization rate is "high" if the following condition (a) is met. Condition (a): CPU load exceeds threshold Th1a, or memory usage exceeds threshold Th1b. Condition (a) defines the first criterion. In condition (a), thresholds Th1a and Th1b are predetermined. In the example shown in Figure 2, the CPU load in domain 13 exceeds threshold Th1a, so the determination unit 22 determines that the resource utilization rate in domain 13 is "high".
[0028] The determination unit 22 determines that the resource utilization rate is "low" if the following condition (b) is met. Condition (b): CPU load is less than threshold Th2a, and memory usage is less than threshold Th2b. Condition (b) defines the second criterion. In condition (b), thresholds Th2a and Th2b are predetermined. Threshold Th2a is smaller than threshold Th1a. Threshold Th2b is smaller than threshold Th1b. In the example shown in Figure 2, since the CPU load and memory usage in domains 14 and 15 are less than thresholds Th2a and Th2b, respectively, the determination unit 22 determines that the resource utilization rate in domains 14 and 15 is "low".
[0029] The determination unit 22 determines that the resource utilization rate is "medium" if neither condition (a) nor condition (b) is met.
[0030] <Problems with the reference format> Referring to Figures 3 to 5, the problems in the reference embodiment using the technology disclosed in Non-Patent Document 1 will be explained. Figure 3 is a diagram showing an example of application placement to multiple management units related to the reference embodiment at the first timing. Figure 4 is a diagram showing an example of application placement to multiple management units related to the reference embodiment at the second timing, which is after the first timing. Figure 5 is a diagram showing the change in CPU load over time in the multiple management units related to the reference embodiment. Figure 5 shows the change in CPU load over time during the period including the first timing t1 and the second timing t2.
[0031] As shown in Figure 5, the CPU load from "App B" located in domain 13 increases from timing t3, which is before the first timing t1. As a result, at timing t4, which is between timing t3 and the first timing t1, the resource utilization rate in domain 13 is determined to be "high". Therefore, one of the one or more applications 40 located in domain 13 is selected as the target for relocation. In the examples shown in Figures 3 and 5, "App C" is selected as the target for relocation.
[0032] In the technology disclosed in Non-Patent Literature 1, a domain 14 or 15 with low resource utilization is arbitrarily selected as the relocation destination. In the example shown in Figure 3, domain 14 is selected as the relocation destination. As a result, "App C" is relocated to domain 14. That is, the program files of "App C" and the data used to execute "App C" are transferred from domain 13 to domain 14. The first relocation process of "App C" (also called the "transfer process") is performed during the TA period shown in Figure 5. The application relocation process includes terminating the application in the original management unit, transferring the application from the original management unit to the relocation destination management unit, and starting the application in the relocation destination management unit. Therefore, "App C" is not effectively functioning during the TA period. In other words, "App C" is effectively stopped during the TA period.
[0033] As shown in Figure 5, immediately after the relocation of "App C" to Domain 14 is completed, at timing t5, the CPU load from "App E" located in Domain 14 increases. Timing t5 is before the second timing t2. As a result, at timing t6, between timing t5 and the second timing t2, the resource utilization rate in Domain 14 is determined to be "high". Therefore, one of the one or more applications 40 located in Domain 14 is selected as the target for relocation. In the example shown in Figure 4, "App C" is selected again as the target for relocation. Domain 15, which has a "low" resource utilization rate, is selected as the relocation destination. As a result, "App C" is relocated to Domain 15. That is, the program files of "App C" and the data used to execute "App C" are transferred from Domain 14 to Domain 15. The second relocation process for "App C" is carried out during period TB shown in Figure 5. Even during period TB, "App C" is not effectively functioning.
[0034] Thus, in this reference configuration, the relocation process of application 40 may be performed continuously. As a result, the time during which application 40 is effectively non-functional increases. In other words, the downtime of application 40 increases.
[0035] <Main features of the embodiment> To solve the above problems, in the system 1 according to the embodiment, the decision unit 23 acquires first information regarding future fluctuations in the usage of computing resources 30 in a plurality of management units 10 when determining the relocation destination of the first application. Then, based on the first information, the decision unit 23 determines from among the plurality of management units 10 a management unit in which the usage of computing resources is not expected to increase as the relocation destination. As a result, the first application is relocated to the management unit in which the usage of computing resources is not expected to increase. Consequently, the first application can continue to operate at the relocation destination. In other words, the frequency with which the first application is selected again as a target for relocation decreases. Therefore, the increase in the downtime of the first application is suppressed.
[0036] Furthermore, if the first application is relocated to a management unit where the resource utilization rate is "medium," the resource utilization rate in that management unit may rise to "high." Therefore, the decision unit 23 may identify one or more management units with a "low" resource utilization rate from among the multiple management units 10 as one or more relocation destination candidates. Then, it is preferable for the decision unit 23 to determine the relocation destination from among the one or more relocation destination candidates.
[0037] <Example 1> Figure 6 shows the configuration of Embodiment 1 of the dynamic placement processing unit according to the embodiment. The dynamic placement processing unit 20A shown in Figure 6 is Embodiment 1 of the dynamic placement processing unit 20 shown in Figure 1. The dynamic placement processing unit 20A includes an acquisition unit 21, a determination unit 22, a decision unit 23A, a transfer unit 24, an application dependency table 25, and an update unit 26. The decision unit 23A is an example of the decision unit 23 shown in Figure 1.
[0038] The acquisition unit 21 acquires data indicating the usage of computing resources 30 by each application located in each of the multiple management units 10. The data indicating the usage of computing resources 30 is acquired from the OS running in each management unit 10. This data indicates CPU load and memory usage.
[0039] The determination unit 22 determines the resource utilization rate in each of the multiple management units 10 based on the data acquired by the acquisition unit 21.
[0040] The application dependency table 25 shows combinations of applications that have dependencies on variations in the usage of computing resources 30 among multiple applications. The application dependency table 25 is an example of the “Second Information” of this disclosure.
[0041] Figure 7 shows an example of an application dependency table. Figure 7 shows an application dependency table 25 corresponding to multiple applications for in-vehicle use. The application dependency table 25 shows a combination of a primary application and one or more dependent applications whose use of computing resources 30 increases as the primary application's use of computing resources 30 increases. In the example shown in Figure 7, the application dependency table 25 shows a combination of the primary application "App B" (environmental awareness application) and the dependent application "App E" (trajectory planning application). This means that as the use of computing resources 30 by "App B" increases, the use of computing resources 30 by "App E" also increases.
[0042] Returning to Figure 6, the decision unit 23A determines, based on the determination that the resource utilization rate in the target management unit among the multiple management units 10 exceeds the first criterion, to be relocated to the target management unit using the application dependency table 25.
[0043] If two or more applications 40 are located in the target management unit, the decision unit 23A may select the first application according to the priority set in advance for each of the two or more applications 40.
[0044] Figure 8 shows an example of the priority set for an application. Priorities are pre-set according to the type of application. The higher the priority, the more important the application. In the example shown in Figure 8, the priorities are set to "High," "Medium," and "Low." The priority of "App C" is set lower than the priorities of "App A" and "App B." As mentioned above, the first application is stopped during the relocation process. It is undesirable to stop an application with high importance. Therefore, the decision unit 23A selects an application with a priority set to "Low" as the first application.
[0045] After selecting the first application, the determination unit 23A determines the relocation destination of the first application according to the process described below.
[0046] In other words, the determination unit 23A identifies a second application that is causing the increase in resource utilization from among one or more applications 40 located in the target management unit. For example, the determination unit 23A calculates a first increase in the usage of computing resources 30 for each of the one or more applications 40 located in the target management unit. The first increase is calculated based on a comparison of the usage of computing resources 30 at a third timing when it is determined that the resource utilization exceeds the first criterion, and at a fourth timing that is a predetermined time earlier than the third timing. For example, the first increase is the amount obtained by subtracting the usage at the fourth timing from the usage at the third timing. Alternatively, the first increase may be the value obtained by dividing the usage at the third timing by the usage at the fourth timing. The determination unit 23A identifies the application with the largest first increase as the second application.
[0047] The decision unit 23A accesses the application dependency table 25. Based on the application dependency table 25, the decision unit 23A identifies one or more related applications that have dependencies on the second application as first information. Specifically, the decision unit 23A identifies one or more dependent applications corresponding to the second application as one or more related applications.
[0048] In a management unit 10 where a related application is located, an increase in the usage of computing resources 30 is expected due to the related application. In other words, in a management unit where none of the one or more related applications are located, no increase in the usage of computing resources 30 is expected. Therefore, the decision unit 23A determines, from among the multiple management units 10, a management unit where none of the one or more related applications are located as the relocation destination. Specifically, the decision unit 23A identifies one or more management units from among the multiple management units 10 whose utilization rate is lower than the second criterion. That is, the decision unit 23A identifies one or more management units with a "low" resource utilization rate as one or more relocation destination candidates. From among the one or more relocation destination candidates, the decision unit 23A determines, as the relocation destination, a management unit where none of the one or more related applications are located.
[0049] The processing example of the determination unit 23A will be explained with reference to Figures 7 to 9. Figure 9 is a diagram showing the change in CPU load over time in multiple management units according to Embodiment 1. Figure 9 shows the change in CPU load over time in domains 13, 14, and 15 (see Figure 2) included in the multiple management units 10.
[0050] As shown in Figure 9, the CPU load from "Application B" located in Domain 13 increases from timing t3. As a result, at timing t4, which is after timing t3, the resource utilization rate in Domain 13 is determined to be "high".
[0051] In response to the determination that the resource utilization rate in domain 13 is "high," the decision unit 23A selects one application located in domain 13 as the first application to be relocated. Specifically, according to the priority shown in Figure 8, the decision unit 23A selects "App C," which has a "low" priority among the three applications located in domain 13, as the first application.
[0052] Next, the decision unit 23A calculates the first increase in the usage of computing resources 30 for each of "App A," "App B," and "App C" located in domain 13. In other words, the decision unit 23A compares the usage of computing resources 30 at a third timing (timing t4) where the resource utilization rate is determined to be "high" with a fourth timing that is a predetermined time earlier than the third timing, and calculates the first increase. The decision unit 23A identifies "App B," which has the largest first increase, as the second application.
[0053] Next, the decision unit 23A accesses the application dependency table 25 shown in Figure 7. Based on the application dependency table 25, the decision unit 23A identifies "Application E," which has a dependency on the second application "Application B," as a related application.
[0054] Next, the decision unit 23A identifies domains 14 and 15, which have a "low" resource utilization rate, as candidates for the relocation of the first application "App C".
[0055] Next, the decision unit 23A selects from among domains 14 and 15 that domain 15, in which the related application "App E" is not located, as the relocation destination.
[0056] As a result, after the relocation process for "App C" is performed during the TA period, "App C" can continue to operate in the relocation destination domain 15. In other words, compared to the reference configuration explained with reference to Figure 5, the number of relocation processes for "App C" is reduced. Consequently, the time during which "App C" is effectively not functioning (downtime) is shortened.
[0057] Returning to Figure 6, the update unit 26 updates the application dependency table 25 based on the changes in computing resource usage by each of the multiple applications. New applications may be deployed to multiple management units 10 in accordance with version upgrades of devices or equipment to which System 1 is applied. Furthermore, applications already deployed to any of the multiple management units 10 may be updated. With the addition of new applications or the updating of existing applications, the dependencies between applications may change. Therefore, the update unit 26 updates the application dependency table 25 as appropriate.
[0058] Figure 10 illustrates an example of processing by the update unit. The update unit 26 identifies an application whose second increase in computing resource usage exceeds a threshold as a candidate for the main application. The second increase is calculated based on a comparison of the computing resource usage at the current timing and at a fifth timing that is a predetermined time period prior to the current timing. For example, the second increase is the amount obtained by subtracting the usage at the fifth timing from the usage at the current timing. Alternatively, the second increase may be the value obtained by dividing the usage at the current timing by the usage at the fifth timing. Furthermore, the update unit 26 identifies the timing at which the second increase exceeds a threshold for the candidate for the main application (hereinafter referred to as the "usage increase timing"). For example, in the processing example shown in Figure 10, at timing t10, the second increase in computing resource usage by "App E" exceeds the threshold. Therefore, the update unit 26 identifies "App E" and timing t10 as the candidate for the main application and the usage increase timing, respectively.
[0059] The update unit 26 identifies applications as candidate subordinate applications whose third increase in computing resource usage exceeds a threshold during the first survey period TC, which begins at the usage increase timing. The length of the first survey period TC is predetermined. The third increase is calculated based on a comparison of the computing resource usage at the sixth timing included in the first survey period TC and the seventh timing, which is a predetermined time period prior to the sixth timing. For example, the third increase is the amount obtained by subtracting the usage at the seventh timing from the usage at the sixth timing. Alternatively, the third increase may be the value obtained by dividing the usage at the sixth timing by the usage at the seventh timing.
[0060] In the processing example shown in Figure 10, during the first investigation period TC starting at timing t10, the third increase in the usage of computing resources 30 by "App D" exceeds the threshold. Therefore, the update unit 26 identifies "App D" as a candidate for a subordinate application.
[0061] The update unit 26 determines a combination of a primary application candidate and a secondary application candidate to be added to the application dependency table 25. Alternatively, the update unit 26 determines a combination that satisfies predetermined addition conditions to be added to the application dependency table 25. The update unit 26 updates the application dependency table 25 according to the decision. For example, in the processing example shown in Figure 10, the update unit 26 adds a combination including the primary application "App E" and the secondary application "App D" to the application dependency table 25.
[0062] An additional condition is, for example, that the percentage of first survey periods (TCs) corresponding to the primary application candidate in which the third increase in computing resource usage 30 by the secondary application candidate exceeds a threshold exceeds a reference value. The reference value is selected, for example, from 50 percent to 90 percent.
[0063] Furthermore, the update unit 26 may delete combinations that satisfy the deletion conditions from the application dependency table 25. The deletion conditions are, for example, that the proportion of second survey periods in which the fourth increase in the usage of computing resources 30 by the dependent application exceeds a threshold is less than a standard value. The second survey period is the period that begins from the moment when the increase in the usage of computing resources 30 by the primary application exceeds a threshold. The length of the second survey period is predetermined. The fourth increase is calculated based on the comparison result of the usage of computing resources 30 at the eighth timing included in the second survey period and at the ninth timing, which is a predetermined time period prior to the eighth timing. For example, the fourth increase is the amount obtained by subtracting the usage at the ninth timing from the usage at the eighth timing. Alternatively, the fourth increase may be the value obtained by dividing the usage at the eighth timing by the usage at the ninth timing.
[0064] Figure 11 is a flowchart showing an example of the processing flow in the dynamic placement unit according to Embodiment 1. The processor (e.g., CPU 32) operating as the acquisition unit 21 acquires the usage of computing resources 30 by each application placed in each of the multiple management units 10 (step S1).
[0065] Next, the processor, which operates as the determination unit 22, determines the resource utilization rate for each of the multiple management units 10 (step S2).
[0066] Next, the processor, operating as the decision unit 23A, determines whether there are any target management units whose resource utilization is higher than the first criterion, that is, target management units with a "high" resource utilization (step S3). If there are target management units (YES in step S3), the processor determines whether there are any one or more management units (candidate placement locations) whose resource utilization is lower than the second criterion, that is, one or more management units (candidate placement locations) with a "low" resource utilization (step S4).
[0067] If there is one or more potential deployment locations (YES in step S4), the processor selects one application located in the target management unit as the first application. Then, based on the application dependency table 25, the processor determines the redeployment destination for the first application from among the one or more potential deployment locations (step S8).
[0068] Next, the processor, acting as the transfer unit 24, transfers the first application from the target management unit to the relocation destination (step S9). After step S9, the process returns to step S1. If the target management unit does not exist (NO in step S3), the processor determines that relocation processing is unnecessary and returns the process to step S1. Also, if there is no candidate destination (NO in step S4), the processor determines that relocation processing is impossible and returns the process to step S1.
[0069] Steps S5 to S7 are performed in parallel with steps S2 to S4. In step S5, the processor, which operates as the update unit 26, analyzes the changes in the usage of computing resources 30 by each application and investigates combinations of applications that have dependencies on the fluctuations in computing resource usage.
[0070] In step S6, the processor determines whether the application dependency table 25 needs to be updated. For example, the processor determines whether there are candidate combinations that satisfy additional conditions and whether there are combinations that satisfy deletion conditions. Depending on whether there are candidate combinations that satisfy additional conditions or combinations that satisfy deletion conditions, the processor determines that the application dependency table 25 needs to be updated.
[0071] If the application dependency table 25 needs to be updated (YES in step S6), the processor updates the application dependency table 25 in step S7. If the application dependency table 25 does not need to be updated (NO in step S6), step S7 is omitted.
[0072] <Example 2> Figure 12 shows the configuration of Embodiment 2 of the dynamic placement processing unit according to the embodiment. The dynamic placement processing unit 20B shown in Figure 12 is Embodiment 2 of the dynamic placement processing unit 20 shown in Figure 1. The dynamic placement processing unit 20B differs from the dynamic placement processing unit 20A shown in Figure 6 in that it includes a determination unit 23B and a prediction unit 27 instead of a determination unit 23A, an application dependency table 25, and an update unit 26. The determination unit 23B is an example of the determination unit 23 shown in Figure 1.
[0073] The prediction unit 27 predicts the future usage of computing resources 30 in each of the multiple management units 10 based on the current usage of computing resources 30 in each of the multiple management units 10. For example, the prediction unit 27 predicts the usage of computing resources 30 at a predetermined time after the current time. The current usage of computing resources 30 in each of the multiple management units is calculated based on data acquired by the acquisition unit 21.
[0074] The prediction unit 27 predicts the future usage of computing resources 30 using known techniques or techniques that apply known techniques. Known techniques include, for example, pattern matching, ARMA (Autoregressive Moving Average) models, ARIMA (Autoregressive Integrated Moving Average) models, SARIMA (Seasonal Autoregressive Integrated Moving Average) models, and Prophet models.
[0075] The prediction unit 27 may predict the future usage of computing resources 30 only for management units (i.e., relocation candidates) whose resource utilization rate has been determined to be "low" by the determination unit 22.
[0076] Applications with a priority of "high" or "medium" are not selected for relocation. One or more applications placed in each management unit typically include applications with a priority of "high" or "medium". Therefore, the trend in computing resource usage 30 in each of the multiple management units can be modeled based on the behavior of applications with a priority of "high" or "medium". This allows the prediction unit 27 to accurately predict the future usage of computing resources 30 in each of the multiple management units 10.
[0077] The decision unit 23B acquires the prediction result from the prediction unit 27 as first information. Then, based on the prediction result, the decision unit 23B determines from among the multiple management units 10 that the management unit whose usage is not expected to increase will be the relocation destination for the first application.
[0078] Specifically, the decision unit 23B identifies one or more management units from among the multiple management units 10 whose resource utilization rate is lower than the second criterion. In other words, the decision unit 23B identifies one or more management units with a "low" resource utilization rate as one or more candidates for relocation. The decision unit 23A then determines, from among the one or more candidates for relocation, the candidate whose future usage is not expected to increase as the relocation destination.
[0079] The prediction unit 27 may also predict the future usage of computing resources 30 in each application based on the current usage of computing resources 30 in each application located in the multiple management units 10. Then, the prediction unit 27 may predict the future usage of computing resources 30 in each of the multiple management units 10 based on the future usage of computing resources 30 in each application.
[0080] <Variation> Multiple management units 10 may include only multiple domains established on a single device. In this case, system 1 is comprised of that device.
[0081] If there are no applications set to "low" priority in the target management unit, the decision unit 23 may select an application set to "medium" priority as the first application.
[0082] Although the present invention has been specifically described above based on embodiments, it goes without saying that the present invention is not limited to the above embodiments and can be modified in various ways without departing from its essence. [Explanation of Symbols]
[0083] 1 System, 10 Management Units, 11,12 Devices, 13,14,15 Domains, 20,20A,20B Dynamic Deployment Processing Units, 21 Acquisition Unit, 22 Determination Unit, 23,23A,23B Decision Units, 24 Transfer Unit, 25 Application Dependency Table, 26 Update Unit, 27 Prediction Unit, 30 Computing Resources, 32 CPU, 34 Memory, 40 Applications.
Claims
1. A device that dynamically deploys applications to one of several management units to which computing resources are allocated, A determination unit that determines the utilization rate of the computing resources in each of the plurality of management units, The system includes a determination unit that determines the relocation destination of a first application that is located in a target management unit among the plurality of management units whose utilization rate is higher than the first criterion, The determination unit is a device that, based on first information relating to future fluctuations in the usage of computing resources in the plurality of management units, determines from among the plurality of management units a management unit whose usage is not expected to increase as the relocation destination.
2. The aforementioned determination unit, From among one or more applications located in the aforementioned target management unit, identify the second application that is the cause of the increase in usage rate. Access second information indicating a combination of applications among the multiple applications placed in the multiple management units that have dependencies on the fluctuations in the usage of the computing resources, Based on the second information, one or more related applications that have dependencies on the second application are identified as the first information. The device according to claim 1, wherein, among the plurality of management units, the management unit on which none of the one or more related applications are located is determined as the relocation destination.
3. The second information indicates a combination of a main application and one or more subordinate applications whose use of computing resources increases as the main application's use of computing resources increases. The device according to claim 2, wherein the one or more related applications are the one or more dependent applications corresponding to the second application.
4. An acquisition unit that acquires the amount of computing resource usage by each of the aforementioned multiple applications, The device according to claim 2, further comprising an update unit that updates the second information based on the usage trends corresponding to each of the aforementioned multiple applications.
5. The system further includes a prediction unit that predicts the future usage of the computing resources in each of the plurality of management units based on the current usage of the computing resources in each of the plurality of management units. The device according to claim 1, wherein the determination unit acquires the prediction result from the prediction unit as the first information.
6. The determination unit identifies one or more management units from among the plurality of management units whose utilization rate is lower than the second criterion, and the second criterion is less than the threshold of the first criterion. The device according to any one of claims 1 to 5, wherein the determination unit determines the relocation destination from among the one or more management units.
7. The device according to any one of claims 1 to 5, wherein the first application is selected from among two or more applications located in the target management unit, according to a priority set in advance for each of the two or more applications.
8. The device according to any one of claims 1 to 5, further comprising a transfer unit for transferring the first application from the target management unit to the relocation destination.
9. The device according to any one of claims 1 to 5, wherein the plurality of management units include a plurality of domains provided in the device.
10. The device according to claim 9, wherein the plurality of management units further include a device other than the device, and a plurality of domains provided on the other device.
11. Multiple management units to which computing resources are allocated, A determination unit that determines the utilization rate of the computing resources in each of the plurality of management units, A determination unit determines the relocation destination of the first application placed in the target management unit in response to the usage rate in the target management unit among the plurality of management units exceeding a first threshold, The system includes a transfer unit that transfers the first application from the target management unit to the relocation destination, The system includes a determination unit that, based on first information relating to future fluctuations in the usage of computing resources in the plurality of management units, determines from among the plurality of management units a management unit whose usage is not expected to increase as the relocation destination.
12. A method for dynamically deploying an application to one of several management units to which computing resources are allocated, Determining the utilization rate of the computing resources in each of the aforementioned multiple management units, The system includes determining the relocation destination of the first application placed in the target management unit in response to the usage rate in the target management unit among the plurality of management units exceeding a first threshold, A method for determining the relocation destination, comprising determining, from among the plurality of management units, a management unit whose usage is not expected to increase, based on first information relating to future fluctuations in the usage of the computing resources in the plurality of management units, as the relocation destination.
13. A program that causes a computer to perform the method described in claim 12.