Mitigation of garbage collection overhead
A method includes collecting resource utilization statistics associated with execution of an application, identifying calls to a function associated with management of the application, and adjusting an allocation of computing resources for executing the application in view of the resource utilization statistics and the calls to the function.
1 . A method comprising:
collecting, within a defined period of time, resource utilization statistics associated with execution of an application;
monitoring, by a processing device within the defined period of time, calls to a function associated with management of the application during execution of the application, wherein the function comprises a garbage collection process;
determining a threshold number of calls to the function have occurred within the defined period of time;
determining a pattern of calls to the function within the defined period of time;
comparing the pattern of calls to the function within the defined period of time to resource utilization statistics for the defined period of time; and
updating, by the processing device, an allocation of computing resources for executing the application in view of the resource utilization statistics, the calls to the function, the threshold number of calls occurring within the defined period of time, and comparison of the pattern of calls to the function within the defined period of time to the resource utilization statistics for the defined period of time, wherein updating the allocation of computing resources includes determining whether to adjust an amount of memory allocated to the application in response to determining that the threshold number of calls to the function have occurred within the defined period of time.
2 . The method of claim 1 , further comprising:
correlating the resource utilization statistics and the calls to the function; and
adjusting the allocation of computing resources in view of the correlation.
3 . The method of claim 1 , further comprising:
determining, in view of the calls to the function, whether to adjust an amount of processing cycles provided for execution of the application.
4 . The method of claim 3 , wherein determining whether to adjust the amount of processing cycles is in response to determining that the calls to the function take more than a threshold amount of time to complete.
5 . A system comprising:
a memory; and
a processing device, operatively coupled to the memory, to:
collect, within a defined period of time, resource utilization statistics associated with execution of an application;
monitor, by a processing device within the defined period of time, calls to a function associated with management of the application during execution of the application, wherein the function comprises a garbage collection function; and
determine a threshold number of calls to the function have occurred within the defined period of time;
determine a pattern of calls to the function within the defined period of time;
compare the pattern of calls to the function within the defined period of time to the resource utilization statistics for the defined period of time; and
adjust, by the processing device, an allocation of computing resources for executing the application in view of the resource utilization statistics, the calls to the function, the threshold number of calls occurring within the defined period of time, and comparison of the pattern of calls to the function within the defined period of time to the resource utilization statistics for the defined period of time, wherein updating the allocation of computing resources includes determining whether to adjust an amount of memory allocated to the application in response to determining that the threshold number of calls to the function have occurred within the defined period of time.
6 . The system of claim 5 , wherein the processing device is further to:
correlate the resource utilization statistics and the calls to the function; and
adjust the allocation of computing resources in view of the correlation.
7 . The system of claim 5 , wherein the processing device is further to:
determine, in view of the calls to the function, whether to adjust an amount of processing cycles provided for execution of the application.
8 . The system of claim 7 , wherein the processing device is to determine whether to adjust the amount of processing cycles in response to determining that the calls to the function take more than a threshold amount of time to complete.
9 . A non-transitory computer-readable storage medium including instructions that, when executed by a processing device, cause the processing device to:
collect, within a defined period of time, resource utilization statistics associated with execution of an application;
monitor, by the processing device within the defined period of time, calls to a function associated with management of the application during execution of the application, wherein the function comprises a garbage collection function;
determine a threshold number of calls to the function have occurred within the defined period of time;
determine a pattern of calls to the function within the defined period of time;
compare the pattern of calls to the function within the defined period of time to the resource utilization statistics for the defined period of time; and
updating, by the processing device, an allocation of computing resources for executing the application in view of the resource utilization statistics, the calls to the function, the threshold number of calls occurring within the defined period of time, and comparison of the pattern of calls to the function within the defined period of time to the resource utilization statistics for the defined period of time, wherein updating the allocation of computing resources includes determining whether to adjust an amount of memory allocated to the application in response to determining that the threshold number of calls to the function have occurred within the defined period of time.
10 . The non-transitory computer-readable storage medium of claim 9 , wherein the processing device is further to:
correlate the resource utilization statistics and the calls to the function; and
adjust the allocation of computing resources in view of the correlation.
11 . The non-transitory computer-readable storage medium of claim 9 , wherein the processing device is further to:
determine, in view of the calls to the function, whether to adjust an amount of processing cycles provided for execution of the application.
12 . The non-transitory computer-readable storage medium of claim 11 , wherein determining whether to adjust the amount of processing cycles is in response to determining that the calls to the function take more than a threshold amount of time to complete.
13 . The non-transitory computer-readable storage medium of claim 9 , wherein the application is executed within a container.
14 . The non-transitory computer-readable storage medium of claim 9 , wherein the resource utilization statistics include at least one of memory utilization processor utilization, or cache utilization.
15 . The method of claim 1 , wherein the application is executed within a container.
16 . The method of claim 1 , wherein application is a cloud native application.
17 . The method of claim 1 , wherein the resource utilization statistics include at least one of memory utilization processor utilization, or cache utilization.
18 . The system of claim 5 , wherein the application is executed within a container.
19 . The system of claim 5 , wherein application is a cloud native application.
20 . The system of claim 5 , wherein the resource utilization statistics include at least one of memory utilization processor utilization, or cache utilization.