The virtualization of computing resources has given birth to Cloud Computing, an effective model for sharing resources. More recently, lightweight container-based virtualization has become increasingly popular. Containers provide performance isolation comparable to virtual machines, but promise better resource consolidation thanks to their flexibility.
We are interested in this thesis to evaluate the memory consolidation offered by Linux kernel containers. Thus, we highlight losses of performance isolation assumed to be guaranteed to an active container. These losses occur during consolidation, i.e. when the unused memory of an inactive container is transferred to a new container that starts. However, in a non-virtualized environment, this memory consolidation scenario does not result in a degradation of performance for the most active processes.
The state of the art argues that in order to guarantee performance isolation, data structures related to memory management must be duplicated for each container. However, during consolidation, it becomes difficult to arbitrate the usefulness of memory pages of different containers without global structures.
We therefore propose, as a first step, to measure the memory activity of containers using metrics present in the state of the art. Then, to ensure the isolation of the most active containers during memory consolidation, we modify the behavior of the Linux kernel in order to reclaim the memory of the containers defined as being the most inactive by the metric.
In a second step, we propose another method for estimating the memory activity of the containers based on a global memory event clock. This method is more reactive than the previous one because it tries to protect the containers whose memory activity is the most recent.