Managing prefetch memory for data-intensive online servers
Chuanpeng Li, Kai Shen
Abstract
Chuanpeng Li, Kai Shen
Abstract
Data-intensive online servers may contain a significant amount of prefetched data in memory due to largegranularity I/O prefetching and high execution concurrency. Using a traditional access recency or frequencybased page reclamation policy, memory contention can cause a substantial number of prefetched pages to be prematurely evicted before being accessed. This paper presents a new memory management framework that handles prefetched (but not-yet-accessed) pages separately from the rest of the memory buffer cache. We examine three new heuristic policies when a victim page (among the prefetched pages) needs to be identified for eviction: 1) evict the last page of the longest prefetch stream; 2) evict the last page of the least recently accessed prefetch stream; and 3) evict the last page of the prefetch stream whose owner process has consumed the most amount of CPU since it last accessed the prefetch stream. These policies require no application changes or hints on their data access patterns. We have implemented the proposed techniques in the Linux 2.6.10 kernel and conducted experiments based on microbenchmarks and two real application workloads (a trace-driven index searching server and the Apache Web server hosting media clips). Compared with access history-based policies, our memory management scheme can improve the server throughput of real workloads by 11–64 % at high concurrency levels. Further, the proposed approach is 10–32 % below an approximated optimal page reclamation policy that uses applicationprovided I/O access hints. The space overhead of our implementation is about 0.4 % of the physical memory size. 1
OpenAlex reports 31 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Data-intensive online servers may contain a significant amount of prefetched data in memory due to largegranularity I/O prefetching and high execution concurrency. Using a traditional access recency or frequencybased page reclamation policy, memory contention can cause a substantial number of prefetched pages to be prematurely evicted before being accessed. This paper presents a new memory management framework that handles prefetched (but not-yet-accessed) pages separately from the rest of the memory buffer cache. We examine three new heuristic policies when a victim page (among the prefetched pages) needs to be identified for eviction: 1) evict the last page of the longest prefetch stream; 2) evict the last page of the least recently accessed prefetch stream; and 3) evict the last page of the prefetch stream whose owner process has consumed the most amount of CPU since it last accessed the prefetch stream. These policies require no application changes or hints on their data access patterns. We have implemented the proposed techniques in the Linux 2.6.10 kernel and conducted experiments based on microbenchmarks and two real application workloads (a trace-driven index searching server and the Apache Web server hosting media clips). Compared with access history-based policies, our memory management scheme can improve the server throughput of real workloads by 11–64 % at high concurrency levels. Further, the proposed approach is 10–32 % below an approximated optimal page reclamation policy that uses applicationprovided I/O access hints. The space overhead of our implementation is about 0.4 % of the physical memory size. 1
Key concepts: Instruction prefetch, Computer science, Operating system, Page fault, Page cache, Server, Provisioning, Computer network