Cache is King: Smart Page Eviction with eBPF

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Zussman, Tal, Zarkadas, Ioannis, Carin, Jeremy, Cheng, Andrew, Franke, Hubertus, Pfefferle, Jonas, Cidon, Asaf
Formato: Preprint
Publicado: 2025
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866912220766535680
author Zussman, Tal
Zarkadas, Ioannis
Carin, Jeremy
Cheng, Andrew
Franke, Hubertus
Pfefferle, Jonas
Cidon, Asaf
author_facet Zussman, Tal
Zarkadas, Ioannis
Carin, Jeremy
Cheng, Andrew
Franke, Hubertus
Pfefferle, Jonas
Cidon, Asaf
contents The page cache is a central part of an OS. It reduces repeated accesses to storage by deciding which pages to retain in memory. As a result, the page cache has a significant impact on the performance of many applications. However, its one-size-fits-all eviction policy performs poorly in many workloads. While the systems community has experimented with a plethora of new and adaptive eviction policies in non-OS settings (e.g., key-value stores, CDNs), it is very difficult to implement such policies in the page cache, due to the complexity of modifying kernel code. To address these shortcomings, we design a novel eBPF-based framework for the Linux page cache, called $\texttt{cachebpf}$, that allows developers to customize the page cache without modifying the kernel. $\texttt{cachebpf}$ enables applications to customize the page cache policy for their specific needs, while also ensuring that different applications' policies do not interfere with each other and preserving the page cache's ability to share memory across different processes. We demonstrate the flexibility of $\texttt{cachebpf}$'s interface by using it to implement several eviction policies. Our evaluation shows that it is indeed beneficial for applications to customize the page cache to match their workloads' unique properties, and that they can achieve up to 70% higher throughput and 58% lower tail latency.
format Preprint
id arxiv_https___arxiv_org_abs_2502_02750
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Cache is King: Smart Page Eviction with eBPF
Zussman, Tal
Zarkadas, Ioannis
Carin, Jeremy
Cheng, Andrew
Franke, Hubertus
Pfefferle, Jonas
Cidon, Asaf
Operating Systems
The page cache is a central part of an OS. It reduces repeated accesses to storage by deciding which pages to retain in memory. As a result, the page cache has a significant impact on the performance of many applications. However, its one-size-fits-all eviction policy performs poorly in many workloads. While the systems community has experimented with a plethora of new and adaptive eviction policies in non-OS settings (e.g., key-value stores, CDNs), it is very difficult to implement such policies in the page cache, due to the complexity of modifying kernel code. To address these shortcomings, we design a novel eBPF-based framework for the Linux page cache, called $\texttt{cachebpf}$, that allows developers to customize the page cache without modifying the kernel. $\texttt{cachebpf}$ enables applications to customize the page cache policy for their specific needs, while also ensuring that different applications' policies do not interfere with each other and preserving the page cache's ability to share memory across different processes. We demonstrate the flexibility of $\texttt{cachebpf}$'s interface by using it to implement several eviction policies. Our evaluation shows that it is indeed beneficial for applications to customize the page cache to match their workloads' unique properties, and that they can achieve up to 70% higher throughput and 58% lower tail latency.
title Cache is King: Smart Page Eviction with eBPF
topic Operating Systems
url https://arxiv.org/abs/2502.02750