I. Introduction
Commercial cloud providers (e.g., Amazon [12] and Google [19]) provide elastic Infrastructure-as-a-Service (IaaS) for tenants to deploy applications. To maximize the resource utilization, cloud providers use the virtualization techniques (e.g., hypervisors [13], [40], [45]) to place virtual machines (VMs) from different tenants on the same physical machine (PM). Even though current hypervisors can isolate both memory and physical memory pages [51], most of the underlying hardware memory resources of a PM are still shared by its VMs from different tenants.