Pre-fetching data based on memory usage patterns
US-10228864-B1 · Mar 12, 2019 · US
US10929165B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10929165-B2 |
| Application number | US-201816051242-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 31, 2018 |
| Priority date | Jul 31, 2018 |
| Publication date | Feb 23, 2021 |
| Grant date | Feb 23, 2021 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A system and method for dynamically adjusting the amount of memory allocated to a virtual machine includes generating, by a memory resizing system, a current memory usage profile for the virtual machine. The memory resizing system and the virtual machine are part of a virtual computing system and the current memory usage profile is generated by mapping, as a function of time, memory usage information from the virtual machine. The system and method also include computing an upper baseline based upon a peak memory usage in the current memory profile, updating an initial memory allocation of the virtual machine based upon the upper baseline and a predetermined threshold for obtaining an initial revised memory allocation, determining a moving average of memory usage from a historical memory usage profile, and updating the initial revised memory allocation based upon the moving average of memory usage for obtaining a final revised memory allocation.
Opening claim text (preview).
What is claimed is: 1. A method comprising: generating, by a memory resizing system, a current memory usage profile for a virtual machine by mapping memory usage information of the virtual machine as a function of time, wherein the memory usage information is collected from a counter associated with the virtual machine, wherein the current memory usage profile is determined from a first past predetermined time period, computing, by the memory resizing system, an upper baseline based upon a peak memory usage in the current memory usage profile; updating, by the memory resizing system, an initial memory allocation of the virtual machine based upon the upper baseline and a predetermined threshold for obtaining an initial revised memory allocation; updating, by the memory resizing system, the initial revised memory allocation based upon a moving average of memory usage for obtaining a final revised memory allocation; determining the moving average of memory usage from a second past predetermined time period; and determining the current memory usage profile from the second past determined time period, wherein the first past predetermined time period is greater than the second past predetermined time period. 2. The method of claim 1 , further comprising determining, a lower baseline from the current memory usage profile for memory ballooning. 3. The method of claim 1 , wherein determining the moving average of memory usage from the second past predetermined time period of the virtual machine is based on a historical memory usage profile. 4. The method of claim 1 , further comprising updating the initial memory allocation of the virtual machine with the final revised memory allocation. 5. The method of claim 1 , wherein the initial revised memory allocation and the final revised memory allocation are based on an amount of random access memory allocated to the virtual machine. 6. The method of claim 1 , further comprising determining that the virtual machine is constrained for memory based upon the upper baseline being equal to or exceeding the initial memory allocation. 7. The method of claim 1 , further comprising determining that the virtual machine is not constrained for memory based upon the upper baseline being less than the initial memory allocation. 8. The method of claim 1 , further comprising revising the final revised memory allocation periodically based upon a predetermined period. 9. The method of claim 1 , further comprising updating the final revised memory allocation using future memory usage profiles. 10. The method of claim 1 , further comprising predicting future memory usage profiles based on past memory consumption patterns. 11. The method of claim 10 , further comprising updating the final revised memory allocation using future memory usage profiles. 12. A method comprising: generating, by a memory resizing system, a current memory usage profile for a virtual machine, wherein the current memory usage profile is determined from a first past predetermined time period, computing, by the memory resizing system, an upper baseline based upon a peak memory usage in the current memory usage profile; updating, by the memory resizing system, an initial memory allocation of the virtual machine based upon the upper baseline and a predetermined threshold for obtaining an initial revised memory allocation; updating, by the memory resizing system, the initial revised memory allocation based upon a moving average of memory usage for obtaining a final revised memory allocation, wherein an agent of the memory resizing system collects memory usage information from a counter within a guest operating system of the virtual machine for generating the current memory usage profile; determining the moving average of memory usage from a second past predetermined time period; and determining the current memory usage profile from the second past determined time period, wherein the first past predetermined time period is greater than the second past predetermined time period. 13. The method of claim 12 , further comprising updating the initial memory allocation of the virtual machine with the final revised memory allocation. 14. A method comprising: generating, by a memory resizing system, a current memory usage profile for a virtual machine by plotting memory usage information of the virtual machine as a function of time, wherein the function of time comprises equally spaced points in time, wherein the current memory usage profile is determined from a first past predetermined time period; computing, by the memory resizing system, an upper baseline based upon a peak memory usage in the current memory usage profile; updating, by the memory resizing system, an initial memory allocation of the virtual machine based upon the upper baseline and a predetermined threshold for obtaining an initial revised memory allocation; updating, by the memory resizing system, the initial revised memory allocation based upon a moving average of memory usage for obtaining a final revised memory allocation; determining the moving average of memory usage from a second past predetermined time period; and determining the current memory usage profile from the second past determined time period, wherein the first past predetermined time period is greater than the second past predetermined time period. 15. The method of claim 14 , wherein the initial revised memory allocation and the final revised memory allocation are based on an amount of random access memory allocated to the virtual machine. 16. A method comprising: generating, by a memory resizing system, a current memory usage profile for a virtual machine, wherein the current memory usage profile is determined from a first past predetermined time period; computing, by the memory resizing system, an upper baseline based upon a peak memory usage in the current memory usage profile; updating, by the memory resizing system, an initial memory allocation of the virtual machine based upon the upper baseline and a predetermined threshold for obtaining an initial revised memory allocation; adding the upper baseline to the predetermined threshold for obtaining the initial revised memory allocation; updating, by the memory resizing system, the initial revised memory allocation based upon a moving average of memory usage for obtaining a final revised memory allocation; determining the moving average of memory usage from a second past predetermined time period; and determining the current memory usage profile from the second past determined time period, wherein the first past predetermined time period is greater than the second past predetermined time period. 17. The method of claim 16 , further comprising determining that the virtual machine is constrained for memory based upon the upper baseline being equal to or exceeding the initial memory allocation. 18. The method of claim 16 , further comprising determining that the virtual machine is not constrained for memory based upon the upper baseline being less than the initial memory allocation. 19. An apparatus comprising programmed instructions to: dynamically adjust an initial memory allocation of a virtual machine by generating a current memory usage profile of the virtual machine by mapping memory usage information of the virtual machine as a function of time, wherein the memory usage information is collected from a counter associated with the virtual machine, wherein the current memory usage profile is determined from a first past predetermined time period; c
Management of space entities, e.g. partitions, extents, pools · CPC title
Hypervisor-specific management and integration aspects · CPC title
Space efficiency improvement · CPC title
Memory management, e.g. access or allocation · CPC title
in hierarchically structured memory systems, e.g. virtual memory systems · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.