Burstable Resources
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