There are disclosed systems, computer program products, and methods for
self-tuning memory. In an embodiment, a method for self-tuning memory
comprises setting a tuning interval and a target range for free memory
for a memory pool. If memory consumption falls outside of the set target
range for free memory during a tuning interval, a new target size for the
memory pool is set based on the target range for free memory. Memory
allocation for the memory pool is increased or decreased for the next
tuning interval, such that the new target size for the memory pool is
reached. A decrement rate may be used to provide a controlled decrease of
the memory pool over a plurality of tuning intervals if necessary, until
the new target size for the memory pool is reached.