Dynamically optimizing memory allocation across virtual machines
AssigneeInternational Business Machines Corporation
InventorsNorman Bobroff, Arun Kwangil Iyengar, Peter Hans Westerink
Life of this patent
Estimating the term…
Abstract
A method for allocating memory among a plurality of computing systems includes assigning a free memory threshold to each computing system, dynamically varying at least one free memory threshold for at least one computing system based on a past memory usage of the at least one computing system, periodically monitoring each computing system for memory usage and in response to the monitoring determining that an amount of free memory for the computer system is below the free memory threshold for the computing system, allocating memory from the free memory pool to the computing system.
Claims42
A method for allocating memory among a plurality of computing systems, said method comprising:
- assigning a free memory threshold to each computing system;
- dynamically varying at least one free memory threshold for at least one computing system based on a past memory usage of the at least one computing system;
- periodically monitoring each computing system for memory usage;
- and
- in response to said monitoring determining that an amount of free memory for a computing system is below the free memory threshold for the computing system, allocating memory from a free memory pool to the computing system.
A method for allocating memory among a plurality of computing systems, said method comprising:
- assigning a free memory threshold to each computing system wherein at least one free memory threshold assigned to a computing system is determined so that one of a probability of the computing system achieving paging does not exceed a threshold and a probability of the plurality of computing systems achieving paging, does not exceed a threshold;
- periodically monitoring each computing system for memory usage;
- and
- in response to said monitoring determining that an amount of free memory for the computing system is below the free memory threshold for the computing system, allocating memory from a free memory pool to the computing system.
A method for allocating memory among a plurality of computing systems, said method comprising:
- periodically monitoring each computing system for memory usage;
- in response to said monitoring determining that a computing system is running low on free memory, determining if a memory size of the computing system has recently increased;
- and
- in response to one of determining that the memory size of the computing system has not recently increased and determining that the memory size of the computing system has increased at a rate falling below a threshold, allocating memory from a free memory pool to the computing system.
A method for allocating memory among a plurality of computing systems, said method comprising:
- assigning a free memory pool size threshold to a free memory pool, wherein memory from the free memory pool can be allocated to a plurality of the computing systems;
- dynamically varying the free memory pool size threshold in response to requests to the free memory pool for memory;
- periodically monitoring each computing system and the free memory pool, for memory usage;
- in response to determining that a size of the free memory pool is below the free memory pool size threshold, identifying at least one computing system with sufficient free memory;
- and
- transferring memory from said at least one computing system to the free memory pool.
A method for allocating memory among a plurality of computing systems, said method comprising:
- assigning a free memory pool size threshold to a free memory pool, wherein said free memory pool size threshold is determined so that a probability of the free memory pool running out of memory does not exceed a threshold;
- periodically monitoring each computing system and the free memory pool for memory usage;
- in response to determining that a size of the free memory pool is below the free memory pool size threshold, identifying at least one computing system with sufficient free memory;
- and
- transferring memory from said at least one computing system to the free memory pool.
A method for allocating memory among a plurality of computing systems, said method comprising:
- periodically monitoring each computing system and a free memory pool for memory usage, wherein memory from the free memory pool can be allocated to a plurality of the computing systems;
- in response to said monitoring determining that the free memory pool is running low on free memory, determining if a size of the free memory pool has recently increased;
- in response to one of determining that the size of the free memory pool has not recently increased and determining that the size of the free memory pool has increased at a rate falling below a threshold, identifying at least one computing system with sufficient free memory;
- and
- transferring memory from said at least one computing system to the free memory pool.
A system for dynamic memory allocation within a plurality of computing systems, said system comprising:
- a monitor for periodically monitoring one or more memory components;
- and
- a memory rebalancer for distributing memory equitably among said one or more memory components.
Dependencies are inferred from the claim text.