US12386676B2ActiveUtilityA1

Adjusting the size of a resource pool for a virtual machine based on events associated with the virtual machine

Assignee: RED HAT INCPriority: Feb 25, 2022Filed: Feb 25, 2022Granted: Aug 12, 2025
Est. expiryFeb 25, 2042(~15.6 yrs left)· nominal 20-yr term from priority
G06F 9/45533G06F 11/30G06F 9/5061G06F 9/4843G06F 9/48G06F 2009/4557G06F 9/455G06F 9/50G06F 9/485G06F 2009/45575G06F 9/5083G06F 2009/45583G06F 2009/45591G06F 2209/5011G06F 9/45558G06F 9/5016G06F 9/5022G06F 9/5077G06F 9/542
49
PatentIndex Score
0
Cited by
17
References
20
Claims

Abstract

Events associated with a virtual machine can be used to adjust an amount of resource objects that may be allocated from a resource pool for the virtual machine. For example, a system can receive a notification including event data indicating an event related to the virtual machine, wherein the virtual machine is configured to rely on resource objects in a resource pool for performing one or more computing operations. The system can determine that the event is a particular type of event. Based on determining that the event is the particular type of event, the system can select a scaling policy corresponding to the particular type of event. The system can then apply the scaling policy to the event data to determine a scaling strategy for adjusting the amount of resource objects.

Claims

