It probably goes without saying that public virtualized cloud platforms are a form of shared hosting. It’s on a scale well beyond that of a single server stuffed with hosting accounts, but nevertheless, cloud platforms offer an environment in which limited resources are shared between many different users. The cloud is not a mythical land where fully independent servers pop into existence out of nowhere. Each physical server hosts a large number of virtual machines and each virtual machine uses a proportion of the physical server’s resources. virtual machines can be moved to different physical servers, but for the most part, they stay where they are.
In any shared environment, fairly apportioning resources is difficult, as some users will need more than others. That’s long been an issue with traditional shared hosting: the noisy neighbour problem. Other clients hosted on the same server will accidentally or deliberately use more than their fair share, and since resources are limited, if one account uses too much, someone else is going without.
The cloud industry is faced with much the same problem. In the case of shared hosting it was frequently RAM that was in short supply. Hypervisors are much better at maintaining strict compartmentalization of RAM and other resources that caused a problem in shared hosting, but that doesn’t mean the cloud has solved the noisy neighbour problem.
Eating up I/O
The clouds biggest noisy neighbour problem is disk I/O. Disks get bigger but they don’t get much faster. SSDs solve some of the problems, but not all. If one or more virtual machines is doing something that thrashes the I/O on the physical server’s storage, the virtual neighbours will suffer significant latencies.
If fact, because most cloud platforms use network attached storage rather than local drives, excessive I/O from a virtual machine can saturate the network link and cause contention problems—again, introducing latency.
The hypervisor is blind to what’s happening within a processor’s registers and cache. It has no way of knowing or managing what the processor is doing. The processor runs its own kingdom, and just as the hypervisor is blind to the processor’s internal state, the processor doesn’t know much about what’s going on “above” the hypervisor.
Processor cache is the very fast memory that lies between RAM and the processor’s registers. It holds the data that the processor is likely to need most immediately. Because the hypervisor has no control over the cache, the processor itself will determine which data is kept there. On modern multi-core processors running many different virtual machines, it frequently occurs that one VM is allowed to monopolize the L3 cache, which means that execution of operations from other VMs can take significantly longer.
Noisy neighbours matter less when you have a huge estate
If you’re a large cloud user with IT budget to spare and dozens or hundreds of VMs, the noisy neighbour issue is not really a problem. Because VMs can be moved between servers, if one VM is monopolizing resources or saturating a network link, it can be moved to an underutilized physical server. That’s easily managed by large organizations with cloud expertise.
On the other hand, if you’re a small-scale cloud user with a few VMs, there’s not much you can do about noisy neighbour problems: or at least not easily and quickly enough to make a real difference. The noisy neighbour problem disproportionately impacts smaller cloud clients and unless you’re spending millions, you won’t get personalized support on an IaaS platform like AWS.
Bare metal FTW!
A bare metal cloud powered by InterWorx helps hosting clients avoid the problems inherent in shared hosting environment. By running servers and applications on dedicated servers, without a hypervisor, clients can make the most of their hardware without suffering the I/O, cache, and other contention issues that affect users of shared hosting environments like the cloud—there will be no competition with other users, making it much easier to optimize a bare metal cloud for an individual customer’s workloads.
Bare metal clouds are the smarter choice for smaller cloud users.