2005Unpublished venueRequires access

Managing prefetch memory for data-intensive online servers

Chuanpeng Li, Kai Shen

Open publisher page 31 citations

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

About this research paper

What this paper is about

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

Why it matters

OpenAlex reports 31 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available 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

Key concepts: Instruction prefetch, Computer science, Operating system, Page fault, Page cache, Server, Provisioning, Computer network

Related papers

Back to paper searchBrowse research topicsOriginal source
Managing prefetch memory for data-intensive online servers — Research Paper | ScholarLens