<?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>LoadRunner TnT &#187; Analyze</title>
	<atom:link href="http://www.loadrunnertnt.com/tag/analyze/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.loadrunnertnt.com</link>
	<description>Performance Testing, LoadRunner Tips &#38; Tricks</description>
	<lastBuildDate>Mon, 08 Mar 2010 07:57:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Find Offending SQL Bottlenecks!</title>
		<link>http://www.loadrunnertnt.com/analyze/find-offending-sql-bottlenecks/</link>
		<comments>http://www.loadrunnertnt.com/analyze/find-offending-sql-bottlenecks/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 07:54:30 +0000</pubDate>
		<dc:creator>TnT Admin</dc:creator>
				<category><![CDATA[Analyze]]></category>
		<category><![CDATA[Bottleneck]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[MS SQL]]></category>
		<category><![CDATA[SQL Statements]]></category>
		<category><![CDATA[Stored Procedures]]></category>

		<guid isPermaLink="false">http://www.loadrunnertnt.com/?p=650</guid>
		<description><![CDATA[After the tune-able parameters are changed for optimal performance, your system still fails miserably with a poor response time.  The most likely step you should take is to do a deep diagnostics on the system.  Break the system up into different components such as application server where diagnostics using probes is required, database servers where [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.loadrunnertnt.com/wp-content/uploads/2010/01/ms_sql_logo1.gif"><img class="alignleft size-full wp-image-674" title="ms_sql_logo" src="http://www.loadrunnertnt.com/wp-content/uploads/2010/01/ms_sql_logo1.gif" alt="" width="178" height="87" /></a>After the tune-able parameters are changed for optimal performance, your system still fails miserably with a poor response time.  The most likely step you should take is to do a deep diagnostics on the system.  Break the system up into different components such as application server where diagnostics using probes is required, database servers where SQL statements and stored procedures become the next to be scrutinized, etc…<span id="more-650"></span></p>
<p>In this post, we will not be covering on the diagnostics of the application server, but we will cover the basic signs of database bottlenecks at the <strong>SQL statement</strong> level.  The 1<sup>st</sup> symptom is a collective symptom that the application server (and all other servers) with the exception of the database server in the architecture are performing reasonably well.  E.g. memory available is well maintained without any exception decrease of this value, the processor % time is always low for the servers.<br />
<!--adsensestart--><br />
The 2<sup>nd</sup> symptom is a constant high utilization of the processor % time and low memory usage (page faults, page reads and available memory) in the database server.  This provides a tell-tale sign that the database server is processing some instructions, likely to be SQL statement that is taking too long.  It would not be the database buffer or SQL buffer that utilizes the memory as the consumption is low meaning reuse of the buffer is high.</p>
<p>Now with these two symptoms, you are ready to go down deeper.  Access MS SQL and run the following query:</p>
<div class="codecolorer-container sql default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> scheduler_id<span style="color: #66cc66;">,</span> current_tasks_count<span style="color: #66cc66;">,</span> runnable_tasks_count<br />
<span style="color: #993333; font-weight: bold;">FROM</span> sys<span style="color: #66cc66;">.</span>dm_os_schedulers <span style="color: #993333; font-weight: bold;">WHERE</span> scheduler_id <span style="color: #66cc66;">&lt;</span> <span style="color: #cc66cc;">255</span></div></div>
<p>This query will <strong>sys.dm_os_schedulers</strong> will give you information of how many runnable tasks that exists.  Values other than zero indicate that tasks are waiting to run, and high values are an indication that the CPU is bottlenecking your performance.  Another query that directly targets at SQL statement is the following:</p>
<div class="codecolorer-container sql default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> TOP 50 SUM<span style="color: #66cc66;">&#40;</span>qs<span style="color: #66cc66;">.</span>total_worker_time<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> total_cpu_time<span style="color: #66cc66;">,</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">&#91;</span>TEXT<span style="color: #66cc66;">&#93;</span> <span style="color: #993333; font-weight: bold;">FROM</span> sys<span style="color: #66cc66;">.</span>dm_exec_sql_text<span style="color: #66cc66;">&#40;</span>plan_handle<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span><br />
SUM<span style="color: #66cc66;">&#40;</span>qs<span style="color: #66cc66;">.</span>execution_count<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> total_execution_count<span style="color: #66cc66;">,</span><br />
COUNT<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> number_of_statements<span style="color: #66cc66;">,</span> qs<span style="color: #66cc66;">.</span>plan_handle<br />
<span style="color: #993333; font-weight: bold;">FROM</span> sys<span style="color: #66cc66;">.</span>dm_exec_query_stats qs<br />
<span style="color: #993333; font-weight: bold;">GROUP</span> <span style="color: #993333; font-weight: bold;">BY</span> qs<span style="color: #66cc66;">.</span>plan_handle<br />
<span style="color: #993333; font-weight: bold;">ORDER</span> <span style="color: #993333; font-weight: bold;">BY</span> SUM<span style="color: #66cc66;">&#40;</span>qs<span style="color: #66cc66;">.</span>total_worker_time<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">DESC</span></div></div>
<p>This query shows which batches or procedures are consuming the most CPU and will also include the actual SQL statement. The query aggregates by a specific plan handle. If the plan handle contains more than one SQL statement you must drill into each statement to determine where the greatest CPU contribution comes from.</p>
<p>Codes illustrated in this post are taken from <a href="http://sql.dotnetbob.com/?p=96">DotNet Bob on SQL</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.loadrunnertnt.com/analyze/find-offending-sql-bottlenecks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Analyzing Client-side Performance Issue with YSlow</title>
		<link>http://www.loadrunnertnt.com/tools/analyzing-client-side-performance-issue-with-yslow/</link>
		<comments>http://www.loadrunnertnt.com/tools/analyzing-client-side-performance-issue-with-yslow/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 07:42:05 +0000</pubDate>
		<dc:creator>TnT Admin</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Add-Ons]]></category>
		<category><![CDATA[Analyze]]></category>
		<category><![CDATA[Bottleneck]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://www.loadrunnertnt.com/?p=607</guid>
		<description><![CDATA[YSlow, another popular client-side performance profiling tool for web applications, is an add-on for Firefox.  With YSlow, you will be able to determine how fast (or slow) your web page is loading, breaking down to the individual components on the web page.  One thing to note, YSlow requires another add-on, Firebug to be installed in [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://www.loadrunnertnt.com/wp-content/uploads/2009/12/1257808290.png"><img class="alignleft size-full wp-image-608" title="1257808290" src="http://www.loadrunnertnt.com/wp-content/uploads/2009/12/1257808290.png" alt="" width="32" height="32" /></a>YSlow</strong>, another popular client-side performance profiling tool for web applications, is an add-on for Firefox.  With YSlow, you will be able to determine how fast (or slow) your web page is loading, breaking down to the individual components on the web page.  One thing to note, YSlow requires another add-on, Firebug to be installed in Firefox before you can install it.  With YSlow you can use to determine the following <strong>website performance problems</strong>:<span id="more-607"></span></p>
<ul>
<li><strong>Download Component      Size</strong> &#8211; YSlow provides the size of the downloaded component and provides      suggestion in keeping the optimum amount of data size that the component      should be. This include images, Javascripts, CSS and cookie size are just      few of the examples.</li>
<li>
<div id="attachment_612" class="wp-caption alignright" style="width: 262px"><a href="http://www.loadrunnertnt.com/wp-content/uploads/2009/01/initial-yslow-stats.png"><img class="size-medium wp-image-612" title="initial-yslow-stats" src="http://www.loadrunnertnt.com/wp-content/uploads/2009/01/initial-yslow-stats-252x300.png" alt="" width="252" height="300" /></a><p class="wp-caption-text">YSlow Screenshot</p></div>
<p><strong>Bad Requests</strong> – It detects missing      components that churns 404 errors.  Addressing      404 errors can help improve performance at the client and server end by      removing requests made on missing objects as well as removing time needed      to handle this requests on missing objects on the server.</li>
<li><strong>Detect duplicate      requests/components</strong> – It detects duplicate HTTP requests made which degrades both the      client and the server performance.  It      also detects duplicate Javascripts which can result in duplicate request      to the server or further slowing down the client browser.</li>
<li><strong>Placement of files</strong> – Another good      feature made by YSlow is the detection of the placement of the Javascripts      and CSS files.  The placement of the      Javascripts and CSS files will help improve the performance at the client      side.</li>
<li><strong>Detect expiry of      components</strong> – YSlow can help determine if a component should be retrieved on      every web page loading.  If a      component such as an image (company banner) does not changed frequently,      it is suggested to it expire at a far later date.  Else, for every time the page loads, a      request will be made to the image.</li>
</ul>
<p><!--adsensestart--><br />
What is great about <strong>YSlow</strong> is it provides you with the best practises for creating high performance web sites.  It helps you detect which components are too big and provide suggestions for you to improve the performance.  The best practises for high performance web sites can be found at <a href="http://developer.yahoo.com/performance/">Yahoo! YSlow Developer Network</a>.</p>
<p>The disadvantage of YSlow is it is not installable on Internet Explorer, unlike <a href="../tools/performance-profiling-using-http-watch/">HTTPWatch</a>.  If you are a fan of the real-time analysing the response (wait) time on HTTPWatch, then you will be disappointed with YSlow on this.  YSlow does not provide any visual indicator on the time taken during loading (or requesting to the server) in real time.  It will only display the time only after the entire web page is downloaded.</p>
<p>The above are just some of the features that are available in YSlow.  You can <a href="https://addons.mozilla.org/en-US/firefox/addon/5369">download YSlow</a> and start profiling your website. We hope to hear your review soon!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.loadrunnertnt.com/tools/analyzing-client-side-performance-issue-with-yslow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Transaction &#8211; Percentile Graph</title>
		<link>http://www.loadrunnertnt.com/how-tos/using-transaction-percentile-graph/</link>
		<comments>http://www.loadrunnertnt.com/how-tos/using-transaction-percentile-graph/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 22:53:37 +0000</pubDate>
		<dc:creator>TnT Admin</dc:creator>
				<category><![CDATA[How-Tos]]></category>
		<category><![CDATA[Analyze]]></category>
		<category><![CDATA[Graphs]]></category>

		<guid isPermaLink="false">http://www.loadrunnertnt.com/?p=133</guid>
		<description><![CDATA[In LoadRunner, the percentile graph is a great graph for understanding how well the system is performing in terms of transaction response time from an overall perspective in a load test.  How is the percentile graph derived?   The mathematical explanation/formula can be found in Wiki, Percentile rank.
90% percentile allows us to know that for a [...]]]></description>
			<content:encoded><![CDATA[<p>In LoadRunner, the percentile graph is a great graph for understanding how well the system is performing in terms of transaction response time from an overall perspective in a load test.  How is the percentile graph derived?   The mathematical explanation/formula can be found in <a href="http://en.wikipedia.org/wiki/Percentile_rank" target="_blank">Wiki, Percentile rank</a>.<span id="more-133"></span></p>
<p>90% percentile allows us to know that for a certain amount of transactions are performing at a certain amount of duration.  Of course it&#8217;s a really abstract description but anyway how is it useful?  Example, if the 90th Percentile is 10secs, what it literally means is that 90% of all transactions are performing at or under 10secs.  While the remaining 10% are performing more than 10secs.  If you have a SLA or performance requirements that is based on 90% of the transactions to perform under 8secs, you have pass this criteria.</p>
<p>The Percentile can also tell you how the system is performing, such that if there is a higher percentage of slow response time transaction and what is the percentage that is performing higher than the expected transaction response time.  In a typical average transaction response time graph, you can see how the (passed) transactions are performing during the entire load test period <span style="text-decoration: underline;">over time</span>.  However, the Percentile graph illustrates the (passed) transactions and their percentage with respect to the <span style="text-decoration: underline;">overall transactions</span>.</p>
<p>In the below example taken from the Analysis User Guide, at the 60th Percentile, tr_amazon_help is at about 4secs, which means 60% and less of tr_amazon_help is responding at 4secs less.  While at the 90th Percentile, 90% of all tr_cnn_weather transactions are responding at 20secs or less.</p>
<p><img class="aligncenter" title="Percentile Graph" src="http://loadrunnertnt.com/images/graph_90percent.JPG" alt="" width="538" height="346" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.loadrunnertnt.com/how-tos/using-transaction-percentile-graph/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>WASJDK: java.lang.OutOfMemoryError due to allocating large heap objects</title>
		<link>http://www.loadrunnertnt.com/analyze/wasjdk-java-lang-outofmemoryerror-due-to-allocating-large-heap-objects/</link>
		<comments>http://www.loadrunnertnt.com/analyze/wasjdk-java-lang-outofmemoryerror-due-to-allocating-large-heap-objects/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 06:40:23 +0000</pubDate>
		<dc:creator>TnT Admin</dc:creator>
				<category><![CDATA[Analyze]]></category>
		<category><![CDATA[WAS]]></category>

		<guid isPermaLink="false">http://www.loadrunnertnt.com/?p=321</guid>
		<description><![CDATA[Taken from the IBM Public Library for Websphere 4.x (a little out-dated).  In this featured article for WebSphere 4.x, the concept is applicable to most J2EE application in determining if java.lang.OutOfMemoryError is due to allocation of large heap objects which is the cause of heap fragmentation. Heap fragmentation can be detected when there is [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="IBM" src="http://loadrunnertnt.com/images/company_ibm_logo.gif" alt="" width="110" height="52" />Taken from the IBM Public Library for <strong>Websphere 4.x</strong> (a little out-dated).  In this featured article for <strong>WebSphere 4.x</strong>, the concept is applicable to most J2EE application in determining if java.lang.OutOfMemoryError is due to allocation of large heap objects which is the cause of heap fragmentation. Heap fragmentation can be detected when there is a (a) high amount of free heap and a (b) high amount of memory in heap while a (c) &#8220;totally out of heap space message&#8221; occur. Techniques on how to resolve the problem such as coding it to prevent <strong>heap fragmentation</strong>, diminishing the effect of potential <strong>heap fragmentation</strong> are discussed in the article, etc.  To get the article, click on the following link:<span id="more-321"></span></p>
<ul>
<li><a title="WASJDK: java.lang.OutOfMemoryError due to allocating large heap objects " href="http://publib.boulder.ibm.com/infocenter/wasinfo/v4r0/index.jsp?topic=/com.ibm.support.was40.doc/html/Java_SDK/swg21176438.html" target="_blank">WASJDK: java.lang.OutOfMemoryError due to allocating large heap objects </a></li>
</ul>
<p>For the latest version of the WebShere documentation and tuning guide, you can refer to the <a title="IBM Websphere 6.x Information Center" href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp" target="_blank">IBM Public Library for WebSphere 6.x</a> where there are various resources for performance tuning <strong>WebSphere 6.x.</strong></p>
<p><a title="CSS Corp" href="http://www.csscorp.com/" target="_blank">(Special thanks to Aravind Kumar for contribution, CSS Corp)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.loadrunnertnt.com/analyze/wasjdk-java-lang-outofmemoryerror-due-to-allocating-large-heap-objects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>% Disk Time may exceed 100 percent in Controller</title>
		<link>http://www.loadrunnertnt.com/analyze/disk-time-may-exceed-100-percent-in-controller/</link>
		<comments>http://www.loadrunnertnt.com/analyze/disk-time-may-exceed-100-percent-in-controller/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 04:36:24 +0000</pubDate>
		<dc:creator>TnT Admin</dc:creator>
				<category><![CDATA[Analyze]]></category>
		<category><![CDATA[Disk]]></category>

		<guid isPermaLink="false">http://www.loadrunnertnt.com/?p=359</guid>
		<description><![CDATA[When you are running a load test and you may have encounter that the % Disk Time exceeds 100% in Controller or when you are analyzing the graphs in Analysis. Over 100%? Weird right? And when you open perfmon to verify, and it’s still more than 100%. Is it a bug of Windows?  What&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>When you are running a <span style="font-weight: bold;">load test</span> and you may have encounter that the <span style="font-weight: bold;">% Disk Time</span> exceeds 100% in <span style="font-weight: bold;">Controller</span> or when you are analyzing the graphs in <span style="font-weight: bold;">Analysis</span>. Over 100%? Weird right? And when you open <span style="font-weight: bold;">perfmon</span> to verify, and it’s still more than 100%. Is it a bug of Windows?  What&#8217;s the cause behind this?<span id="more-359"></span></p>
<p>Usually, this happens when the the <span style="font-weight: bold;">disk</span> is very busy such as copying of large amount of files out copying multiple files, etc. We must first understand that whatever monitoring data Controller is displaying for Windows is based on <span style="font-weight: bold;">Windows Perfmon</span>. You can refer to the article titled, <a title="How does the monitoring work in LoadRunner?" href="http://www.loadrunnertnt.com/?p=301" target="_blank">&#8220;How does the monitoring work in LoadRunner?&#8221;</a> if you need some explanation. This is actually by design of the <span style="font-weight: bold;">Windows</span> OS.</p>
<p>The behavior can occur because the OS uses <span style="font-weight: bold;">overlapping</span> input/output operations for multiple outstanding requests. The disk performance counters time the responses by using a 100 nanosecond precision counter, and then report the cumulative statistics for a given sample time. This sample time could go over 100 percent if, for example, you have 10 requests that completed in 2 milliseconds each in a 10 millisecond sampling interval. If you have multiple disks in a <span style="font-weight: bold;">Raid</span> arrangement, the overlapped input/output happens because the operating system can read and write to <span style="font-weight: bold;">multiple disks</span>, and this could show values that are higher than 100 percent for this counter.</p>
<p><a href="http://support.microsoft.com/kb/310067" target="_blank"><span style="text-decoration: underline;"><span style="color: #0066cc;">(Source: Microsoft Help and Support)</span></span></a></p>
<p>There is no quick fix to this as of this writing and the most accurate way to determine disk utilization is to use <span style="font-weight: bold;">% Idle Time</span> in the below formula:</p>
<ul>
<p style="font-weight: bold;">100% &#8211; % Idle Time = Actual % Disk Utilization</p>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.loadrunnertnt.com/analyze/disk-time-may-exceed-100-percent-in-controller/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>% Disk Read Time + % Disk Write Time not equals to % Disk Time?</title>
		<link>http://www.loadrunnertnt.com/analyze/disk-read-time-disk-write-time-not-equals-to-disk-time/</link>
		<comments>http://www.loadrunnertnt.com/analyze/disk-read-time-disk-write-time-not-equals-to-disk-time/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 08:30:58 +0000</pubDate>
		<dc:creator>TnT Admin</dc:creator>
				<category><![CDATA[Analyze]]></category>
		<category><![CDATA[Disk]]></category>

		<guid isPermaLink="false">http://www.loadrunnertnt.com/?p=355</guid>
		<description><![CDATA[These article is an extract of “Top Six FAQs on Windows 2000 Disk Performance” by Mark Friedman who also is the author of “Windows 2000 Performance Guide” that explains why the sum of % Disk Read Time and % Disk Write Time is not equal to % Disk Time. Why do we have to explain [...]]]></description>
			<content:encoded><![CDATA[<p>These article is an extract of <a href="http://www.oreillynet.com/pub/a/network/2002/01/18/diskperf.html" target="_blank"><span style="text-decoration: underline;"><span style="color: #0066cc;">“Top Six FAQs on Windows 2000 Disk Performance”</span></span></a> by Mark Friedman who also is the author of <a href="http://oreilly.com/catalog/w2kperf/" target="_blank"><span style="text-decoration: underline;"><span style="color: #0066cc;">“Windows 2000 Performance Guide”</span></span></a> that explains why the sum of <span style="font-weight: bold;">% Disk Read Time</span> and <span style="font-weight: bold;">% Disk Write Time</span> is not equal to <span style="font-weight: bold;">% Disk Time</span>. Why do we have to explain this? There are times that in Controller and Analysis, your client/user may observed that the total of % Disk Read Time and % Disk Write Time is not 100% and may question this to you. Therefore, a good understanding behind this will give you a build a positive credential to your client/user.</p>
<p>Often when you add the <span style="font-weight: bold;">% Disk Read Time</span> and <span style="font-weight: bold;">% Disk Write Time</span> counters together, they do not add up to % Disk Time. Furthermore, the % Disk Time counters are <span style="font-weight: bold;">capped</span> in the System Monitor at 100 percent because it would be confusing to report disk utilization greater than 100 percent. This occurs because the <span style="font-weight: bold;">% Disk Time</span> counters do not actually measure disk utilization. The Explain text that implies that they do represent disk utilization is very misleading.<span id="more-355"></span></p>
<p>What the <span style="font-weight: bold;">% Disk Time</span> counters actually do measure is a little complicated to explain but Mark provided a detail explanation in the following paragraphs which required your attention to read through.</p>
<p>The <span style="font-weight: bold;">%Disk Time</span> counter is not measured directly instead it is a value derived by the <span style="font-weight: bold;">diskperf filter driver</span> that provides disk performance statistics. diskperf is a layer of software sitting in the disk driver stack. As <span style="font-weight: bold;">I/O Request packets (IRPs)</span> pass through this layer, diskperf keeps track of the time I/O’s start and the time they finish. On the way to the device, diskperf records a timestamp for the IRP. On the way back from the device, the completion time is recorded. The difference is the duration of the I/O request.</p>
<p>Averaged over the collection interval, this becomes the <span style="font-weight: bold;">Avg. Disk sec/Transfer</span>, a direct measure of <span style="font-weight: bold;">disk response time</span> from the point of view of the device driver. diskperf also maintains byte counts and separate counters for reads and writes, at both the <span style="font-weight: bold;">Logical</span> and <span style="font-weight: bold;">Physical</span> Disk level. (This allows Avg. Disk sec/Transfer to be broken out into reads and writes.)</p>
<p>The <span style="font-weight: bold;">Avg. Disk sec/Transfer</span> measurement reported is based on the <span style="font-weight: bold;">complete roundtrip time of a request</span>. It is a direct measure of <span style="font-weight: bold;">disk response time</span>- which means it <span style="font-weight: bold;">includes queue time</span>. Queue time is the time spent waiting for the device because it is busy with another request or waiting for the SCSI bus to the device because it is busy.</p>
<p><span style="font-weight: bold;">% Disk Time </span>is a value derived by diskperf from the sum of all <span style="font-weight: bold;">IRP roundtrip times (Avg.Disk sec/Transfer)</span> multiplied by <span style="font-weight: bold;">Disk Transfers/sec</span>, and divided by duration, or essentially:</p>
<ul>% Disk Time = Avg Disk sec/Transfer * Disk Transfers/sec</ul>
<p>which is a calculation (subject to capping when it exceeds 100 percent).</p>
<p>Because the <span style="font-weight: bold;">Avg. Disk sec/Transfer</span> that <span style="font-weight: bold;">diskperf</span> measures includes disk queuing, <span style="font-weight: bold;">% Disk Time</span> can grow <span style="font-weight: bold;">greater than 100 percent</span> if there is <span style="font-weight: bold;">significant disk queuing</span> (at either the Physical or Logical Disk level). The Explain text in the official documentation suggests that this product of <span style="font-weight: bold;">Avg. Disk sec/Transfer</span> and <span style="font-weight: bold;">Disk Transfers/sec</span> measures <span style="font-weight: bold;">% Disk busy</span>. If (and this a big “if”) the IRP roundtrip time represented only service time, then the % Disk Time calculation would correspond to disk utilization. But Avg. Disk sec/Transfer includes queue time, so the formula used actually calculates something entirely different.</p>
<p><a href="http://www.oreillynet.com/pub/a/network/2002/01/18/diskperf.html" target="_blank"><span style="text-decoration: underline;"><span style="color: #0066cc;">(Source: O’Reilly Network)</span></span></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.loadrunnertnt.com/analyze/disk-read-time-disk-write-time-not-equals-to-disk-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
