VM Economics for Java Cloud Computing
An Adaptive and Resource-Aware Java Runtime with Quality-of-Execution
Jos
´
e Sim
˜
ao
Instituto Superior T
´
ecnico
INESC-ID Lisboa
Lisbon, Portugal
Email: jsimao@cc.isel.ipl.pt
Lu
´
ıs Veiga
Instituto Superior T
´
ecnico
INESC-ID Lisboa
Lisbon, Portugal
Email: luis.veiga@inesc-id.pt
Abstract—Resource management in Cloud Computing has
been dominated by system-level virtual machines to enable the
management of resources using a coarse grained approach,
largely in a manner independent from the applications run-
ning on these infrastructures. However, in such environments,
although different types of applications can be running, the
resources are delivered equally to each one, missing the oppor-
tunity to manage the available resources in a more efficient and
application driven way. So, as more applications target managed
runtimes, high level virtualization is a relevant abstraction layer
that has not been properly explored to enhance resource usage,
control, and effectiveness.
We propose a VM economics model to manage cloud infras-
tructures, governed by a quality-of-execution (QoE) metric and
implemented by an extended virtual machine. The Adaptive and
Resource-Aware Java Virtual Machine (ARA-JVM) is a cluster-
enabled virtual execution environment with the ability to monitor
base mechanisms (e.g. thread scheduling, garbage collection,
memory or network consumptions) to assess application’s perfor-
mance and reconfigure these mechanisms in runtime according
to previously defined resource allocation policies. Reconfiguration
is driven by incremental gains in quality-of-execution (QoE), used
by the VM economics model to balance relative resource savings
and perceived performance degradation.
Our work in progress, aims to allow cloud providers to
exchange resource slices among virtual machines, continually
addressing where those resources are required, while being able
to determine where the reduction will be more economically
effective, i.e., will contribute in lesser extent to performance
degradation.
I. INTRODUCTION
In recent years, the use of Grids, Utility and Cloud Com-
puting, shows that these are approaches with growing interest,
as well as scientific and commercial impact. At the same
time, managed object oriented languages (e.g., Java, C#) are
becoming increasingly relevant in the development of large
scale solutions, leveraging the benefits of a virtual execution
environment to provide modular, reconfigurable and robust
solutions.
The fusion of these two topics is a very active research
area, and solutions have been proposed to federate Java virtual
machines (either extended VMs or supported on middleware),
aiming to provide a single system image [1]. If this image
has elasticity in the sense that resources are made available
proportionally to the effective need, and if these resources
are accounted/charged as they are used, we can provide an
object oriented virtual machine (OO-VM) across the cluster,
as an utility. If these changes are made dynamically (instead
of explicitly by their users) we will have an adaptive and
resource-aware virtual machine, that can be offered as a value-
added Platform-as-a-Service (PaaS).
Therefore, such a cluster-enabled managed environment can
adapt itself to the execution of applications, from multiple
tenants, with different (and sometimes dynamically changing)
requirements in regard to their quality-of-execution (QoE).
QoE aims at capturing the adequacy and efficiency of the
resources provided to an application according to its needs.
It can be inferred coarsely from application execution time
for medium running applications, or request execution times
for more service driven ones such as those web-based, or from
critical situations such as thrashing or starvation. Also, it can
be derived with more fine-grain from incremental indicators
of application progress, such as execution phase detection [2],
memory pages updates, amount of input processed, disk and
network output generated. In our ongoing work, we are still
focusing only on application execution times.
QoE can be used to drive a VM economics model, where the
goal is to incrementally obtain gains in QoE for VMs running
applications requiring more resources or from more privileged
tenants. This, while balancing the relative resource savings
drawn from other tenants’ VMs with perceived performance
degradation. To achieve this goal, we must be able to positively
discriminate certain applications, and for this, on others we
may need to restrict resource usage, imposing limits to their
consumption, regardless some performance penalties (that
should also be mitigated). Additionally, we can reconfigure
the mechanisms and algorithms that support their execution
environment (or even engaging available alternatives to these
mechanisms/algorithms) [3]. In any case, these changes should
be transparent to the developer and specially to the applica-
tion’s user.
Our research work plan addresses the extension of high-
level language virtual machines (e.g., Java VMs such as
Jikes RVM [4] and OpenJDK) to operate more flexibly and
efficiently in multi-tenancy scenarios such as those of cloud
computing infrastructures. This entails three sets of require-
ments:
1) Enhancing current VMs with capabilities to accurately
monitor resource usage and enforce constrains in re-
2012 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing
978-0-7695-4691-9/12 $26.00 © 2012 IEEE
DOI 10.1109/CCGrid.2012.121
723