exact text as granted — not AI-modified
The invention claimed is: 
     
       1. A non-transitory computer-readable medium comprising program code that is executable by a processor for causing the processor to:
 identify a plurality of software processes running in a computing environment; 
 execute a decentralized monitoring and scaling framework by, for each process in the plurality of software processes:
 initiating a corresponding monitoring tool configured to monitor the process and transmit notifications of events related to the process, the notifications including a set of event data associated with the events, wherein the corresponding monitoring tool is dedicated to the process and does not monitor any other process of the plurality of software processes; and 
 initiating a corresponding scaling service configured to receive the notifications from the corresponding monitoring tool and responsively adjust a size of a corresponding resource pool based on the set of event data, wherein the corresponding scaling service is dedicated to the process and does not scale any other resource pool for any other process of the plurality of software processes; 
 
 receive a notification including event data indicating an event related to a software process of the plurality of software processes, the software process being configured to rely on resource objects in the corresponding resource pool for the software process for performing a computing operation, wherein the corresponding resource pool is a message pool and the resource objects include message objects for handling messages in the message pool; 
 based on the event data, determine that the event is of a particular type among a plurality of types of events; 
 based on determining that the event is of the particular type, select a scaling policy corresponding to the particular type; 
 apply the scaling policy to the event data to determine a scaling strategy; and 
 adjust an amount of resource objects in the corresponding resource pool for the software process based on the scaling strategy. 
 
     
     
       2. The non-transitory computer-readable medium of  claim 1 , wherein configuration data specifies relationships between a plurality of predefined scaling strategies and the plurality of types of events, and further comprising program code that is executable by the processor for causing the processor to:
 receive the configuration data; and 
 determine a relationship, in the configuration data, between the scaling policy and the particular type of the event; and 
 select the scaling policy based on the relationship in the configuration data. 
 
     
     
       3. The non-transitory computer-readable medium of  claim 1 , wherein the software process is a Java Virtual Machine (JVM), and wherein a monitoring tool is coupled to the JVM for generating and transmitting the notification in response to detecting the event. 
     
     
       4. The non-transitory computer-readable medium of  claim 1 , wherein the scaling policy is configured to:
 determine whether a value in the event data is greater than or equal to a predefined threshold value; 
 in response to determining that the value is greater than or equal to the predefined threshold value, select a first scaling strategy as the scaling strategy to be implemented; and 
 in response to determining that the value is less than the predefined threshold value, select a second scaling strategy as the scaling strategy to be implemented, the second scaling strategy being different from the first scaling strategy. 
 
     
     
       5. The non-transitory computer-readable medium of  claim 1 , wherein the corresponding scaling service is configured to:
 compare values in the set of event data to one or more predefined thresholds; 
 based on determining that the values are greater than or equal to the one or more predefined thresholds, decrease the size of the corresponding resource pool according to a first scaling policy identified in configuration data; and 
 based on determining that the values are less than the one or more predefined thresholds, increase the size of the corresponding resource pool according to a second scaling policy identified in the configuration data. 
 
     
     
       6. The non-transitory computer-readable medium of  claim 1 ,
 wherein the software process is a virtual machine, and further comprising program code that is executable by the processor for causing the processor to adjust the amount of resource objects in the corresponding resource pool based on the scaling strategy by: 
 shutting down the virtual machine; 
 adjusting a setting in a configuration file associated with the virtual machine based on the scaling strategy to produce an updated configuration file for the virtual machine, the setting controlling the amount of resource objects in the corresponding resource pool; and 
 deploying the virtual machine using the updated configuration file. 
 
     
     
       7. A method comprising:
 identifying a plurality of software processes running in a computing environment; 
 executing a decentralized monitoring and scaling framework by, for each process in the plurality of software processes:
 initiating a corresponding monitoring tool configured to monitor the process and transmit notifications of events related to the process, the notifications including a set of event data associated with the events, wherein the corresponding monitoring tool is dedicated to the process and does not monitor any other process of the plurality of software processes; and 
 initiating a corresponding scaling service configured to receive the notifications from the corresponding monitoring tool and responsively adjust a size of a corresponding resource pool based on the set of event data, wherein the corresponding scaling service is dedicated to the process and does not scale any other resource pool for any other process of the plurality of software processes; 
 
 receiving, by a processor, a notification including event data indicating an event related to a software process of the plurality of software processes, the software process being configured to rely on resource objects in the corresponding resource pool for the software process for performing a computing operation, wherein the corresponding resource pool is a message pool and the resource objects include message objects for handling messages in the message pool; 
 based on the event data and by the processor, determining that the event is a particular type of event from among a plurality of types of events; 
 based on determining that the event is the particular type of event and by the processor, selecting a scaling policy corresponding to the particular type of event from among a plurality of scaling policies corresponding to the plurality of types of events; 
 applying, by the processor, the scaling policy to the event data to determine a scaling strategy; and 
 adjusting, by the processor, an amount of resource objects in the corresponding resource pool for the software process based on the scaling strategy. 
 
     
     
       8. The method of  claim 7 , wherein the plurality of predefined scaling strategies and the plurality of types of events are identified in configuration data, the configuration data including relationships between the plurality of scaling policies and the plurality of types of events, and further comprising:
 receiving, by the processor, the configuration data; and 
 determining a relationship, by the processor and in the configuration data, between the scaling policy and the particular type of event; and 
 selecting, by the processor, the scaling policy based on the relationship in the configuration data. 
 
     
     
       9. The method of  claim 7 , wherein the software process is a Java Virtual Machine (JVM), and wherein a monitoring tool is coupled to the JVM for generating and transmitting the notification in response to detecting the event. 
     
     
       10. The method of  claim 7 , further comprising:
 determining, by the processor, whether a value in the event data is greater than or equal to a predefined threshold value; 
 in response to determining that the value is greater than or equal to the predefined threshold value, selecting, by the processor, a first scaling strategy as the scaling strategy to be implemented; and 
 in response to determining that the value is less than the predefined threshold value, selecting, by the processor, a second scaling strategy as the scaling strategy to be implemented, the second scaling strategy being different from the first scaling strategy. 
 
     
     
       11. The method of  claim 7 , wherein the corresponding scaling service is configured to:
 compare values in set of event data to one or more predefined thresholds; 
 based on determining that the values are greater than or equal to the one or more predefined thresholds, decrease the size of the corresponding resource pool according to a first scaling policy identified in configuration data; and 
 based on determining that the values are less than the one or more predefined thresholds, increase the size of the corresponding resource pool according to a second scaling policy identified in the configuration data. 
 
     
     
       12. The method of  claim 7 , wherein the software process is a virtual machine, and further comprising adjusting the amount of resource objects in the corresponding resource pool based on the scaling strategy by:
 shutting down, by the processor, the virtual machine; 
 adjusting, by the processor, a setting in a configuration file associated with the virtual machine based on the scaling strategy to produce an updated configuration file for the virtual machine, the setting controlling the amount of resource objects in the corresponding resource pool; and 
 deploying, by the processor, the virtual machine using the updated configuration file. 
 
     
     
       13. A system comprising:
 a processor; and 
 a memory including instructions that are executable by the processor for causing the processor to:
 identify a plurality of software processes running in a computing environment; 
 execute a decentralized monitoring and scaling framework by, for each process in the plurality of software processes:
 initiating a corresponding monitoring tool configured to monitor the process and transmit notifications of events related to the process, the notifications including a set of event data associated with the events, wherein the corresponding monitoring tool is dedicated to the process and does not monitor any other process of the plurality of software processes; and 
 initiating a corresponding scaling service configured to receive the notifications from the corresponding monitoring tool and responsively adjust a size of a corresponding resource pool based on the set of event data, wherein the corresponding scaling service is dedicated to the process and does not scale any other resource pool for any other process of the plurality of software processes; 
 
 receive a notification including event data indicating an event related to a software process of the plurality of software processes, the software process being configured to rely on resource objects in the corresponding resource pool for the software process for performing a computing operation, wherein the corresponding resource pool is a message pool and the resource objects include message objects for handling messages in the message pool; 
 based on the event data, determine that the event is a particular type of event from among a plurality of types of events; 
 based on determining that the event is the particular type of event, select a scaling policy corresponding to the particular type of event from among a plurality of scaling policies corresponding to the plurality of types of events; 
 apply the scaling policy to the event data to determine a scaling strategy; and 
 adjust an amount of resource objects in the corresponding resource pool for the software process based on the scaling strategy. 
 
 
     
     
       14. The system of  claim 13 , wherein the plurality of predefined scaling strategies and the plurality of types of events are identified in configuration data, the configuration data including relationships between the plurality of scaling policies and the plurality of types of events, and the memory further comprises instructions that are executable by the processor for causing the processor to:
 receive the configuration data; and 
 determine a relationship, in the configuration data, between the scaling policy and the particular type of event; and 
 select the scaling policy based on the relationship in the configuration data. 
 
     
     
       15. The system of  claim 13 , wherein the software process is a Java Virtual Machine (JVM), and wherein a monitoring tool is coupled to the JVM for generating and transmitting the notification in response to detecting the event. 
     
     
       16. The system of  claim 13 , wherein the corresponding resource pool for the software process is a dedicated resource pool that is not shared among the plurality of software processes, and wherein each software process of the plurality of software processes has its own dedicated resource pool. 
     
     
       17. The method of  claim 7 , wherein the corresponding resource pool for the software process is a dedicated resource pool that is not shared among the plurality of software processes, and wherein each software process of the plurality of software processes has its own dedicated resource pool. 
     
     
       18. The system of  claim 13 , wherein the software process is a virtual machine, and the memory further comprises instructions that are executable by the processor for causing the processor to adjust the amount of resource objects in the corresponding resource pool based on the scaling strategy by:
 shutting down the virtual machine; 
 adjusting a setting in a configuration file associated with the virtual machine based on the scaling strategy to produce an updated configuration file for the virtual machine, the setting controlling the amount of resource objects in the corresponding resource pool; and 
 deploying the virtual machine using the updated configuration file. 
 
     
     
       19. The system of  claim 13 , wherein the scaling policy is configured to:
 determine whether a value in the event data is greater than or equal to a predefined threshold value; 
 in response to determining that the value is greater than or equal to the predefined threshold value, select a first scaling strategy as the scaling strategy to be implemented; and 
 in response to determining that the value is less than the predefined threshold value, select a second scaling strategy as the scaling strategy to be implemented, the second scaling strategy being different from the first scaling strategy. 
 
     
     
       20. The system of  claim 13 , wherein the corresponding scaling service is configured to:
 compare values in the set of event data to one or more predefined thresholds; 
 based on determining that the values are greater than or equal to the one or more predefined thresholds, decrease the size of the corresponding resource pool according to a first scaling policy identified in configuration data; and 
 based on determining that the values are less than the one or more predefined thresholds, increase the size of the corresponding resource pool according to a second scaling policy identified in the configuration data.

Join the waitlist — get patent alerts

Track US12386676B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.