Base Scenario—homogeneous vMs: In our first set of
benchmarks, we test the base scenario where all VMs on a
machine run the same OS and applications. This scenario
is common in cluster-based systems where several services
are replicated to provide fault tolerance or load balancing.
Our expectation is that significant memory savings are
available and that most of the savings will come from page
sharing.
On a machine running standard Xen, we start from 1 to 6
VMs, each with 256MB of memory and running RUBiS8—an
e-commerce application designed to evaluate application
server performance—on Debian 3. 1. We use the PHP implementation of RUBiS; each instance consists of a Web server
(Apache) and a database server (MySQL). Two distinct client
machines generate the workload, each running the standard
RUBiS workload generator simulating 100 user sessions.
The benchmark runs for roughly 20 min. The workload generator reports several metrics at the end of the benchmark,
in particular the average response time and the total number of requests served.
We then run the same set of VMs with Difference Engine
enabled. Both the total number of requests and the average
response time remain unaffected while Difference Engine
delivers 65%–75% memory savings. In this case, the bulk
of memory savings comes from page sharing. Recall that
Difference Engine tries to share as many pages as it can
before considering pages for patching and compression,
so sharing is expected to be the largest contributor in most
cases, particularly in homogeneous workloads.
We next compare Difference Engine performance with
the VMware ESX server. We set up four 512MB virtual
machines running Debian 3. 1. Each VM executes dbench2
for 10min followed by a stabilization period of 20min.
Figure 2 shows the amount of memory saved as a function
of time. First, note that eventually both ESX and Difference
100
figure 2. four identical Vms execute dbench. Both Difference engine
and eSX eventually yield similar savings, but De extracts more
savings while the benchmark is in progress.
80
DE Shared
DE Patched
DE Compressed
DE total
Savings (%)
ESX aggressive
20
0
0
200
400 600 800
Time (s)
1000 1200
a After initial publication of our results, we were informed by VMware
that this version of ESX silently limits the effective page-sharing rate to a
maximum of 450 pages/sec per vm regardless of the configured scan rate.
Engine reclaim roughly the same amount of memory (the
graph for ESX plateaus beyond 1,200s). However, while
dbench is executing, Difference Engine delivers approximately 1. 5 times the memory savings achieved by ESX. As
before, the bulk of Difference Engine savings come from
page sharing for the homogeneous workload case.
heterogeneous OS and Applications: Given the increasing
trend toward virtualization, both on the desktop and in the
data center, we envision that a single physical machine will
host significantly different types of operating systems and
workloads. While smarter VM placement and scheduling
will mitigate some of these differences, there will still be
a diverse and heterogeneous mix of applications and environments, underscoring the need for mechanisms other
than page sharing. We now examine the utility of Difference
Engine in such scenarios, and demonstrate that significant
additional memory savings result from employing patching
and compression in these settings.
Figures 3 and 4 show the memory savings as a function
of time for the two heterogeneous workloads—Mixed- 1
and Mixed- 2 described in Section 3. 2. We make the following observations. First, in steady state, Difference Engine
delivers a factor of 1. 6–2. 5 more memory savings than ESX.
For instance, for the Mixed- 2 workload, Difference Engine
could host the three VMs allocated 512MB of physical
memory each in approximately 760MB of machine memory;
ESX would require roughly 1,100MB of machine memory.
The remaining, significant, savings come from patching
and compression. And these savings come at a small cost.
Table 3 summarizes the performance of the three benchmarks in the Mixed- 1 workload. The baseline configuration
is regular Xen without Difference Engine. In all cases, performance overhead of Difference Engine is within 7% of the
baseline. For the same workload, we find that performance
under ESX with aggressive page sharing is also within 5% of
the ESX baseline with no page sharing.
increasing Aggregate System Performance: Difference Engine
goes to great lengths to reclaim memory in a system, but eventually this extra memory needs to actually get used in a productive
figure 3. memory savings for mixed- 1. Difference engine saves up to
45% more memory than eSX.
70
60
50
Savings (%)
40
30
20
DE Shared
DE Patched
ESX aggressive
10
00 200 400
600 800
Time (s)
1000 1200 1400 1600