Methods and mechanisms for proactive memory management
First Claim
1. In a computer system, a method comprising:
- tracing page usage for a plurality of pages;
associating a priority value with each traced page based on the traced usage of that page; and
prioritizing at least some of the pages that are in memory relative to other pages on another storage based on the priority value associated with each page set.
2 Assignments
0 Petitions
Accused Products
Abstract
A proactive, resilient and self-tuning memory management system and method that result in actual and perceived performance improvements in memory management, by loading and maintaining data that is likely to be needed into memory, before the data is actually needed. The system includes mechanisms directed towards historical memory usage monitoring, memory usage analysis, refreshing memory with highly-valued (e.g., highly utilized) pages, I/O pre-fetching efficiency, and aggressive disk management. Based on the memory usage information, pages are prioritized with relative values, and mechanisms work to pre-fetch and/or maintain the more valuable pages in memory. Pages are pre-fetched and maintained in a prioritized standby page set that includes a number of subsets, by which more valuable pages remain in memory over less valuable pages. Valuable data that is paged out may be automatically brought back, in a resilient manner. Benefits include significantly reducing or even eliminating disk I/O due to memory page faults.
125 Citations
269 Claims
-
1. In a computer system, a method comprising:
-
tracing page usage for a plurality of pages;
associating a priority value with each traced page based on the traced usage of that page; and
prioritizing at least some of the pages that are in memory relative to other pages on another storage based on the priority value associated with each page set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92)
-
-
93. In a computing environment, a system comprising:
-
a tracing mechanism that tracks memory page usage for a plurality of pages;
a prioritization mechanism that associates a score with each tracked page based at least in part on the memory page usage tracked for that page; and
a rebalancer that determines which pages are in memory based on the score associated with each tracked page. - View Dependent Claims (94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148)
-
-
149. A computer-readable medium having stored thereon a data structure, comprising:
-
a standby page set for logically storing pages of memory;
a plurality of subsets in the standby page set, each subset corresponding to a value associated with the pages therein; and
the standby page set rebalanced to move pages between the subsets based on measured usage information for the pages. - View Dependent Claims (150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160)
-
-
161. A computer-implemented method, comprising:
-
identifying pages in a memory and pages maintained in secondary storage device based on page value data associated with each identified page; and
populating the memory with at least some pages from the secondary storage device, comprising replacing at least some of the pages in memory having relatively lower values with at least some pages from the secondary storage device having relatively higher values, before a demand for at least some of the pages having higher values is received. - View Dependent Claims (162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232)
-
-
233. A computer implemented method, comprising:
-
observing a need for pages of memory;
determining values for the pages based on the observed need; and
loading at least part of the memory based on the values of the pages. - View Dependent Claims (234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244)
-
-
245. A computer implemented method, comprising:
-
identifying low-value pages; and
maintaining memory management information in the memory, including information on the low value pages. - View Dependent Claims (246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261)
-
-
262. A computer implemented method, comprising:
-
capturing rich information on memory use, the rich information comprising at least one of pattern, frequency, context and grouping data, and persisting the rich information into a file. - View Dependent Claims (263, 264, 265)
-
-
266. In a computing environment having a memory and a secondary storage, a method comprising:
-
receiving an event related to a context; and
prioritizing the memory in response to the event, such that pages more likely to be used in the context are higher in value relative to pages less likely to be used. - View Dependent Claims (267, 268, 269)
-
Specification