<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Ben J. Christensen &#187; Infrastructure</title>
	<atom:link href="http://benjchristensen.com/category/infrastructure/feed/" rel="self" type="application/rss+xml" />
	<link>http://benjchristensen.com</link>
	<description>Software Development and Other Random Stuff</description>
	<lastBuildDate>Tue, 17 Jan 2012 22:36:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='benjchristensen.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/a7bf6ab05bce6d423674b5a8bb676139?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Ben J. Christensen &#187; Infrastructure</title>
		<link>http://benjchristensen.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://benjchristensen.com/osd.xml" title="Ben J. Christensen" />
	<atom:link rel='hub' href='http://benjchristensen.com/?pushpress=hub'/>
		<item>
		<title>WebService Performance on EC2 Instances</title>
		<link>http://benjchristensen.com/2012/01/05/webservice-performance-on-ec2-instances/</link>
		<comments>http://benjchristensen.com/2012/01/05/webservice-performance-on-ec2-instances/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 03:24:50 +0000</pubDate>
		<dc:creator>Ben Christensen</dc:creator>
				<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[amazon ec2]]></category>
		<category><![CDATA[performance efficiency]]></category>

		<guid isPermaLink="false">http://benjchristensen.com/?p=443</guid>
		<description><![CDATA[As part of a cost/performance analysis of Amazon EC2 instances I wrote a very simple Java webapp to allow simple comparison benchmarking. The webapp runs in Tomcat and has a servlet which returns a JSON response after looping to generate the JSON to cause CPU computation time as if the service were doing real work. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=benjchristensen.com&amp;blog=859104&amp;post=443&amp;subd=benjchristensen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As part of a cost/performance analysis of <a href="http://aws.amazon.com/ec2/instance-types/">Amazon EC2 instances</a> I wrote a <a href="https://github.com/benjchristensen/WSPerformanceTest">very simple Java webapp</a> to allow simple comparison benchmarking.</p>
<p>The webapp runs in Tomcat and has a <a href="https://github.com/benjchristensen/WSPerformanceTest/blob/master/src/com/wsperformancetest/ComputationalSimulationService.java">servlet</a> which returns a JSON response after looping to generate the JSON to cause CPU computation time as if the service were doing real work. It results in a lot of iteration and string creation activity – things web services do a lot of.</p>
<p>ApacheBenchmark (ab) was used as the test client to simulate traffic and capture statistics.</p>
<p>The instance types tested were <a href="https://github.com/benjchristensen/WSPerformanceTest/blob/master/testResults/2012_January5_EC2_Testing/machine_information_ec2_m2.2xlarge.txt">m2.2xlarge</a>, <a href="https://github.com/benjchristensen/WSPerformanceTest/blob/master/testResults/2012_January5_EC2_Testing/machine_information_ec2_m2.4xlarge.txt">m2.4xlarge</a>, <a href="https://github.com/benjchristensen/WSPerformanceTest/blob/master/testResults/2012_January5_EC2_Testing/machine_information_ec2_cc1.4xlarge.txt">cc1.4xlarge</a>, and <a href="https://github.com/benjchristensen/WSPerformanceTest/blob/master/testResults/2012_January5_EC2_Testing/machine_information_ec2_cc2.8xlarge.txt">cc2.8xlarge</a>.</p>
<p>The tests determined that the cc2.8xlarge instance type – though the most expensive by unit – is potentially the most cost effective type to use when serving large volume traffic involving a cluster of servers.</p>
<p>The cost to serve 1000 requests/second at a response time of approximately 18ms for each instance type is:</p>
<ul>
<li>m2.2xlarge: $1.98</li>
<li>m2.4xlarge: $2.48</li>
<li>cc1.4xlarge: $1.36</li>
<li><strong>cc2.8xlarge: $1.19</strong></li>
</ul>
<p>Of course, this test is very simplistic and ignores a wide variety of variables, but it demonstrates that the cc1 and cc2 boxes are well worth the time to evaluate for production application usage for achieving cost/performance efficiency.</p>
<p>The following graphs show the test results that were used to calculate the above costs.</p>
<p><strong>Results per Second with Increasing Concurrency</strong></p>
<p>This demonstrates how the 32 CPU cores on the cc2.8xlarge enable significantly higher throughput.</p>
<p><img class="aligncenter size-full wp-image-446" title="requests_per_second_with_increasing_concurrency" src="http://benjchristensen.files.wordpress.com/2012/01/requests_per_second_with_increasing_concurrency.png?w=800&#038;h=386" alt="" width="800" height="386" /></p>
<p><strong>Time per Request (ms) with Increasing Concurrency</strong></p>
<p>This shows how the response time degrades with increasing thread counts and how the larger boxes (particularly the cc2) scale better.</p>
<p><img class="aligncenter size-full wp-image-447" title="time_per_request_with_increasing_concurrency" src="http://benjchristensen.files.wordpress.com/2012/01/time_per_request_with_increasing_concurrency.png?w=800&#038;h=372" alt="" width="800" height="372" /></p>
<p><strong>Spreadsheet</strong></p>
<p>This screenshot of the spreadsheet shows the cost calculations at each level of concurrency.</p>
<p>The hi-lighted green is considered the optimal &#8220;ceiling&#8221; beyond which performance degrades and throughput plateaus. This point is considered the high-water-mark that can be used to determine the number of machines in a cluster needed to serve a given amount of traffic and thus allow comparison of different machines.</p>
<p><img class="aligncenter size-full wp-image-444" title="ec2-performance-data" src="http://benjchristensen.files.wordpress.com/2012/01/ec2-performance-data.png?w=800&#038;h=607" alt="" width="800" height="607" /></p>
<p><strong>Price per 1000 Requests per Second with Increasing Concurrency</strong></p>
<p>This scatter chart shows the cost to serve 1000 requests per second at increasing levels of concurrency on each instance type.</p>
<p><img class="aligncenter size-full wp-image-445" title="price_with_increasing_concurrency" src="http://benjchristensen.files.wordpress.com/2012/01/price_with_increasing_concurrency.png?w=800" alt=""   /></p>
<p>Overall, the performance of the cc1 and cc2 boxes are impressive and their cost/performance appears to be far better than the m2 instances.</p>
<p>The raw results of the tests can be found on <a href="https://github.com/benjchristensen/WSPerformanceTest/tree/master/testResults/2012_January5_EC2_Testing">Github</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/benjchristensen.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/benjchristensen.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/benjchristensen.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/benjchristensen.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/benjchristensen.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/benjchristensen.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/benjchristensen.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/benjchristensen.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/benjchristensen.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/benjchristensen.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/benjchristensen.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/benjchristensen.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/benjchristensen.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/benjchristensen.wordpress.com/443/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=benjchristensen.com&amp;blog=859104&amp;post=443&amp;subd=benjchristensen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://benjchristensen.com/2012/01/05/webservice-performance-on-ec2-instances/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/25a69d1e333ff36b77cf01b84b764182?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">benjchristensen</media:title>
		</media:content>

		<media:content url="http://benjchristensen.files.wordpress.com/2012/01/requests_per_second_with_increasing_concurrency.png" medium="image">
			<media:title type="html">requests_per_second_with_increasing_concurrency</media:title>
		</media:content>

		<media:content url="http://benjchristensen.files.wordpress.com/2012/01/time_per_request_with_increasing_concurrency.png" medium="image">
			<media:title type="html">time_per_request_with_increasing_concurrency</media:title>
		</media:content>

		<media:content url="http://benjchristensen.files.wordpress.com/2012/01/ec2-performance-data.png" medium="image">
			<media:title type="html">ec2-performance-data</media:title>
		</media:content>

		<media:content url="http://benjchristensen.files.wordpress.com/2012/01/price_with_increasing_concurrency.png" medium="image">
			<media:title type="html">price_with_increasing_concurrency</media:title>
		</media:content>
	</item>
		<item>
		<title>Akamai Web Services Acceleration</title>
		<link>http://benjchristensen.com/2007/07/18/akamai-web-services-acceleration/</link>
		<comments>http://benjchristensen.com/2007/07/18/akamai-web-services-acceleration/#comments</comments>
		<pubDate>Wed, 18 Jul 2007 07:01:08 +0000</pubDate>
		<dc:creator>Ben Christensen</dc:creator>
				<category><![CDATA[Infrastructure]]></category>

		<guid isPermaLink="false">http://benjchristensen.wordpress.com/2007/07/18/akamai-web-services-acceleration/</guid>
		<description><![CDATA[Web Services served through Akamai&#8217;s acceleration take 61% of the time without acceleration. Time in image is in milliseconds.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=benjchristensen.com&amp;blog=859104&amp;post=48&amp;subd=benjchristensen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Web Services served through Akamai&#8217;s acceleration take 61% of the time without acceleration.</p>
<p>Time in image is in milliseconds.</p>
<p><a href="http://benjchristensen.files.wordpress.com/2007/07/spexlive-akamai-vs-direct.png" title="spexlive-akamai-vs-direct.png"><img src="http://benjchristensen.files.wordpress.com/2007/07/spexlive-akamai-vs-direct.png?w=800" alt="spexlive-akamai-vs-direct.png" /> </a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/benjchristensen.wordpress.com/48/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/benjchristensen.wordpress.com/48/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/benjchristensen.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/benjchristensen.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/benjchristensen.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/benjchristensen.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/benjchristensen.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/benjchristensen.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/benjchristensen.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/benjchristensen.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/benjchristensen.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/benjchristensen.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/benjchristensen.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/benjchristensen.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/benjchristensen.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/benjchristensen.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=benjchristensen.com&amp;blog=859104&amp;post=48&amp;subd=benjchristensen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://benjchristensen.com/2007/07/18/akamai-web-services-acceleration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/25a69d1e333ff36b77cf01b84b764182?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">benjchristensen</media:title>
		</media:content>

		<media:content url="http://benjchristensen.files.wordpress.com/2007/07/spexlive-akamai-vs-direct.png" medium="image">
			<media:title type="html">spexlive-akamai-vs-direct.png</media:title>
		</media:content>
	</item>
	</channel>
</rss>
