Exploiting Hardware Heterogeneity within the Same Instance Type of Amazon EC2
usenix.org
usenix.org
Each instance has three-four subgroups of different hardware types depending on when the configuration was installed. (2006/07/10 etc).
Also, each zone has different configurations, especially as new zones are being installed and newer hardware is being added to start with.
Variations of performance can approach 60% between the same instance types (processor,memory,disk,network).
Cost savings can be achieved by seeking for better performing instances, check it it performs well, if it does, keep it, if it does not, drop the machine and request a new instance.
Instances using E5645 are 1.6 times as effecient as the E5507, however, if you are requesting m1.large servers, you only have a 5% probability of getting a E5645 server if you rented in 2011, whereas now you have a 42% probability.
You can also wiew the slides here: https://www.usenix.org/sites/default/files/conference/protec...
"Saving money by seeking for better performing instances, simply using “trial-and-failure” method
– Applying for instances randomly;
– Checking if performing well;
– If not, drop and apply for new ones."
I'm not sure what the ideal way to resolve this outside of further subdividing instance types or rebalancing CPUs so that more advanced CPUs are used at the high end in a consistent manner or if users should be able to request a specific CPU type. (but hopefully jeffbarr will read this and put it on a todolist somewhere)
Done, from our development center in Iasi, Romania. I'm fairly sure that our EC2 team is already aware of this, but I'll send the thread to them just to be sure.
https://www.usenix.org/system/files/conference/hotcloud12/ho...
This one focuses more on a model for how to take advantage of said heterogeneity, and has a few examples where they actually implement the model on EC2 and see some performance improvements.
Some people already do this for EBS disk I/O issues, you fire up an instance, run some sample benchmarks, and kill the instance if it's a problematic one.