<?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/"
	>

<channel>
	<title>Load Balancing Digest &#187; Performance</title>
	<atom:link href="http://lbdigest.com/category/performance/feed/" rel="self" type="application/rss+xml" />
	<link>http://lbdigest.com</link>
	<description>Server Load Balancing Articles and News</description>
	<lastBuildDate>Mon, 22 Aug 2011 12:16:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>One Arm, One Network, To Rule Them All</title>
		<link>http://lbdigest.com/2009/10/25/one-arm-one-network-to-rule-them-all/</link>
		<comments>http://lbdigest.com/2009/10/25/one-arm-one-network-to-rule-them-all/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 22:08:19 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=425</guid>
		<description><![CDATA[Ok, I&#8217;m not really a Tolkin fan (you dare speak such heresy! -ed), but I couldn&#8217;t resist the nerd reference.Â  Especially from a guy with a license plate that says...]]></description>
			<content:encoded><![CDATA[<p>Ok, I&#8217;m not really a Tolkin fan (<em>you dare speak such heresy! -ed</em>), but I couldn&#8217;t resist the nerd reference.Â  Especially from a guy with a license plate that says &#8220;NERD 1&#8243; (I&#8217;m not kidding).</p>
<p>This post covers network topology, which is how the load balancer fits into the network.Â  How a device fits into the network is usually a difficult concept to get, and often that&#8217;s simply because people make it tougher than it need be. Basically, for a load balancer to be put into a network effectively, two things need to happen.</p>
<ol>
<li>Traffic needs to flow through the load balancer on the way in</li>
</ol>
<ol>
<li>Traffic needs to flow through the load balancer on the way out</li>
</ol>
<p>The first part is easy, as there&#8217;s only one way.Â  We direct traffic to the virtual IP (VIP) and port sitting on the load balancer.Â  This is the IP and port that pretends to be the server.Â  Getting traffic through the load balancer on the way out is probably one of the toughest concepts to grasp when learning load balancers, as there are several ways to accomplish this.</p>
<p>There&#8217;s on method of getting traffic through the load balancer on the way out that&#8217;s a quick way to drop a load balancer into an existing infrastructure with minimal changes to the network topology.Â  This is called one-armed, route-path.</p>
<p>One-armed, route path is not as popular as some of the other methods, although it has the distinct benefit of being a good, quick &#8220;drop-in&#8221; deployment.Â  Here&#8217;s how it works.</p>
<p style="text-align: left;">Let&#8217;s say you&#8217;ve got a network with a couple of servers sitting behind a firewall.Â  This firewall does NAT from a public address space to private IPs. This is a pretty common scenario for a small to medium sized business.</p>
<p style="text-align: center;"><img class="size-medium wp-image-429 aligncenter" title="onearmedroutepathBEFORE" src="http://lbdigest.com/wp-content/uploads/2009/10/onearmedroutepathBEFORE-193x300.png" alt="onearmedroutepathBEFORE" width="193" height="300" /></p>
<p>In the example shown above, the default gateway for the servers is the firewall, at 192.168.1.1.Â  To network admins, The concept of a default gateway is second nature.Â  To server folks, keep this in mind:Â  If you want to send IP traffic to a system not on your local network, you need a router to handle delivery.Â  That is your default gateway.Â  Without a default gateway for your servers, you can&#8217;t communicate with the Internet.</p>
<p>So now lets say we want to drop a load balancer into the network.Â  There are several options, and for the most part the advantages of one over another are logistical, not performance related.Â  For example, to do two-armed, Layer 3 path (arguably the most common topology), you would need to put in a new IP network between the firewall and the servers, and one new Layer 2 network.Â  This would require re-addressing the IPs on all the servers.</p>
<p>And while adding a new Layer 2 and Layer 3 network would certainly work, we can use one-armed, Layer 3 path without the need to re-IP all the servers or adding new networks.</p>
<p style="text-align: center;"><img class="size-medium wp-image-430  aligncenter" title="onearmedroutepathAFTER" src="http://lbdigest.com/wp-content/uploads/2009/10/onearmedroutepathAFTER-195x300.png" alt="onearmedroutepathAFTER" width="195" height="300" /></p>
<p>In the figure above, you see that we&#8217;ve changed the default gateway on the servers to that of the administrative IP of the load balancer (if there were two load balancers, they would have a floating administrative IP which you would use as the default gateway).Â Â  The default gateway of the load balancer is that of the firewall.</p>
<p>This seems a little odd, as we&#8217;ve got two default gateways on the same IP network.Â  While unusual, it works, and it&#8217;s a handy way to drop a load balancer into a network with minimal changes.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2009/10/25/one-arm-one-network-to-rule-them-all/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Your Epic Fail:  Fast or Slow?</title>
		<link>http://lbdigest.com/2009/10/11/your-epic-fail-fast-or-slow/</link>
		<comments>http://lbdigest.com/2009/10/11/your-epic-fail-fast-or-slow/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 00:10:11 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Pontification]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=412</guid>
		<description><![CDATA[In the load balancing world, many vendors have the concept of &#8220;sorry servers&#8221;, or &#8220;backup server farms/pools&#8221;.Â  Essentially, if most or all of your primary servers are down, traffic is...]]></description>
			<content:encoded><![CDATA[<p>In the load balancing world, many vendors have the concept of &#8220;sorry servers&#8221;, or &#8220;backup server farms/pools&#8221;.Â  Essentially, if most or all of your primary servers are down, traffic is redirected to a backup server(s) containing either reinforcements of the same web application, or a &#8220;sorry&#8221; page.</p>
<p>The idea is that if everything goes terribly wrong, at least your visitors will see something, instead of nothing.</p>
<p>Which begs the question: How do you like to fail?Â  Fail fast or fail slow? Would it be better to fail slow, where your site becomes slower and slower, or possibly just unresponsive, or would it be better to put up a quick-serving sorry page if the infrastructure melts?<img class="size-medium wp-image-414 alignright" style="margin: 4px;" title="technical_difficulties" src="http://lbdigest.com/wp-content/uploads/2009/10/technical_difficulties-300x216.jpg" alt="technical_difficulties" width="300" height="216" /></p>
<p>A wildly successful website can easily become a victim of its own success.Â  Take the case of two sites that experienced exponential growth in a relatively short period of time:Â  Twitter.com and Myspace.com.</p>
<p>They took two different paths in the realm of failure.Â  One failed fast, and one failed slow.</p>
<p>Although Myspace has lost most of its lead to Facebook, it&#8217;s still a wildly popular social media site.Â  They had exponential growth from their start in 2003, and there were many periods of time when Myspace.com was just&#8230; slow.Â  Really really slow. You can&#8217;t really blame them.Â  It&#8217;s tough when users come faster than you can install servers and provision bandwidth.Â  It&#8217;s a happy problem to have usually, but it&#8217;s still a logistical challenge.</p>
<p><img class="size-medium wp-image-413 alignleft" style="margin: 5px;" title="Fail Whale" src="http://lbdigest.com/wp-content/uploads/2009/10/fail_whale-300x225.jpg" alt="Fail Whale" width="300" height="225" /></p>
<p>Twitter.com came around a bit later, but it also had exponential growth and problems coping.Â  But for the most part, they failed in a different way:Â  Fail Whale. When something went terribly awry, instead of a slow site, you&#8217;d get a very quick fail whale image.</p>
<p>Perhaps this is a matter of personal opinion, but I think if you&#8217;re going to fail, it&#8217;s better to fail quick than fail slow.Â  That is, have a sorry page or sorry site that comes up quick, rather than a site that is too slow for anyone to use.</p>
<p>The quick sorry page can be done with many of the load balancing/ADC vendors by using the backup/sorry serverfarm feature.Â  Keeping a group of reserve servers, serving up only a &#8220;oops, sorry about that&#8221; type of page, your own fail whale, can be better than having a really slow or unresponsive web site.</p>
<p>Of course, you won&#8217;t always be able to choose the method of your failure.Â  If your upstream ISP goes dark, there&#8217;s not much you can do (unless you have an offsite fail site).Â  But I personally think having a fail site is a more &#8220;professional&#8221; way to fail than having a slow or unresponsive site when things go belly up (and we all know they will).</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2009/10/11/your-epic-fail-fast-or-slow/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quick and Dirty Performance Testing With Apache Bench</title>
		<link>http://lbdigest.com/2009/02/05/quick-and-dirty-performance-testing-with-apache-bench/</link>
		<comments>http://lbdigest.com/2009/02/05/quick-and-dirty-performance-testing-with-apache-bench/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 10:40:43 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[From The Mailing list]]></category>
		<category><![CDATA[In the Wild]]></category>
		<category><![CDATA[Load Balancing 101]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Quick Guide]]></category>
		<category><![CDATA[Tech Notes]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=249</guid>
		<description><![CDATA[If you need a quick and dirty way to throw some load onto a load balancer/ADC or web server, Apache comes with a great tool called Apache Bench.Â  Since it&#8217;s...]]></description>
			<content:encoded><![CDATA[<p>If you need a quick and dirty way to throw some load onto a load balancer/ADC or web server, Apache comes with a great tool called <a href="http://httpd.apache.org/docs/2.2/programs/ab.html">Apache Bench</a>.Â  Since it&#8217;s an HTTP client, it will of course work with any server, not just Apache-based servers.</p>
<p>Typically, Apache Bench (ab) is installed with the base Apache install, from at least Apache 1.3 on.Â  This includes when Apache is <a href="http://httpd.apache.org/download.cgi">installed on Windows</a>.</p>
<p>You can check all of the available options on the ab <a href="http://httpd.apache.org/docs/2.2/programs/ab.html">documentation page</a>, but here&#8217;s a (very) quick reference to using it.</p>
<p>Two of the most important options are &#8220;-n&#8221; for the number of total connections, and &#8220;-c&#8221; for how many concurrent connections are done at the same time.</p>
<p>For instance, using the option &#8220;-n 1000&#8243; will do 1,000 requests, one at a time, to a target URL.</p>
<pre>ab -n 1000 http://website.com/</pre>
<p>One at a time is rarely an effective test, so it&#8217;s best to use the &#8220;-c&#8221; option to specify a high number of concurrent connections, such as 100.</p>
<pre>ab -n 1000 -c 100 http://website.com/</pre>
<p>If you use concurrency, ab will split the total number of requests up amongst the concurrent settings.Â  For instance, using the option &#8220;-n 1000&#8243; will do 1,000 connections, but &#8220;-n 2000 -c 100&#8243; will only do 20 requests from 100 different connections (2,000 / 100 = 20).Â  So it&#8217;s best to use a much larger number of total connections if you&#8217;re doing concurrency.</p>
<pre>ab -n 100000 -c 100 http://website.com/</pre>
<p>When ab is finished running, it will spit out a performance report, including such info as the time taken for tests, requests per second, wait time, etc.</p>
<pre>Finished 1000 requests

Server Software:        Apache/2.2.9
Server Hostname:        localhost
Server Port:            80

Document Path:          /
Document Length:        45 bytes

Concurrency Level:      10
Time taken for tests:   0.427 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      320640 bytes
HTML transferred:       45090 bytes
Requests per second:    2341.45 [#/sec] (mean)
Time per request:       4.271 [ms] (mean)
Time per request:       0.427 [ms] (mean, across all concurrent requests)
Transfer rate:          733.17 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    2   0.4      2       3
Processing:     0    2   0.5      2       7
Waiting:        0    2   0.5      2       6
Total:          0    4   0.7      4       8

Percentage of the requests served within a certain time (ms)
  50%      4
  66%      4
  75%      5
  80%      5
  90%      5
  95%      5
  98%      5
  99%      5
 100%      8 (longest request)</pre>
<p>The ab utility defaults to one request per TCP connection (KeepAlive turned off).Â  If you want to use KeepAlive, where multiple requests are made through a TCP connection, use the &#8220;-K&#8221; option, open up as many TCP connections as you specify in concurrency (&#8220;-c&#8221;) and make the total number of quests through those few open TCP connections.</p>
<p>The utility is a simple but power tool for testing load balancers and web servers.Â  It doesn&#8217;t tend to reflect real-world usage, but it can be useful for baseline testing and troubleshooting.Â  I&#8217;ve found it quite useful over the years.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2009/02/05/quick-and-dirty-performance-testing-with-apache-bench/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Postcards From The Application World</title>
		<link>http://lbdigest.com/2008/06/18/postcards-from-the-application-world/</link>
		<comments>http://lbdigest.com/2008/06/18/postcards-from-the-application-world/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 22:45:15 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Industry News]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=154</guid>
		<description><![CDATA[I came upon an interesting post by Leonard Lin, a developer and (according to Linked In) former Yahoo!-er.Â  It&#8217;s called Internet Asshattery, Armchair Scaling Experts Edition, and talks about issues...]]></description>
			<content:encoded><![CDATA[<p>I came upon an interesting post by Leonard Lin, a developer and (according to Linked In) former Yahoo!-er.Â  It&#8217;s called <a href="http://randomfoo.net/blog/id/4171">Internet Asshattery, Armchair Scaling Experts Edition</a>, and talks about issues with scaling a rapidly expanding application infrastructure.</p>
<p>Among the things I like about the article (including the word Asshattery, which is one of my favorite words, ever) is how he talks honestly and from experience the issues dealing with a rapidly growing site.Â  You&#8217;ve got all sorts of constraints in terms of application, database, network, CPU, disk I/O etc., and like a gangly teenager, you hit different growth limitations at different and unexpected times.</p>
<p>I&#8217;ve also faced the challenges he describes, although from a slightly difference perspective, and I know exactly what he&#8217;s talking about.Â  Things will come up that you can&#8217;t plan for, and there will be issues that you can plan for, but choose not to because of resource and time constraints.</p>
<p>Sometimes you&#8217;ve got to say &#8220;Yeah, this will probably bite me in the ass later, but what&#8217;s more important are the four things that are biting my ass <em>right now</em>.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2008/06/18/postcards-from-the-application-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSL Transactions Per Second: What do you need?</title>
		<link>http://lbdigest.com/2007/04/23/ssl-transactions-per-second-what-do-you-need/</link>
		<comments>http://lbdigest.com/2007/04/23/ssl-transactions-per-second-what-do-you-need/#comments</comments>
		<pubDate>Mon, 23 Apr 2007 15:17:27 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Buyer's Guide]]></category>
		<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Load Balancing 101]]></category>
		<category><![CDATA[Newcomer Series]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://lbdigest.com/2007/04/23/ssl-transactions-per-second-what-do-you-need/</guid>
		<description><![CDATA[When shopping for an SSL acceleration device, whether it&#8217;s integrated into a load balancer or a stand-alone device, I&#8217;ve noticed people tend to vastly overestimate their needs when it comes...]]></description>
			<content:encoded><![CDATA[<p>When shopping for an SSL acceleration device, whether it&#8217;s integrated into a load balancer or a stand-alone device, I&#8217;ve noticed people tend to vastly overestimate their needs when it comes to TPS (Transactions per Second).</p>
<p>Users might balk at 1,000 TPS.  After all, 1,000 SSL TPS just doesn&#8217;t sound like a lot.  So how much is it, really?</p>
<p>To answer this, just do a simple calculation: Take the average page size and calculate the maximum number of TPS possible through a given connection (T1, 10 Meg line, DS3).  I think you&#8217;ll find that the numbers are a bit surprising.</p>
<p>Let&#8217;s take a page size of 20K.  That&#8217;s 20,000 Bytes, or  160,000 bits.  Add about 10% for SSL overhead, and that gets you 176,000 bits.   Take the example of a T1 line, at 1.5 Megabits per second.  Divide 1,500,000 bits by 176,000 bits, and you get about 8.5.  So in a T1 line, the maximum number of 8.5 TPS in a T1 line without over-subscribing the line.</p>
<ul>
<li>T1: 8.5 TPS</li>
<li>10 Mbps: 56.8 TPS</li>
<li>DS3 (45 Mbps): 255.7</li>
<li>100 Mbps/Fast Ethernet: 568.1</li>
<li>OC3 (155 Mbps): 880.7</li>
<li>Gigabit Ethernet (1,00Mbps): 5681.8</li>
</ul>
<p>So, as you can see, to get to really insane levels of TPS you either have to have a huge pipe, or you have to have insanely small pages.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2007/04/23/ssl-transactions-per-second-what-do-you-need/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Powerpoint on Database Load Balancing for Flickr</title>
		<link>http://lbdigest.com/2007/03/28/powerpoint-on-database-load-balancing-for-flickr/</link>
		<comments>http://lbdigest.com/2007/03/28/powerpoint-on-database-load-balancing-for-flickr/#comments</comments>
		<pubDate>Wed, 28 Mar 2007 18:33:04 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[From The Mailing list]]></category>
		<category><![CDATA[Industry News]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://lbdigest.com/2007/03/28/powerpoint-on-database-load-balancing-for-flickr/</guid>
		<description><![CDATA[I posted this in reference to a question about load balancing database servers. It&#8217;s a PowerPoint given at a PHP conference in &#8217;05 given by John Allspaw of Flickr. It&#8217;s...]]></description>
			<content:encoded><![CDATA[<p>I posted <a href="http://www.ludicorp.com/flickr/zend-talk.ppt">this</a> in reference to a <a href="http://vegan.net/lb/archive/03-2007/0034.html">question about load balancing database servers</a>.  It&#8217;s a <a href="http://www.ludicorp.com/flickr/zend-talk.ppt">PowerPoint given at a PHP conference</a> in &#8217;05 given by John Allspaw of <a href="http://flickr.com">Flickr</a>.  It&#8217;s quite a good read, and talks about challenges that they faced when massively scaling an appliance load balancing solution for MySQL.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2007/03/28/powerpoint-on-database-load-balancing-for-flickr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

