Dynamically adjusting the number of virtual machines
(VMs) assigned to a cloud application to keep up with
load changes and interference from other uses typically
requires detailed application knowledge and an ability to
know the future, neither of which are readily available
to infrastructure service providers or application owners.
The result is that systems need to be over-provisioned
(costly), or risk missing their performance Service Level
Objectives (SLOs) and have to pay penalties (also
costly). AGILE deals with both issues: it uses wavelets
to provide a medium-term resource demand prediction
with enough lead time to start up new application server
instances before performance falls short, and it uses
dynamic VM cloning to reduce application startup times.
Tests using RUBiS and Google cluster traces show that
AGILE can predict varying resource demands over the
medium-term with up to 3.42× better true positive rate
and 0.34× the false positive rate than existing schemes.
Given a target SLO violation rate, AGILE can efficiently
handle dynamic application workloads, reducing both
penalties and user dissatisfaction.