<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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: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>Comments on: The most common flaw in software performance testing</title>
	<atom:link href="http://saasinterrupted.com/2009/12/16/the-most-common-flaw-in-software-performance-testing/feed/" rel="self" type="application/rss+xml" />
	<link>http://saasinterrupted.com/2009/12/16/the-most-common-flaw-in-software-performance-testing/</link>
	<description>-- A blog by Ashish Soni.</description>
	<lastBuildDate>Wed, 03 Nov 2010 23:57:46 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Dustin Headd</title>
		<link>http://saasinterrupted.com/2009/12/16/the-most-common-flaw-in-software-performance-testing/#comment-55</link>
		<dc:creator><![CDATA[Dustin Headd]]></dc:creator>
		<pubDate>Wed, 13 Jan 2010 05:50:00 +0000</pubDate>
		<guid isPermaLink="false">http://saasinterrupted.com/?p=33#comment-55</guid>
		<description><![CDATA[Thank you for the article. I enjoyed reading it. You have a very good site.]]></description>
		<content:encoded><![CDATA[<p>Thank you for the article. I enjoyed reading it. You have a very good site.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tal Broda</title>
		<link>http://saasinterrupted.com/2009/12/16/the-most-common-flaw-in-software-performance-testing/#comment-49</link>
		<dc:creator><![CDATA[Tal Broda]]></dc:creator>
		<pubDate>Wed, 30 Dec 2009 04:56:21 +0000</pubDate>
		<guid isPermaLink="false">http://saasinterrupted.com/?p=33#comment-49</guid>
		<description><![CDATA[Yes, testing with production-level dataset, on the real production hardware, and really across the internet is the only way to know that your site will hold when you need it to. This is what we do here at SOASTA: massive-scale load testing, from the cloud!]]></description>
		<content:encoded><![CDATA[<p>Yes, testing with production-level dataset, on the real production hardware, and really across the internet is the only way to know that your site will hold when you need it to. This is what we do here at SOASTA: massive-scale load testing, from the cloud!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Artur Ejsmont</title>
		<link>http://saasinterrupted.com/2009/12/16/the-most-common-flaw-in-software-performance-testing/#comment-48</link>
		<dc:creator><![CDATA[Artur Ejsmont]]></dc:creator>
		<pubDate>Tue, 29 Dec 2009 11:13:13 +0000</pubDate>
		<guid isPermaLink="false">http://saasinterrupted.com/?p=33#comment-48</guid>
		<description><![CDATA[Another problem is to reproduce real user activity. Hitting same pages over and over will acomplish nothing. Do it with or without sessions, going through geoip recognition or not, sending tracking cookies or not, being logged in or not, submitting error forms etc etc etc. 

Having production alike DB size is important but another important factor is to be able to reproduce real world activity.]]></description>
		<content:encoded><![CDATA[<p>Another problem is to reproduce real user activity. Hitting same pages over and over will acomplish nothing. Do it with or without sessions, going through geoip recognition or not, sending tracking cookies or not, being logged in or not, submitting error forms etc etc etc. </p>
<p>Having production alike DB size is important but another important factor is to be able to reproduce real world activity.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kalpesh Patel</title>
		<link>http://saasinterrupted.com/2009/12/16/the-most-common-flaw-in-software-performance-testing/#comment-25</link>
		<dc:creator><![CDATA[Kalpesh Patel]]></dc:creator>
		<pubDate>Sun, 20 Dec 2009 03:10:49 +0000</pubDate>
		<guid isPermaLink="false">http://saasinterrupted.com/?p=33#comment-25</guid>
		<description><![CDATA[In my previous company we used to run our performance test on production snapshot data but one problem I found with OLTP systems is that the data becomes obsolete soon. There were lots of screens that were showing yesteday to future data and being an OLTP system most of the data was in the current week only. After running the original tests if the offshore team comes with all the fixes, by the time the test were ran again the data was obsolete. The point I want to make is just even if you get productions snapshot you need to tweak it to simulate real live scenario.]]></description>
		<content:encoded><![CDATA[<p>In my previous company we used to run our performance test on production snapshot data but one problem I found with OLTP systems is that the data becomes obsolete soon. There were lots of screens that were showing yesteday to future data and being an OLTP system most of the data was in the current week only. After running the original tests if the offshore team comes with all the fixes, by the time the test were ran again the data was obsolete. The point I want to make is just even if you get productions snapshot you need to tweak it to simulate real live scenario.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ashish Soni</title>
		<link>http://saasinterrupted.com/2009/12/16/the-most-common-flaw-in-software-performance-testing/#comment-23</link>
		<dc:creator><![CDATA[Ashish Soni]]></dc:creator>
		<pubDate>Fri, 18 Dec 2009 16:20:11 +0000</pubDate>
		<guid isPermaLink="false">http://saasinterrupted.com/?p=33#comment-23</guid>
		<description><![CDATA[Hi Michal,
               What you say about Recording real production traffic and to replaying it on a test system is a great way to get as close to a production profile as possible.  In the past we were also thinking of strategies to record front end traffic and trying to replay the traffic at the front end layer of the test systems.  That theoretically should simulate exact production traffic and get many more layers than just the database involved.  We made some progress but not as much as I would have liked.]]></description>
		<content:encoded><![CDATA[<p>Hi Michal,<br />
               What you say about Recording real production traffic and to replaying it on a test system is a great way to get as close to a production profile as possible.  In the past we were also thinking of strategies to record front end traffic and trying to replay the traffic at the front end layer of the test systems.  That theoretically should simulate exact production traffic and get many more layers than just the database involved.  We made some progress but not as much as I would have liked.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ashish Soni</title>
		<link>http://saasinterrupted.com/2009/12/16/the-most-common-flaw-in-software-performance-testing/#comment-22</link>
		<dc:creator><![CDATA[Ashish Soni]]></dc:creator>
		<pubDate>Fri, 18 Dec 2009 16:07:51 +0000</pubDate>
		<guid isPermaLink="false">http://saasinterrupted.com/?p=33#comment-22</guid>
		<description><![CDATA[I wonder if you were able to do the same test on the old hardware.  That is, to retrieve random documents.  In your case you basically bypassed the cache layer.  Would have been interesting to see the result delta between old hardware and new hardware in this case.  Since it is indeed difficult to simulate traffic loads that exactly mimic production traffic the &#039;trend&#039; of the test results is sometimes useful.  For example in your test one could theoretically state that the &quot;The new hardware is X% faster/scalable than the old hardware when random id&#039;s are retrieved&quot;.  May not be exactly the production simulation but at least gives a relative benchmark.]]></description>
		<content:encoded><![CDATA[<p>I wonder if you were able to do the same test on the old hardware.  That is, to retrieve random documents.  In your case you basically bypassed the cache layer.  Would have been interesting to see the result delta between old hardware and new hardware in this case.  Since it is indeed difficult to simulate traffic loads that exactly mimic production traffic the &#8216;trend&#8217; of the test results is sometimes useful.  For example in your test one could theoretically state that the &#8220;The new hardware is X% faster/scalable than the old hardware when random id&#8217;s are retrieved&#8221;.  May not be exactly the production simulation but at least gives a relative benchmark.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bobby</title>
		<link>http://saasinterrupted.com/2009/12/16/the-most-common-flaw-in-software-performance-testing/#comment-21</link>
		<dc:creator><![CDATA[Bobby]]></dc:creator>
		<pubDate>Fri, 18 Dec 2009 15:07:17 +0000</pubDate>
		<guid isPermaLink="false">http://saasinterrupted.com/?p=33#comment-21</guid>
		<description><![CDATA[I was asked to do a benchmark of a document server (get document by ID, basically). I was told to pick random ids and just blast it.

I begged them not to have me do this. I told them this would prove absolutely nothing and would be worthless data and a waste of time. The top request rate I would get would be maybe 10% of what our barely loaded live servers got, and therefore incredibly obviously incorrect. The real live requests are very very cache-friendly.

They said &quot;Maybe. Do it anyway.&quot;.

My report ended up saying that the new hardware was benchmarked to top out at 10% of what the old hardware was doing already. We rightly ignored it and put it in production anyway. Worked like a charm, 5% load if that.

One of the reasons I quit working there.]]></description>
		<content:encoded><![CDATA[<p>I was asked to do a benchmark of a document server (get document by ID, basically). I was told to pick random ids and just blast it.</p>
<p>I begged them not to have me do this. I told them this would prove absolutely nothing and would be worthless data and a waste of time. The top request rate I would get would be maybe 10% of what our barely loaded live servers got, and therefore incredibly obviously incorrect. The real live requests are very very cache-friendly.</p>
<p>They said &#8220;Maybe. Do it anyway.&#8221;.</p>
<p>My report ended up saying that the new hardware was benchmarked to top out at 10% of what the old hardware was doing already. We rightly ignored it and put it in production anyway. Worked like a charm, 5% load if that.</p>
<p>One of the reasons I quit working there.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Owen Garrett</title>
		<link>http://saasinterrupted.com/2009/12/16/the-most-common-flaw-in-software-performance-testing/#comment-20</link>
		<dc:creator><![CDATA[Owen Garrett]]></dc:creator>
		<pubDate>Thu, 17 Dec 2009 11:16:03 +0000</pubDate>
		<guid isPermaLink="false">http://saasinterrupted.com/?p=33#comment-20</guid>
		<description><![CDATA[Another reason for the disconnect between in-the-lab stress tests and real-world deployments is the nature of the traffic that the front-end of your application has to manage.

In the lab, it&#039;s common to run tests over a fast, local network, often with heavy use of HTTP keepalives and simple client settings to help tune the application to get the best possible performance.  You might get 2,000 transactions-per-second, 100% CPU and be happy that you&#039;ve configured their app to the best of its capability.

You&#039;ll get a shock when you put the application live and the latency is terrible, TPS never exceeds 10% of what you got in the lab and the CPU never exceeds 20%.  What gives - why is the performance so poor?

On real-world networks, connections are slow, keepalives are held idle for many seconds and jitter and packet loss further increases the duration of each connection.  As connections take longer to complete, the number of concurrent connections grows, and with thread or processed based applications, concurrency is a real killer.

One solution is to deploy a front-end proxy to convert these many slow connections with inefficient use of keepalives and HTTP options into a small number of fast, local connections, putting your application back into the environment it works best.  That&#039;s one of the things that products called &#039;ADCs&#039; (&#039;Application Delivery Controllers&#039;) do.]]></description>
		<content:encoded><![CDATA[<p>Another reason for the disconnect between in-the-lab stress tests and real-world deployments is the nature of the traffic that the front-end of your application has to manage.</p>
<p>In the lab, it&#8217;s common to run tests over a fast, local network, often with heavy use of HTTP keepalives and simple client settings to help tune the application to get the best possible performance.  You might get 2,000 transactions-per-second, 100% CPU and be happy that you&#8217;ve configured their app to the best of its capability.</p>
<p>You&#8217;ll get a shock when you put the application live and the latency is terrible, TPS never exceeds 10% of what you got in the lab and the CPU never exceeds 20%.  What gives &#8211; why is the performance so poor?</p>
<p>On real-world networks, connections are slow, keepalives are held idle for many seconds and jitter and packet loss further increases the duration of each connection.  As connections take longer to complete, the number of concurrent connections grows, and with thread or processed based applications, concurrency is a real killer.</p>
<p>One solution is to deploy a front-end proxy to convert these many slow connections with inefficient use of keepalives and HTTP options into a small number of fast, local connections, putting your application back into the environment it works best.  That&#8217;s one of the things that products called &#8216;ADCs&#8217; (&#8216;Application Delivery Controllers&#8217;) do.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michal Kuratczyk</title>
		<link>http://saasinterrupted.com/2009/12/16/the-most-common-flaw-in-software-performance-testing/#comment-18</link>
		<dc:creator><![CDATA[Michal Kuratczyk]]></dc:creator>
		<pubDate>Thu, 17 Dec 2009 10:12:57 +0000</pubDate>
		<guid isPermaLink="false">http://saasinterrupted.com/?p=33#comment-18</guid>
		<description><![CDATA[&gt; Snapshots of production data can be forbidden for data protection reasons

If you&#039;re on Oracle DB, you can use Data Masking option for data protection. It takes the production data and scrambles so that they are still representative but not real anymore.

&gt; the main reason we see differences between performance metrics on real
&gt; production versus test runs is due to the difference in usage scenarios.

If you&#039;re on Oracle DB, that&#039;s what Real Application Testing does. You can record real database &quot;traffic&quot; on production and replay it on the test system. A great way to test whenever you change something (DB upgrade/patching, hardware replacement, schema change, etc).

Hope you will find that knowledge useful,

DISCLAIMER: yes, I work for Oracle]]></description>
		<content:encoded><![CDATA[<p>&gt; Snapshots of production data can be forbidden for data protection reasons</p>
<p>If you&#8217;re on Oracle DB, you can use Data Masking option for data protection. It takes the production data and scrambles so that they are still representative but not real anymore.</p>
<p>&gt; the main reason we see differences between performance metrics on real<br />
&gt; production versus test runs is due to the difference in usage scenarios.</p>
<p>If you&#8217;re on Oracle DB, that&#8217;s what Real Application Testing does. You can record real database &#8220;traffic&#8221; on production and replay it on the test system. A great way to test whenever you change something (DB upgrade/patching, hardware replacement, schema change, etc).</p>
<p>Hope you will find that knowledge useful,</p>
<p>DISCLAIMER: yes, I work for Oracle</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ashish Soni</title>
		<link>http://saasinterrupted.com/2009/12/16/the-most-common-flaw-in-software-performance-testing/#comment-17</link>
		<dc:creator><![CDATA[Ashish Soni]]></dc:creator>
		<pubDate>Thu, 17 Dec 2009 09:11:07 +0000</pubDate>
		<guid isPermaLink="false">http://saasinterrupted.com/?p=33#comment-17</guid>
		<description><![CDATA[Thanks for the comment Mark.  
I understand that sometimes it becomes impractical to copy complete production data sets to the test systems.  Its good to see that in your case that &#039;production-like&#039; data sets are generated.  This is certainly a reasonable next best approach if indeed due to internal policies and logistics the ability to get snapshots of production data is not present.]]></description>
		<content:encoded><![CDATA[<p>Thanks for the comment Mark.<br />
I understand that sometimes it becomes impractical to copy complete production data sets to the test systems.  Its good to see that in your case that &#8216;production-like&#8217; data sets are generated.  This is certainly a reasonable next best approach if indeed due to internal policies and logistics the ability to get snapshots of production data is not present.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

