Improving gVisor Memory Subsystem Performance

Posted: Jan 2020 - June 2020
Abstract

In this project, we analyzed the performance of the gVisor memory management subsystem, starting from benchmarking malloc and ending up focusing on MMAP. We further profiled MMAP performance within gVisor and identified its bottlenecks. We proposed an optimization in the free page searching algorithm of virtual memory space within gVisor (from O(N) to O(logN)). This optimization patch has been merged into production.

Improving gVisor Memory Subsystem Performance

Introduction

In this project, we analyzed the performance of the gVisor memory management subsystem, starting from benchmarking malloc and ending up focusing on MMAP. We further profiled MMAP performance within gVisor and identify its bottlenecks. We proposed an optimization in the free page searching algorithm of virtual memory space within gVisor (from O(N) to O(logN)).

This work has been merged into the production version of gVisor. For technical details, please refer to the code/commit, slide, and report.

Last Updated on Jun 1st 2025