Burstable Resources

From Luna Node
Revision as of 15:45, 4 January 2018 by Favyen Bastani (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

In order to maximize affordability and flexibility, Luna Node virtual machines are assigned a portion of available CPU resources and disk I/O rather than specific dedicated CPU cores or physical disks. Because most application workloads have both periods of high CPU and I/O utilization and periods of low utilization, this maximizes cost savings -- essentially, instead of needing to continuously pay for a particular VM's peak utilization, you need only pay for its average utilization.

At a high-level, we assign each VM a baseline CPU and I/O performance. If your VM has periods where its resource utilization is below this baseline, then it collects "points" that it can later use to obtain resource utilization above the baseline.

Before 3 January 2018, enforcement of excessive resource utilization was performed manually. It is now automatically managed by the Luna Node platform.

History

Before 3 January 2018, we simply had a "fair share usage policy" that stated that CPU and disk I/O are shared, and excessive utilization may result in service suspension. In practice, we would send an e-mail when excessive utilization was detected, and coordinate with the user to either reduce the usage to an acceptable level or upgrade to a larger instance.

We have since deployed an automatic management system that makes this policy much more concrete.

Burst Points System

Each virtual machine has a baseline performance:

  • CPU: 20% utilization per core (if a VM has two cores, it could use 40% of one core, 30% of one and 10% of the other, etc.)
  • Disk I/O: 100 IOPS

The platform keeps track of CPU and disk burst points that each VM has.

  • CPU: 1 CPU burst point corresponds to 100% utilization of a core for five minutes
  • Disk I/O: 1 I/O burst point corresponds to 100 IOPS sustained over five minutes

If a VM's utilization is below the baseline, then it accumulates burst points.

  • CPU: 0.2 burst points are added every five minutes
  • Disk I/O: 1 burst point is added every five minutes