How often do you pass over a bruised apple at the supermarket in favor of a nice, smooth, red one? We all know that although the apples in a bin are priced identically by weight, they vary in quality. So you can buy better apples at a given price through careful selection.
Resources in public clouds are sold on the same premise of uniform quality as apples. A virtual machine (VM) of a given type, for instance, is a fixed-sized bundle of resources—CPU, local storage, and so forth—that is rented to a tenant at a set hourly rate. Yet VMs, like apples, vary in quality. A VM’s performance depends on the CPU model in the machine on which it sits, the workloads of its neighbors (the VMs of other tenants), and a variety of other characteristics.
Is it possible, then, for a savvy shopper in a public cloud to throw bad fruit back into the bin? In other words, does careful selection enable a clever tenant to get higher-performing VMs for a given amount of money? The answer is yes.
In a paper recently presented at the Symposium on Cloud Computing (SOCC), academic colleagues at Univ. of Wisconsin together with RSA Labs have shown that it’s possible for a tenant to game public clouds to achieve better VM performance. Public clouds don’t allow tenants to select VMs freely like apples in a supermarket. But tenants can periodically shut down under performing VMs and spin up new ones. In our experiments in a public cloud, exploiting this small degree of control yields performance gains of 5% for CPU-bound jobs and 34% for bandwidth-intensive jobs.
Essentially any public cloud with a simple pricing regime is likely to be vulnerable to such gaming by tenants. A natural follow-up question is what happens if cherrypicking by tenants becomes standard practice. The answer may be like the one at the supermarket: Avoid shopping for picked-over VMs on a Sunday evening.
The paper ((c) ACM) is here: “More for Your Money: Exploiting Performance Heterogeneity in Public Clouds“