(sorry for crappy link, can't figure out how to link directly to the appropriate question. Search for "What is the underlying hypervisor on C5 instances" question).
Very interesting. Has anyone noticed any difference in boot times?
If they are announcing things like a brand new hypervisor ahead of re:Invent one wonders what they are saving for the main event...is it too much to hope for managed Kubernetes?
Just did a quick test. It booted up in about 11s vs around 19s for Xen.
I did notice that it took a while for the status check to go green though. There was a warning message saying that it couldn't connect to the instance. I was able to SSH just fine though.
It's difficult to make an simple comparison because neither hypervisor is used "out of the box" by EC2. For example, a lot of hypervisor benchmark comparisons focus on I/O performance, but the latest generation EC2 instances offload networking and storage processing to hardware. This is the case for both for instances that use Xen and C5 that uses the new KVM-based hypervisor.
Since both hypervisors have very good support for hardware virtualization technology, it becomes more of an architecture decision. Practically speaking, it is a little bit easier to build a very small footprint hypervisor with the core KVM code than Xen.
This is based on a cursory examination of [1], so I may be off-base. But Xen appears to rely on the host for many things that can be, and often are, hardware accelerated in KVM. Searching for CONFIG_XEN_PVHVM, it doesn't appear to cover much.
Note, that you will need to select Northern Virginia, Oregon or Ireland to see C5 prices. By default (at least for me) the pricing page loads Ohio, which doesn't have C5 yet.
Interesting that Amazon is charging less for Skylake than Broadwell while the list prices for Skylake are higher. I guess Intel really wants you to move to the cloud.
I'm a little bit surprised that Amazon are mapping vCPUs to HyperThreads, instead of to cores. It seems to me like, if this is targeted at compute-intensive workloads, that it may be overcommitting a bit. Or is there recent research saying that an HT thread is equivalent to a core for compute-intensive workloads?
> Or is there recent research saying that an HT thread is equivalent to a core for compute-intensive workloads?
This is a fun question. Processors that have hyperthreading duplicate the parts of the CPU needed to maintain state, but they don't duplicate the parts that run the actual logic. So if you compare a single core hyperthreaded processor with a dual core processor without hyperthreading the dual core one will be faster.
However it gets a bit more complicated than that. Oftentimes processors sit idle while waiting for the rest of the system to catch up- for instance it may have to wait for memory to get loaded from RAM. Processors with hyperthreading see a boost in performance here because they can run the second thread while waiting for the operations needed to run the first thread- thus making these processors about 30% more efficient.
So while more cores are definitly better, if you are comparing two processors with the same number of cores and all else is equal the ones with hyperthreading will perform better.
One thing to note is that AWS provides vCPUs in pairs, so even though they are giving you the number of threads you can always be sure you're getting individual cores along with them.
"CPU" is commonly used in operating systems to describe any logical processor, no matter if it is a thread from a core for processors that implement simultaneous multithreading (like Intel Hyper-Threading Technology). vCPU is the same concept, it's a logical unit of execution.
Since Intel processors have HTT and many workloads benefit from it, it makes sense to map the underlying physical execution units 1:1 as vCPUs. For c5.18xlarge, all of the logical processors of the system (72 threads on 36 cores) are provided as vCPUs.
If a workload does not scale well with threads, you can essentially turn them off by disabling CPUs in the OS, like maxcpus=(vcpus/2) for Linux based OSes. (e.g., maxcpus=36 for c5.18xlarge).
> These instances designed for compute-heavy applications like [...], highly scalable multiplayer gaming
Is he referring to specific titles? It's been a while, but to me, the max lobby size for multiplayer games was stuck at ~70 concurrent players (sending all updates to everyone is n^2).
Has anyone booted one yet? Is it KVM or something from scratch that AWS wrote?