Monday, 12 December 2016

EC2 Instances - Peak CPU utilisation across 5,587 instances

From my experience most EC2 instances are heavily underutilised, here is data from 5,587 running EC2 instances. In graph below each dot is peak CPU utilisation (based on 95th Percentile) from one instance. The data was derived from two weeks (previous max) Cloudwatch performance data:

Here average peak CPU utilisation is only 13.0% and median peak CPU utilisation is only 3.3%.

If server utilisation is so low then the question is how many VMs can a modern commodity server host with leading hypervisor? 

Each server can have maximum 2 x CPU (each with 22 cores or 44 threads) and 3TB of memory. But lets be conservative and choose good value for money configuration rather than the most powerful server:
CPU: 2 x 18 cores = 36 cores or 72 threads
Memory: 1536GB

So assuming a typical VM is 2 vCPUs and 4GB, then how many VMs could such a server support?
- Assume 10:1 vCPU to pCPU ratio (should be easy as median peak utilisation across a large data set shows only 2.67% utilisation)
- CPU: 72 threads x 10 = 720 vCPUs / 2 vCPU = 360 VMs
- Memory: 1536GB / 4 GB = 384 VMs

That is a lot of VMs in one physical box, lets be conservative and say we "only" run 200 VMs on one physical server. I would estimate that such as server supporting 200 VMs (each 2 vCPUs/4GB) would have average CPU utilisation of less than 50%. See calculation below for details:
(5% average CPU x 200 VM x 2 vCPUs) / (36 cores x 1.2 (20% additional capacity for hyperthreading)) = 46%

Looks like other others have also seen high density virtualisation:
http://frankdenneman.nl/2016/02/15/insights-into-vm-density/
http://searchdatacenter.techtarget.com/feature/How-many-VMs-per-host-is-too-many

No comments:

Post a Comment