Increasing Performance While Decreasing Price: Testing the New T2 Instances From Amazon
Amazon’s T2 instances have been available on Engine Yard since December. These instances are a “low-cost, General Purpose instance type that are designed to provide a baseline level of CPU performance with the ability to burst above the baseline.”
I wanted to see just how much more powerful the T2 instances were, compared to the previous generation of m1.Smalls. To test this, I am going to compare three instance types: the t2.micro, t2.small, and m1.small.
For each test, the instances were provisioned in the Western US Oregon Region with a 5GB Snapshot capacity. Instances are selected from the list of Engine Yard instance types, and run Engine Yard’s V4 stack and Gentoo 12.11. The tests were done with UnixBench 5.1.3 against a single application instance running a static PHP 5.4 web application.
Testing the Boot Times
Let’s start by looking at the boot up time on Engine Yard’s platform. This is the time taken to create the environment from scratch, attach an IP address, and configure it as an app instance.
Here’s a look at the final results:
Instance size | Boot Time |
t2.Small | 8 minutes 34 seconds |
t2.Micro | 9 minutes 42 seconds |
m1.Small | 20 minutes 41 seconds |
As you can see, the T2 instance types are significantly faster. This is likely due in part to the additional burst CPU available to the instance during configuration.
The improved boot times of the T2 instances means shorter deployment times and quick additions to app clusters when scaling up or out.
Download and Install UnixBench
To test with UnixBench, we have to download the software and install it on our instances. Let’s step through that process now.
Download the latest release:
wget https://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz
Copy it to your instance:
scp UnixBench5.1.3.tgz [email protected]:/home/deploy
You can get the hostname of your instance from your Engine Yard dashboard. And be sure to set up your SSH keys before beginning.
Log in to your instance:
Change into the deploy directory:
cd /home/deploy
Unpack the tarball:
tar -xvzf UnixBench5.1.3.tgz
Change into the Unix Bench directory:
cd UnixBench
Finally, run Unix Bench:
./Run
If the instance has multiple CPU cores, pass through -c and the number of cores. UnixBench will then test multiple cores, giving you a more precise benchmark test.
The test should take 30 to 40 minutes. Grab a Capri Sun, put on some Parks and Recreation and wait for the test results.
Be sure to repeat this process for every instance you are testing.
Looking at the Results
The bench scores for the instances were as follows:
Instance size | Result | Score (higher is better) |
t2.micro | Console log | 1756.5 |
t2.small | Console log | 1658.5 |
m1.small | Console log | 168.9 |
Be sure to check the attached console logs for the full output.
Unix Bench scores are mainly indicative of CPU and I/O performance and have little to do with RAM. The project homepage has more information about the way that tests work.
In this test environment, both of the T2 instances outperformed the m1.small. The test scores for the T2 instances are so similar because while each instance has 1 vCPU (virtual CPU) the t2.small has 2GB of RAM whereas the t2.micro has only 1GB. For that reason, the t2.small should be selected for RAM intensive applications
If you, like me, were astonished by quite how much higher the T2 scores were, it’s important to note that CPU and I/O performance has greatly increased with the new generation of instances.
Conclusion
These tests are not necessarily indicative of how your application will run, but they do give an indication as to the performance improvements available with the new Amazon T2 instance types. These improvements also mean that you are getting more performance for your money.
Using the Engine Yard price estimator, we can see how that breaks down:
Instance size | vCPU | Memory (GiB) | Cost per month |
t2.micro | 1 | 1 | $36 |
t2.small | 1 | 2 | $43 |
m1.small | 1 | 1.7 | $74 |
We’ve created some handy documentation that will help you migrate to these new instance types.
One last note to keep in mind. If you are a current customer you must have an account in a VPC enabled region in order to use the new T2 instance type. If for some reason you cannot access the T2 instance types, please file a ticket with our support team.
P.S. Have you tried the T2 instances? What did you think? Got questions about the performance or cost of these instance types? Throw us a comment below.
Share your thoughts with @engineyard on Twitter
OR
Talk about it on reddit