<?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/"
		>
<channel>
	<title>Comments on: Identifying bottlenecks with New Relic&#8217;s Java profiling tool</title>
	<atom:link href="http://blog.browsermob.com/2010/04/identifying-bottlenecks-with-new-relics-java-profiling-tool/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.browsermob.com/2010/04/identifying-bottlenecks-with-new-relics-java-profiling-tool/</link>
	<description>All about browsers, performance testing, and load testing</description>
	<lastBuildDate>Tue, 07 Feb 2012 15:39:33 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<item>
		<title>By: William Louth</title>
		<link>http://blog.browsermob.com/2010/04/identifying-bottlenecks-with-new-relics-java-profiling-tool/comment-page-1/#comment-2016</link>
		<dc:creator>William Louth</dc:creator>
		<pubDate>Mon, 14 Jun 2010 02:52:59 +0000</pubDate>
		<guid isPermaLink="false">http://blog.browsermob.com/2010/04/identifying-bottlenecks-with-new-relics-java-profiling-tool/#comment-2016</guid>
		<description>Moving on from &quot;Who is the Biggest Schmuck Here&quot; competition I have posted recently some further information on the &quot;best practices&quot; used by vendor marketing departments in claiming &quot;low overhead&quot;.

http://williamlouth.wordpress.com/2010/05/25/the-java-application-performance-management-vendor-showdown/</description>
		<content:encoded><![CDATA[<p>Moving on from &#8220;Who is the Biggest Schmuck Here&#8221; competition I have posted recently some further information on the &#8220;best practices&#8221; used by vendor marketing departments in claiming &#8220;low overhead&#8221;.</p>
<p><a href="http://williamlouth.wordpress.com/2010/05/25/the-java-application-performance-management-vendor-showdown/" rel="nofollow">http://williamlouth.wordpress.com/2010/05/25/the-java-application-performance-management-vendor-showdown/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bob Newhart</title>
		<link>http://blog.browsermob.com/2010/04/identifying-bottlenecks-with-new-relics-java-profiling-tool/comment-page-1/#comment-2010</link>
		<dc:creator>Bob Newhart</dc:creator>
		<pubDate>Sun, 13 Jun 2010 09:46:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.browsermob.com/2010/04/identifying-bottlenecks-with-new-relics-java-profiling-tool/#comment-2010</guid>
		<description>I&#039;m just wondering if your name is actually William Loudmouth-- I&#039;m planning on launching a campaign to  smear your product on the simple grounds that you&#039;re a simple @#$hole with a constant axe to grind. You&#039;re such a schmuck that it doesn&#039;t even matter whether you&#039;re right or wrong, but the tone of your messages has convinced me to ignore your software and anything to do with you at all costs. Do all of us a favor and please have your PR division prevent you from any more postings.</description>
		<content:encoded><![CDATA[<p>I&#8217;m just wondering if your name is actually William Loudmouth&#8211; I&#8217;m planning on launching a campaign to  smear your product on the simple grounds that you&#8217;re a simple @#$hole with a constant axe to grind. You&#8217;re such a schmuck that it doesn&#8217;t even matter whether you&#8217;re right or wrong, but the tone of your messages has convinced me to ignore your software and anything to do with you at all costs. Do all of us a favor and please have your PR division prevent you from any more postings.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Louth</title>
		<link>http://blog.browsermob.com/2010/04/identifying-bottlenecks-with-new-relics-java-profiling-tool/comment-page-1/#comment-1773</link>
		<dc:creator>William Louth</dc:creator>
		<pubDate>Tue, 04 May 2010 06:31:37 +0000</pubDate>
		<guid isPermaLink="false">http://blog.browsermob.com/2010/04/identifying-bottlenecks-with-new-relics-java-profiling-tool/#comment-1773</guid>
		<description>What is it with you guys. I ask for real data you provide another meaningless chart. Did you actually read my comment above. It stated the cost factors (drivers) for call stack sampling overhead. You failed to even list one. You could not even manage to specify the cpu count on the machine.

As I stated before you cannot beat the figures I listed. These are the baseline figures for the Java runtime. Your collection and processing costs will go on top of these. The only way you can reduce the impact is to pick a IO/DB bound app (which you have), one with very short call stacks (which you have), one with very little concurrent thread processing (which you have), and you have increased the sampling interval close to a second or more (which I suspect).

Again if you dispute my findings (and I am THE expert in this field) you are more than welcome to use my test classes or benchmark against our technology. I know you unit costs are their horrendous so its no problem for me but for you well......</description>
		<content:encoded><![CDATA[<p>What is it with you guys. I ask for real data you provide another meaningless chart. Did you actually read my comment above. It stated the cost factors (drivers) for call stack sampling overhead. You failed to even list one. You could not even manage to specify the cpu count on the machine.</p>
<p>As I stated before you cannot beat the figures I listed. These are the baseline figures for the Java runtime. Your collection and processing costs will go on top of these. The only way you can reduce the impact is to pick a IO/DB bound app (which you have), one with very short call stacks (which you have), one with very little concurrent thread processing (which you have), and you have increased the sampling interval close to a second or more (which I suspect).</p>
<p>Again if you dispute my findings (and I am THE expert in this field) you are more than welcome to use my test classes or benchmark against our technology. I know you unit costs are their horrendous so its no problem for me but for you well&#8230;&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim Gochee</title>
		<link>http://blog.browsermob.com/2010/04/identifying-bottlenecks-with-new-relics-java-profiling-tool/comment-page-1/#comment-1772</link>
		<dc:creator>Jim Gochee</dc:creator>
		<pubDate>Tue, 04 May 2010 03:34:27 +0000</pubDate>
		<guid isPermaLink="false">http://blog.browsermob.com/2010/04/identifying-bottlenecks-with-new-relics-java-profiling-tool/#comment-1772</guid>
		<description>Hi William,
  I claimed that our overhead was less than 10% cpu burn when sampling threads, and the data for Patrick&#039;s app confirms this. Here&#039;s a graph of CPU burn on the java process:

http://skitch.com/jim-gochee/db36j/centcom-application-cpu-usage-broken-out-by-host-new-relic-rpm

  I&#039;ve put arrows at the start/end of the sampling session.

  I&#039;m not sure what ax you&#039;ve got to grind, but our product is free to download and run, so knock yourself dead comparing us to your solution.

Jim</description>
		<content:encoded><![CDATA[<p>Hi William,<br />
  I claimed that our overhead was less than 10% cpu burn when sampling threads, and the data for Patrick&#8217;s app confirms this. Here&#8217;s a graph of CPU burn on the java process:</p>
<p><a href="http://skitch.com/jim-gochee/db36j/centcom-application-cpu-usage-broken-out-by-host-new-relic-rpm" rel="nofollow">http://skitch.com/jim-gochee/db36j/centcom-application-cpu-usage-broken-out-by-host-new-relic-rpm</a></p>
<p>  I&#8217;ve put arrows at the start/end of the sampling session.</p>
<p>  I&#8217;m not sure what ax you&#8217;ve got to grind, but our product is free to download and run, so knock yourself dead comparing us to your solution.</p>
<p>Jim</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Louth</title>
		<link>http://blog.browsermob.com/2010/04/identifying-bottlenecks-with-new-relics-java-profiling-tool/comment-page-1/#comment-1763</link>
		<dc:creator>William Louth</dc:creator>
		<pubDate>Mon, 03 May 2010 07:25:20 +0000</pubDate>
		<guid isPermaLink="false">http://blog.browsermob.com/2010/04/identifying-bottlenecks-with-new-relics-java-profiling-tool/#comment-1763</guid>
		<description>Jim I have not figured out whether you are inexperienced enough to believe you what you and your company claims or experience enough to withhold enough information to prevent anyone showing how clearly wrong you are in your claims.

Our testing of the impact of call stack sampling is independent of any profiling processing. You cannot do any better than the numbers we shown as this is the baseline from which you add you own overhead.

So how can we both be right. Well there are a number of factors some of which reflect the type of web applications that your company generally monitors.

1. The web application is severely IO bound. Any overhead whether excessive compared to other solutions will pale in comparison to the amount of time spent executing database/file/messaging operations.

2. The degree of concurrency is relatively low compared to enterprise applications which can easily have more than 200 active threads at a time.

3. The maximum call stack depth is relatively low compared to enterprise enterprise applications (especially Spring based ones) which generally exceed 300 by the time they hit their exit point (messaging, database, rmi,...).

4. You have offloaded a large amount of (cpu) work onto other non-application specific threads assuming their is a lot of spare compute capacity. 

5. The sampling time interval is set extremely high compared to other typical profilers.

Now after reading my links I am surprised that you could not manage to provide any further information other than 10% which by the way I find pretty excessive and certainly not production ready but then again we operate at different ends of the spectrum in terms of performance whereas JXInsight Probes technology has a  cost in the low nanoseconds yours is in the double digit microseconds for your trace technology - 1000x slower. 

If you dispute any of the above then we again extend our offer (which was previously reused) to have an official performance shootout - ours probes technology against your legacy trace technology. Then we can finally bring truth to the claims of zero overhead on and off both in terms of runtime and analysis.

http://williamlouth.wordpress.com/2010/03/02/does-transaction-tracing-scale-analysis/

By the way Patrick we have also requested a similar shootout of dynaTrace (aka dynaCopy) on many occasions - each time they also refused.

Our technology is hundreds (if not thousands) of times more efficient than both solutions and yet we do not go around making the unqualified &quot;low overhead&quot; claims both these cowboys make.

William</description>
		<content:encoded><![CDATA[<p>Jim I have not figured out whether you are inexperienced enough to believe you what you and your company claims or experience enough to withhold enough information to prevent anyone showing how clearly wrong you are in your claims.</p>
<p>Our testing of the impact of call stack sampling is independent of any profiling processing. You cannot do any better than the numbers we shown as this is the baseline from which you add you own overhead.</p>
<p>So how can we both be right. Well there are a number of factors some of which reflect the type of web applications that your company generally monitors.</p>
<p>1. The web application is severely IO bound. Any overhead whether excessive compared to other solutions will pale in comparison to the amount of time spent executing database/file/messaging operations.</p>
<p>2. The degree of concurrency is relatively low compared to enterprise applications which can easily have more than 200 active threads at a time.</p>
<p>3. The maximum call stack depth is relatively low compared to enterprise enterprise applications (especially Spring based ones) which generally exceed 300 by the time they hit their exit point (messaging, database, rmi,&#8230;).</p>
<p>4. You have offloaded a large amount of (cpu) work onto other non-application specific threads assuming their is a lot of spare compute capacity. </p>
<p>5. The sampling time interval is set extremely high compared to other typical profilers.</p>
<p>Now after reading my links I am surprised that you could not manage to provide any further information other than 10% which by the way I find pretty excessive and certainly not production ready but then again we operate at different ends of the spectrum in terms of performance whereas JXInsight Probes technology has a  cost in the low nanoseconds yours is in the double digit microseconds for your trace technology &#8211; 1000x slower. </p>
<p>If you dispute any of the above then we again extend our offer (which was previously reused) to have an official performance shootout &#8211; ours probes technology against your legacy trace technology. Then we can finally bring truth to the claims of zero overhead on and off both in terms of runtime and analysis.</p>
<p><a href="http://williamlouth.wordpress.com/2010/03/02/does-transaction-tracing-scale-analysis/" rel="nofollow">http://williamlouth.wordpress.com/2010/03/02/does-transaction-tracing-scale-analysis/</a></p>
<p>By the way Patrick we have also requested a similar shootout of dynaTrace (aka dynaCopy) on many occasions &#8211; each time they also refused.</p>
<p>Our technology is hundreds (if not thousands) of times more efficient than both solutions and yet we do not go around making the unqualified &#8220;low overhead&#8221; claims both these cowboys make.</p>
<p>William</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim Gochee</title>
		<link>http://blog.browsermob.com/2010/04/identifying-bottlenecks-with-new-relics-java-profiling-tool/comment-page-1/#comment-1752</link>
		<dc:creator>Jim Gochee</dc:creator>
		<pubDate>Fri, 30 Apr 2010 23:52:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.browsermob.com/2010/04/identifying-bottlenecks-with-new-relics-java-profiling-tool/#comment-1752</guid>
		<description>Hi William,
  New Relic&#039;s sampling approach must be different from the one you benchmark in http://williamlouth.wordpress.com/2009/10/21/java-call-sampling-overhead-in-the-wild/. For our solution, overhead to the application is zero when you&#039;re not running a &quot;collection session&quot;. And when you are running a collection session, it&#039;s only on a single JVM in your cluster and the impact to that single JVM is around 10% cpu burn. For a tool that gives complete thread state visibility that amount of overhead seems very reasonable.

Jim</description>
		<content:encoded><![CDATA[<p>Hi William,<br />
  New Relic&#8217;s sampling approach must be different from the one you benchmark in <a href="http://williamlouth.wordpress.com/2009/10/21/java-call-sampling-overhead-in-the-wild/" rel="nofollow">http://williamlouth.wordpress.com/2009/10/21/java-call-sampling-overhead-in-the-wild/</a>. For our solution, overhead to the application is zero when you&#8217;re not running a &#8220;collection session&#8221;. And when you are running a collection session, it&#8217;s only on a single JVM in your cluster and the impact to that single JVM is around 10% cpu burn. For a tool that gives complete thread state visibility that amount of overhead seems very reasonable.</p>
<p>Jim</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Louth</title>
		<link>http://blog.browsermob.com/2010/04/identifying-bottlenecks-with-new-relics-java-profiling-tool/comment-page-1/#comment-1747</link>
		<dc:creator>William Louth</dc:creator>
		<pubDate>Fri, 30 Apr 2010 11:37:49 +0000</pubDate>
		<guid isPermaLink="false">http://blog.browsermob.com/2010/04/identifying-bottlenecks-with-new-relics-java-profiling-tool/#comment-1747</guid>
		<description>But thread call stack sampling does not scale (certainly not in production) unless the concurrent workload is relatively small and you have low hanging fruit that could in all likelihood be found with very simplistic mechanism such as a thread stack dump like above.

I wrote a number of articles on this. Sampling is cheap for the vendor development wise but its cost benefit analysis at runtime is very poor once you go beyond the obvious.

http://williamlouth.wordpress.com/2009/10/21/java-call-sampling-overhead-in-the-wild/

http://williamlouth.wordpress.com/2009/01/16/profiling-sampling-versus-execution-part-2/

http://williamlouth.wordpress.com/2009/01/07/profiling-sampling-versus-execution-part-1/

William</description>
		<content:encoded><![CDATA[<p>But thread call stack sampling does not scale (certainly not in production) unless the concurrent workload is relatively small and you have low hanging fruit that could in all likelihood be found with very simplistic mechanism such as a thread stack dump like above.</p>
<p>I wrote a number of articles on this. Sampling is cheap for the vendor development wise but its cost benefit analysis at runtime is very poor once you go beyond the obvious.</p>
<p><a href="http://williamlouth.wordpress.com/2009/10/21/java-call-sampling-overhead-in-the-wild/" rel="nofollow">http://williamlouth.wordpress.com/2009/10/21/java-call-sampling-overhead-in-the-wild/</a></p>
<p><a href="http://williamlouth.wordpress.com/2009/01/16/profiling-sampling-versus-execution-part-2/" rel="nofollow">http://williamlouth.wordpress.com/2009/01/16/profiling-sampling-versus-execution-part-2/</a></p>
<p><a href="http://williamlouth.wordpress.com/2009/01/07/profiling-sampling-versus-execution-part-1/" rel="nofollow">http://williamlouth.wordpress.com/2009/01/07/profiling-sampling-versus-execution-part-1/</a></p>
<p>William</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk (enhanced)

Served from: blog.browsermob.com @ 2012-02-08 08:36:27 -->
