<?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>RightScale Blog &#187; Benchmark</title>
	<atom:link href="http://blog.rightscale.com/tag/benchmark/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rightscale.com</link>
	<description>Cloud Management News &#38; Conversations</description>
	<lastBuildDate>Fri, 03 Feb 2012 19:06:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.rightscale.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>RightScale Blog &#187; Benchmark</title>
		<link>http://blog.rightscale.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.rightscale.com/osd.xml" title="RightScale Blog" />
	<atom:link rel='hub' href='http://blog.rightscale.com/?pushpress=hub'/>
		<item>
		<title>Benchmarking Load Balancers in the Cloud</title>
		<link>http://blog.rightscale.com/2010/04/01/benchmarking-load-balancers-in-the-cloud/</link>
		<comments>http://blog.rightscale.com/2010/04/01/benchmarking-load-balancers-in-the-cloud/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 22:48:12 +0000</pubDate>
		<dc:creator>Thorsten</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[Benchmark]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Load Balancer]]></category>

		<guid isPermaLink="false">http://blog.rightscale.com/?p=513</guid>
		<description><![CDATA[Load balancing is one of the technologies that virtually all our customers are using within EC2, and there is an increasing set of options available for doing it. We&#8217;ve been giving advice to our customers for years on what we&#8217;ve &#8230; <a href="http://blog.rightscale.com/2010/04/01/benchmarking-load-balancers-in-the-cloud/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.rightscale.com&amp;blog=2909729&amp;post=513&amp;subd=rightscale&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Load balancing is one of the technologies that virtually all our customers are using within EC2, and there is an increasing set of options available for doing it. We&#8217;ve been giving advice to our customers for years on what we&#8217;ve seen work but we finally decided to spend some time and do a real A-B benchmark comparison of a number of solutions. The result is a white paper <a href="http://www.rightscale.com/lp/load-balancing-in-the-cloud-whitepaper.php">Load Balancing in the Cloud: Tools, Tips, and Techniques</a> we just published.</p>
<p>The test we ran compared the following solutions:</p>
<ul>
<li><a href="http://haproxy.1wt.eu/">HAproxy</a> on an EC2 instance</li>
<li><a href="http://www.zeus.com/">Zeus</a> on an EC2 instances</li>
<li><a href="http://aicache.com/">aiCache </a>on an EC2 instance</li>
<li>Amazon&#8217;s <a href="http://aws.amazon.com/elasticloadbalancing/">Elastic Load Balancing</a> service</li>
</ul>
<p>We focused purely on request rate scalability, i.e., how many requests per second the load balancer can sustain. We didn&#8217;t focus on feature set, bandwidth, or other metrics. So we ended up requesting a tiny web page over and over as fast as the system under test would serve up and we measure requests/second, or rather, responses/second. We also didn&#8217;t take advantage of more advanced features, such as caching in the load balancers, so we ran aiCache in a pure LB mode, for example.</p>
<p>Cutting to the chase, we ran the HAproxy, Zeus, and aiCache tests on an m1.large EC2 instance. After chasing down all kinds of options, trying to tune the kernel, trying other instance types, and finally conferring with AWS&#8211; the result is 100,000 packets per second in+out! I know, that&#8217;s not requests/sec or responses/sec so let me explain. Basically, with the current virtualization technology implemented in EC2 the network speed of light on an instance is getting about 100,000 packets per second through the two networking stacks of the host OS and the guest OS. Your load balancing solution and the tests you run may use these 100K pps to requests and responses in various ways which give you slightly different performance as measured in resp/sec. On average you can get about 5000 requests/sec through a load balancer. If you use HTTP1.1 persistent connections you get a few more resp/sec because there are a couple fewer packets per request, but the difference is not all that dramatic. If you turn some form of caching on you can roughly double the resp/sec because you&#8217;re eliminating the packets to the back-end servers. Tuning kernel params has very little effect, but pinning the load balancer process to a specific core does help quite a bit and makes the performance a lot more even. But in the end it&#8217;s all about pps (packets per second).</p>
<p>We then turned to ELB, the Amazon Load Balancing service. It operates differently from the other solutions in that it is a scalable service provided by Amazon. Everything ELB does for you can be replicated using the above solutions running on EC2 instances, but of course that requires extra work. Unfortunately benchmarking ELB is really tricky. One has to use many clients applying load, ensure that they requery DNS frequently, and run tests for a long time so ELB scales up. In the end we produced some pretty graphs like this, showing the requests/sec handled over time:</p>
<p><a href="http://rightscale.files.wordpress.com/2010/04/elb_trace.jpg"><img class="alignnone size-full wp-image-519" title="ELB trace" src="http://rightscale.files.wordpress.com/2010/04/elb_trace.jpg?w=600&#038;h=250" alt="" width="600" height="250" /></a></p>
<p>This shows how our tests ramped up to around 20K requests/sec over the course of about three hours (note that we ramped up the load slowly to see the progress, so this is not all time taken by ELB to ramp up). We could have continued higher but lost interest <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . I would prefer it if ELB were more transparent and easier to test, but it certainly delivers real world performance!</p>
<p>The whole benchmarking project was interesting in that it once again showed that until you really understand what is going on your benchmark is not done. We chased down more supposed performance bottlenecks than we care to remember and we drove the helpful folks at aiCache batty because they expected to see better performance given their results on non-virtualized machines. But in the end the results make a lot of sense and 100K pps is easy to remember.</p>
<p>I hope all this has whetted your appetite for the full white paper <a href="http://www.rightscale.com/lp/load-balancing-in-the-cloud-whitepaper.php">Load  Balancing in the Cloud: Tools, Tips, and Techniques</a>.</p>
<p><img src="/DOCUME%7E1/tve/LOCALS%7E1/Temp/moz-screenshot.png" alt="" /></p>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;overflow:hidden;">
<h1>Load Balancing in the Cloud:<br />
Tools, Tips, and Techniques</h1>
</div>
<br />Filed under: <a href='http://blog.rightscale.com/category/cloud-computing/'>Cloud Computing</a>, <a href='http://blog.rightscale.com/category/ec2/'>EC2</a> Tagged: <a href='http://blog.rightscale.com/tag/benchmark/'>Benchmark</a>, <a href='http://blog.rightscale.com/tag/cloud/'>Cloud</a>, <a href='http://blog.rightscale.com/tag/cloud-computing/'>Cloud Computing</a>, <a href='http://blog.rightscale.com/tag/ec2/'>EC2</a>, <a href='http://blog.rightscale.com/tag/load-balancer/'>Load Balancer</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rightscale.wordpress.com/513/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rightscale.wordpress.com/513/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rightscale.wordpress.com/513/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rightscale.wordpress.com/513/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rightscale.wordpress.com/513/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rightscale.wordpress.com/513/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rightscale.wordpress.com/513/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rightscale.wordpress.com/513/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rightscale.wordpress.com/513/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rightscale.wordpress.com/513/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rightscale.wordpress.com/513/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rightscale.wordpress.com/513/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rightscale.wordpress.com/513/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rightscale.wordpress.com/513/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.rightscale.com&amp;blog=2909729&amp;post=513&amp;subd=rightscale&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.rightscale.com/2010/04/01/benchmarking-load-balancers-in-the-cloud/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0b359e9ce1a8fb5f3315fbec8beda697?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">TvE</media:title>
		</media:content>

		<media:content url="http://rightscale.files.wordpress.com/2010/04/elb_trace.jpg" medium="image">
			<media:title type="html">ELB trace</media:title>
		</media:content>
	</item>
		<item>
		<title>MySQL performance on Amazon EC2</title>
		<link>http://blog.rightscale.com/2007/11/13/mysql-performance-on-amazon-ec2/</link>
		<comments>http://blog.rightscale.com/2007/11/13/mysql-performance-on-amazon-ec2/#comments</comments>
		<pubDate>Tue, 13 Nov 2007 00:09:13 +0000</pubDate>
		<dc:creator>Thorsten</dc:creator>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[Benchmark]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://blog.rightscale.com/2007/10/13/mysql-performance-on-amazon-ec2/</guid>
		<description><![CDATA[Spurred by Morgan Tocker I ran some sysbench MySQL performance benchmarks on EC2 instances. This is just the first round, more to follow&#8230; The set-up On a small instance, I reformatted /mnt with LVM2 and creates a 140GB xfs filesystem. &#8230; <a href="http://blog.rightscale.com/2007/11/13/mysql-performance-on-amazon-ec2/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.rightscale.com&amp;blog=2909729&amp;post=14&amp;subd=rightscale&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Spurred by <a href="http://mtocker.livejournal.com/33281.html" target="_blank">Morgan Tocker</a> I ran some sysbench MySQL performance benchmarks on EC2 instances. This is just the first round, more to follow&#8230;</p>
<h3>The set-up</h3>
<p>On a small instance, I reformatted /mnt with LVM2 and creates a 140GB xfs filesystem. In the my.cnf the important InnoDB settings I chose are:<br />
<pre class="brush: ruby;">
innodb_buffer_pool_size = 1G
innodb_additional_mem_pool_size = 24M
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2 # Write to log but don't flush on commit (it will be flushed every &quot;second&quot;)</pre><br />
On a large instance, I created /mnt using LVM2 and striped across both drives to get a 200GB xfs filesystem. The my.cnf settings were:<br />
<pre class="brush: ruby;">
&lt;code&gt;innodb_buffer_pool_size = 4500M&lt;/code&gt;
&lt;code&gt;innodb_additional_mem_pool_size = 200M&lt;/code&gt;
&lt;code&gt;innodb_log_file_size = 64Minnodb_log_buffer_size = 8M&lt;/code&gt;
innodb_flush_log_at_trx_commit = 2 # Write to log but don't flush on commit (it will be flushed every &quot;second&quot;)</pre></p>
<h3>The benchmark</h3>
<p>I then ran the sysbench OLTP test as follows:</p>
<p><pre class="brush: ruby;">
mysqladmin -u root create sbtest
sysbench --test=oltp --oltp-table-size=1000000 --mysql-socket=/var/lib/mysql/mysql.sock --mysql-user=root prepare
sysbench --num-threads=16 --max-requests=100000 --test=oltp --oltp-table-size=1000000 \
   --mysql-socket=/var/lib/mysql/mysql.sock --mysql-user=root --oltp-read-only run
sysbench --num-threads=16 --max-requests=100000 --test=oltp --oltp-table-size=1000000 \
   --mysql-socket=/var/lib/mysql/mysql.sock --mysql-user=root run</pre></p>
<h3>The results</h3>
<p>Ok, now to the results, all numbers are transactions per second printed by sysbench.</p>
<p>_Update:_ Morgan asked about the MySQL version and I realized I was using stone-aged-5.0.22. So I re-ran with 5.0.44 from the CentOS5-Testing repository. I also ran the benchmarks on an xlarge instance, with /mnt striped across 4 drives, once with my.cnf unchanged from large instance (4.5GB buffer pool) and once with 12GB buffer pool.</p>
<table border="1" cellpadding="3" cellspacing="0" width="100%">
<tr>
<th>Machine</th>
<th>MySQL</th>
<th>read-only</th>
<th>read-write</th>
</tr>
<tr>
<td>EC2 small</td>
<td>5.0.22</td>
<td>227, 228, 230, 241</td>
<td>115, 116, 119</td>
</tr>
<tr>
<td>EC2 large</td>
<td>5.0.22</td>
<td>466</td>
<td>333</td>
</tr>
<tr>
<td>EC2 small</td>
<td>5.0.44</td>
<td>227, 229, 229</td>
<td>115, 115, 115</td>
</tr>
<tr>
<td>EC2 large</td>
<td>5.0.44</td>
<td>420, 428, 462</td>
<td>277, 310, 319</td>
</tr>
<tr>
<td>EC2 xlarge 4.5GB</td>
<td>5.0.44</td>
<td>620, 630, 637</td>
<td>463, 483, 495</td>
</tr>
<tr>
<td>EC2 xlarge 12GB</td>
<td>5.0.44</td>
<td>593, 598, 620</td>
<td>453, 481</td>
</tr>
<tr>
<td>AMD Sempron 64</td>
<td>5.0.22</td>
<td>383, 394</td>
<td>220, 225</td>
</tr>
<tr>
<td>iMac</td>
<td>5.0.??</td>
<td>253</td>
<td>144</td>
</tr>
<tr>
<td colspan="4">All numbers are transactions per second as printed by sysbench. A range or multiple values indicate values from multiple benchmark runs.</td>
</tr>
</table>
<p>The iMac is a dual-core, 2.16Ghz, 2GB box with MySQL installed somehow and the machine was not 100% idle. The Sempron 64 is single core, &#8220;3400+&#8221; (2Ghz), raid-1 7200rpm drives, 2GB ram, not 100% idle (I really have gotten spoiled by EC2 and the ability to launch instances at a whim!). These tests are just meant as a ball-park point of comparison.</p>
<p>The benchmarks certainly confirm that the write performance on the small instances is, shall we say, lacking&#8230; I had expected a bigger improvement overall for the large instances, I guess for the read-only benchmark we&#8217;re seeing 2 disks vs. 1 disk, and on the read-write side we&#8217;re seeing 2 disks vs. &#8220;a problem&#8221;. With a real application load the large instance will often show a greater improvement over the small instance than shown here because the buffer pool increase can really make a huge difference.</p>
<p>Time to grab an x-large instance and try that&#8230;</p>
<p>NB: Note that Morgan&#8217;s blog entry referenced at the top uses myisam tables while I used InnoDB tables.</p>
<hr />
<h3>Archived Comments</h3>
<p><a href="http://mtocker.livejournal.com/">Morgan Tocker</a><br />
InnoDB should scale better than MyISAM with more cores/cpus. Do you mind commenting on what version of MySQL you are using – is it 5.0.30+ ?</p>
<p><b>Thorsten</b><br />
crush… using 5.0.22 … rerunning using 5.0.44 … results soon</p>
<p><b>Thorsten</b><br />
Well, dunno whether 5.0.44 is slower than 5.0.22 or whether the CentOS5-Testing version is badly compiled, but the performance is no better.</p>
<p><a href="http://www.ianneubert.com/">Ian</a><br />
Any ideas why the xlarge instance is slower with a 12GB buffer than with 4.5GB?</p>
<p><b>Thorsten</b><br />
Dunno why the large buffer makes it slower. If that much cache is not actually productively used, there may be less locality resulting in poorer L1/L2 cache performance. But that’s just a general guess. Given that the performance is not really that different, I wouldn’t get hung up on it. If your queries can benefit from the larger buffer pool, then this will a much more significant improvement than any differences seen here.</p>
<p><a href="http://www.mixin.com/">Frédéric Sidler</a><br />
Do you really compare apples with apples with Morgan Tocker. Everything between the two posts is completely different (OS, version, memory, database engine). As everything is different, I’m asking if these results can be compared. The only thing that frightens me is that mysql should run on an extra-large instance (15 GB memory, 8 EC2, 4 virtual cores with 2 EC2 Compute Units each, 64-bit) to accomplish the same numbers Morgan Tocker is giving on his post with his single computer (AMD64 3000 (I think), Ubuntu 7.10, 7200RPM drive, 1G RAM)</p>
<p><b>Thorsten</b><br />
Frédéric, yes, i am comparing apples and oranges, but I’m not really comparing nor do I claim I’m comparing. His post got me interested in running some benchmarks on my own, and I selected the components that interest me, hence the differences, specially my use of InnoDB vs. his use of MyISAM. We only do InnoDB, so his numbers weren’t useful to me.</p>
<p>Incidentally, I need to rerun some of the benchmarks. It turns out a lot of what I ran is entirely cpu bound, which is interesting, but I also really would like to run stuff that is I/O bound.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rightscale.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rightscale.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rightscale.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rightscale.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rightscale.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rightscale.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rightscale.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rightscale.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rightscale.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rightscale.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rightscale.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rightscale.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rightscale.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rightscale.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rightscale.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rightscale.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.rightscale.com&amp;blog=2909729&amp;post=14&amp;subd=rightscale&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.rightscale.com/2007/11/13/mysql-performance-on-amazon-ec2/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0b359e9ce1a8fb5f3315fbec8beda697?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">TvE</media:title>
		</media:content>
	</item>
	</channel>
</rss>
