Testing Cloud Computing Performance with PRTG: Performance Comparison of Amazon EC2 Instance Types

 Originally published on April 02, 2009 by Dirk Paessler
Last updated on March 03, 2022 • 6 minute read

In version 7.1 of PRTG Network Monitor we have added a set of custom sensors which can be used to test the available CPU, disk and memory resources by running short load tests. We have used these load tests to measure the performance differences between instance types of Amazon Elastic Compute Cloud (EC2).

Introducing PRTG Load Test Sensors

The available tests are:
 
Custom Sensor Description
Load_Test_Disk_Write_Read_1000_files.exe Creates 1.000 files, writes 1.000 lines of data into each file, reopens the files, re-reads all the data and deletes the file
Load_Test_CPU_1_Mio_Primes.exe Computes all primes up to 1 million
Load_Test_Memory_Allocate_And_Free_400MB.exe Allocates 100.000 memory blocks, extends each block to 1 kb in 10 byte chunks, copies two of these blocks into a second set of 100.000 memory blocks, and releases all the memory (including memory management this peaks at about 400 MB of RAM)
 
By the way: the source code of these tests is available in the PRTG Addons repository on Google Code.

Amazon EC2 Instance Types: Performance vs. Price

Our first tests compare the performance of the five instance types available on Amazon EC2. The following graph shows the performance of the default "m1-small" instance with the 4 other options together with the price difference (purple bar):
 
 
First you think: Well, the xlarge instances are way too expensive. But please keep in mind that our graphs do not show all parameters that affect Amazon's pricing, e.g. available memory and number of cores are not included. E.g. the xlarge instances have a lot more memory and CPU cores, but these do not affect the results of our load tests. A few interesting facts:
  • CPU performance of c1.medium and c1.xlarge is equal and about 4 times faster than m1.small (for single threaded tasks)
  • CPU performance of m1.large and m1.medium is about twice the performance of m1.small
  • Memory speed of all other instance types is about 200%-300% faster than m1.small
  • Disk speed fluctuates the most between instance types. For applications that rely heavily on disk access consider c1.xlarge

Our Conclusion

Our conclusion of these tests is that we will mostly use the "c1.medium" instances ("High CPU Medium Instance") for webhosting and other performance-relevant uses because it offers 150-300% more performance (for CPU, disk and memory) than "m1.small" instances while only costing 100% more.

Disclaimer

Of course our test programs are only very simple tests. They are no substitute for application-specific "real world" tests that you should run on the instance types if you consider moving applications onto EC2 or any other cloud hosting service. But even though they can not be used to exactly measure performance of a virtual machine or PC they still can give us a hint on the performance, especially the performance differences between "platforms".

Test Notes

All tests were run over several days on Windows based instances in the EC2 region "US East Coast" and availability zone "1c" during the last week. We also ran a few tests in other availability zones and in the European region, but they did not show significant performance differences to the results shown above. This table shows the average results for the PRTG load tests by instance type that we have measured: