Containers: Challenges with Memory Resource Controller and Its PerformanceBalbir Singh (firstname.lastname@example.org)
Containers under Linux are under active development and have different uses like security, isolation and resource guarantees. In order to provide resource guarantee for containers, the basic building blocks are resource controllers that monitor and control utilization of system resources like CPU time, resident memory and IO bandwidth among others. While CPU time and IO bandwidth are renewable resources, memory is a non-renewable resource in the system. Infrastructure to monitor and control resident memory used by a container adds a new dimension to the existing page allocation and reclaim logic.
In order to assess the impact of any change in memory management implementation, we propose to add parameters to modify VM behavior and instrument code paths and collect data against common workloads like file-server, web-server, database-server and developer desktop. Data of interest would be reclaim rate, page scan density, lru quantum, page container affinity and page generation.
This paper will discuss in detail the design and performance issues of RSS controller and pagecache controller within the container framework. Some of the modifications to the current page reclaim logic that could help containers will also be evaluated.
This paper will be of interest to the design and user community, involved in resource management, virtualization and containers. The paper will help the reader better understand the performance metrics and tradeoffs involved in implementing the memory resource controller.A good basic understanding of operating systems and memory management will help the reader appreciate the paper.