<?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>Demand Technology Software</title>
	<atom:link href="http://demandtech.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://demandtech.com</link>
	<description>Industry-Leading Solutions for Windows Performance Management</description>
	<lastBuildDate>Thu, 23 May 2013 19:54:25 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>UKCMG 2013 &#8211; Mark Friedman&#8217;s Presentation from the session &#8220;Memory Management in Windows Guest Machines&#8221; is now available</title>
		<link>http://demandtech.com/ukcmg-2013-mark-friedmans-presentation-memory-management-in-windows-guest-machines-is-now-available/</link>
		<comments>http://demandtech.com/ukcmg-2013-mark-friedmans-presentation-memory-management-in-windows-guest-machines-is-now-available/#comments</comments>
		<pubDate>Wed, 15 May 2013 14:57:15 +0000</pubDate>
		<dc:creator>Phil Henninge</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://demandtech.com/?p=1015</guid>
		<description><![CDATA[Mark Friedman&#8217;s UKCMG 2013 presentation from the session titled &#8220;Memory Management in Windows Guest Machines&#8221; is now available for download. Here is the abstract: Windows machines running under virtualization are subject to memory management from two distinct sources. VMware manages the physical memory consumed by guest machines aggressively in order to minimize the memory footprint in [...]]]></description>
				<content:encoded><![CDATA[<p>Mark Friedman&#8217;s UKCMG 2013 presentation from the session titled &#8220;Memory Management in Windows Guest Machines&#8221; is now available for <a href="http://demandtech.com/wp-content/uploads/2013/05/The%20Challenge%20of%20Performance%20Management%20in%20the%20Virtual%20Data%20Center,%20Part%20II%20(Memory%20Management).pdf" target="_blank">download</a>.</p>
<p>Here is the abstract:</p>
<p>Windows machines running under virtualization are subject to memory management from two distinct sources. VMware manages the physical memory consumed by guest machines aggressively in order to minimize the memory footprint in order to increase the number of virtual machines that can be run on a single physical host. Significant memory savings are possible, for example, by sharing duplicate pages across similarly configured virtual machines. The second agent involved in memory management is the Windows Guest OS, which generally pursues a different goal; namely, minimizing page fault delays by aggressively caching older virtual memory pages in physical memory to avoid time-consuming paging operations to physical disk. How these two different memory management policies interact and potentially collide is the subject of this presentation. Results from several experiments where memory contention is introduced in the virtual environment are also presented, and the interpretation of the performance measurement data to monitor memory usage reported in both VMware and Windows are discussed.</p>
<p>You can download the presentation <a href="http://demandtech.com/wp-content/uploads/2013/05/The%20Challenge%20of%20Performance%20Management%20in%20the%20Virtual%20Data%20Center,%20Part%20II%20(Memory%20Management).pdf" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://demandtech.com/ukcmg-2013-mark-friedmans-presentation-memory-management-in-windows-guest-machines-is-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UKCMG 2013 &#8211; Visit with our friends at Agileise and attend Mark Friedman&#8217;s sessions</title>
		<link>http://demandtech.com/attend-ukcmg-2013-visit-with-our-friends-at-agileise-and-attend-mark-friedmans-sessions/</link>
		<comments>http://demandtech.com/attend-ukcmg-2013-visit-with-our-friends-at-agileise-and-attend-mark-friedmans-sessions/#comments</comments>
		<pubDate>Thu, 02 May 2013 20:36:20 +0000</pubDate>
		<dc:creator>Phil Henninge</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://demandtech.com/?p=1007</guid>
		<description><![CDATA[The UKCMG Annual Conference will take place on the 14th &#38; 15th May 2013 and will be held at The CBI London.  Our UK partner Agileise will have an exhibit stand, so stop by and introduce yourself to Chitra and Andy. Mark Friedman will be presenting a session titled &#8220;Memory Management in Windows Guest Machines&#8221;.  [...]]]></description>
				<content:encoded><![CDATA[<p>The <a href="http://www.ukcmg.org.uk/acMay2013.html" target="_blank">UKCMG Annual Conference </a>will take place on the 14th &amp; 15th May 2013 and will be held at <a href="http://www.etcvenues.co.uk/venues/cbi-centre">The CBI London</a>.  Our UK partner <a title="Agileise" href="http://www.agileise.com/" target="_blank">Agileise</a> will have an exhibit stand, so stop by and introduce yourself to Chitra and Andy.</p>
<p>Mark Friedman will be presenting a session titled &#8220;Memory Management in Windows Guest Machines&#8221;.  Mark will be discussing how the memory management policies of the VMware host and the memory management policies of the Windows operating system running in a virtual machine interact and potentially collide.</p>
<p>Additionally, Mark will be holding a Workshop on 15 May at 2pm titled &#8220;Web Application Performance and Tuning in Windows: A Performance Engineering Approach&#8221;.  Mark will  introduce a set of patterns and practices essential to developing responsive and highly scalable web-based applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://demandtech.com/attend-ukcmg-2013-visit-with-our-friends-at-agileise-and-attend-mark-friedmans-sessions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UKCMG 2013 &#8211; Visit with our friends at Agileise and attend Mark Friedman&#8217;s sessions</title>
		<link>http://demandtech.com/attend-ukcmg-2013-visit-with-our-friends-at-agileise-and-hear-mark-friedman-speak/</link>
		<comments>http://demandtech.com/attend-ukcmg-2013-visit-with-our-friends-at-agileise-and-hear-mark-friedman-speak/#comments</comments>
		<pubDate>Thu, 02 May 2013 20:32:47 +0000</pubDate>
		<dc:creator>Phil Henninge</dc:creator>
				<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://demandtech.com/?p=1004</guid>
		<description><![CDATA[The UKCMG Annual Conference will take place on the 14th &#38; 15th May 2013 and will be held at The CBI London.  Our UK partner Agileise will have an exhibit stand, so stop by and introduce yourself to Chitra and Andy. Mark Friedman will be presenting a session titled &#8220;Memory Management in Windows Guest Machines&#8221;.  [...]]]></description>
				<content:encoded><![CDATA[<p>The <a href="http://www.ukcmg.org.uk/acMay2013.html" target="_blank">UKCMG Annual Conference </a>will take place on the 14th &amp; 15th May 2013 and will be held at <a href="http://www.etcvenues.co.uk/venues/cbi-centre">The CBI London</a>.  Our UK partner <a title="Agileise" href="http://www.agileise.com/" target="_blank">Agileise</a> will have an exhibit stand, so stop by and introduce yourself to Chitra and Andy.</p>
<p>Mark Friedman will be presenting a session titled &#8220;Memory Management in Windows Guest Machines&#8221;.  Mark will be discussing how the memory management policies of the VMware host and the memory management policies of the Windows operating system running in a virtual machine interact and potentially collide.</p>
<p>Additionally, Mark will be holding a Workshop on 15 May at 2pm titled &#8220;Web Application Performance and Tuning in Windows: A Performance Engineering Approach&#8221;.  Mark will  introduce a set of patterns and practices essential to developing responsive and highly scalable web-based applications.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://demandtech.com/attend-ukcmg-2013-visit-with-our-friends-at-agileise-and-hear-mark-friedman-speak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Performance Objects in Windows 8 and Server 2012</title>
		<link>http://demandtech.com/new-performance-objects-in-windows-8-and-windows-server-2012/</link>
		<comments>http://demandtech.com/new-performance-objects-in-windows-8-and-windows-server-2012/#comments</comments>
		<pubDate>Fri, 26 Oct 2012 18:05:06 +0000</pubDate>
		<dc:creator>Phil Henninge</dc:creator>
				<category><![CDATA[Performance engineering]]></category>
		<category><![CDATA[Performance Monitoring]]></category>
		<category><![CDATA[Performance Reporting]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://demandtech.com/?p=829</guid>
		<description><![CDATA[Windows 8 and Server 2012 now Generally Available OK, now that all the hoopla of introducing Windows 8 is over, we can now get down to business.  As I wrote in another entry, we at Demand Technology Software, have revised our software installation to work with both Windows 8 and Windows Server 2012.  As part [...]]]></description>
				<content:encoded><![CDATA[<h3>Windows 8 and Server 2012 now Generally Available</h3>
<p>OK, now that all the <a href="http://www.studiosevent.com/newscenter/?id=Oct25_Win8245cc&amp;width=640&amp;height=360&amp;social=true">hoopla</a> of introducing <a href="http://windows.microsoft.com/en-US/windows/home">Windows 8</a> is over, we can now get down to business.  As I wrote in another <a href="http://demandtech.com/performance-sentry-supports-windows-server-2012-and-windows-8/">entry</a>, we at Demand Technology Software, have revised our <a href="http://demandtech.com/products/">software installation</a> to work with both <a title="Windows 8" href="http://windows.microsoft.com/en-US/windows/home" target="_blank">Windows 8</a> and <a href="http://www.microsoft.com/en-us/server-cloud/windows-server/default.aspx">Windows Server 2012</a>.  As part of the revision, we have updated our Master Collection Set with new performance objects that Microsoft introduced with this new version of Windows.</p>
<p>I’ll simply mention the most interesting performance objects here.  Mark Friedman has already given his <a href="http://performancebydesign.blogspot.com/2012/10/an-early-look-at-windows-8-and-server.html">first impression</a> of the new operating system, but he plans to do some further investigation into these new objects and counters and discuss them in his <a href="http://performancebydesign.blogspot.com/">performance blog</a>.</p>
<h3>Private Cloud Performance Objects</h3>
<p>Of course, with Server 2012 improving on virtualization and the notion of building your own <a href="http://www.microsoft.com/en-us/server-cloud/private-cloud/default.aspx">private cloud</a>, there are quite a few new performance counters in the existing Hyper-V objects as well as some new performance objects, like ‘Hyper-V Virtual Switch Processor’ and ‘Hyper-V VM Save, Snapshot, and Restore’.</p>
<h3>New Memory Performance Object</h3>
<p>Along with some new counters in the Memory Performance Object, Microsoft introduced a new performance object called &#8216;NUMA Node Memory&#8217;.  This object contains performance counters to report approximate memory utilization metrics by node in a <a title="NUMA Memory" href="http://en.wikipedia.org/wiki/Non-Uniform_Memory_Access" target="_blank">NUMA</a> system.</p>
<h3>Network and File Sharing Performance Objects</h3>
<p>There are quite a few new performance objects related to network and file sharing including the new ‘Network Adapter’ object which has the same counters as the ‘Network Interface’ object.  However, the Network Adapter object includes virtual adapter instances, as well as physical adapter instances.  It is nice that Microsoft kept the original object, while providing support for virtual instances in a new object.  Speaking of virtual adapters, there is also a new object called ‘Network Virtualization’ which according to the explain text for the object “monitors the network activity matching network virtualization policies.”  There is also a new ‘Physical Network Interface Card Activity’ performance object which “measures events on a physical network card”.  This object essentially measures the physical state of the card, whereas the ‘Network Interface’ and ‘Network Adapter’ objects measure the activity (network traffic) on the card.</p>
<p>In support of the SMB (Server Manage Block) file sharing system (<a href="http://www.samba.org/">Samba</a> software uses this protocol), there are three new objects beginning with ‘SMB’ on the server side and one object on the client side.</p>
<p>Finally, there are objects beginning with ‘WinNAT’ and contain performance counters for Network Address Translated packets for the ICMP, TCP, and UDP protocols.</p>
<h3>Collect the new Performance Objects with Performance Sentry</h3>
<p>Of course, if you want to collect these Windows performance metrics in cost effective and resource efficient way, you’ll want to use <a title="Performance Sentry" href="http://demandtech.com/products/performance-sentry/">Performance Sentry</a> from <a href="http://demandtech.com/" target="_blank">Demand Technology Software</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://demandtech.com/new-performance-objects-in-windows-8-and-windows-server-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MXG and Performance Sentry for Cost Effective Windows Performance Monitoring</title>
		<link>http://demandtech.com/mxg-and-performance-sentry-for-cost-effective-windows-performance-monitoring/</link>
		<comments>http://demandtech.com/mxg-and-performance-sentry-for-cost-effective-windows-performance-monitoring/#comments</comments>
		<pubDate>Wed, 24 Oct 2012 15:03:51 +0000</pubDate>
		<dc:creator>Phil Henninge</dc:creator>
				<category><![CDATA[IT Expenses]]></category>
		<category><![CDATA[Performance Monitoring]]></category>
		<category><![CDATA[Performance Reporting]]></category>
		<category><![CDATA[TCO]]></category>

		<guid isPermaLink="false">http://demandtech.com/?p=823</guid>
		<description><![CDATA[I was thinking today about the current economy and how our customers are running with minimal staff and minimal budgets.  My mind wandered back to my previous career as a performance analyst/capacity planner with a Fortune 500 manufacturer and how, during business downturns, we were charged with reducing support costs by 10 to 20 percent (along with our [...]]]></description>
				<content:encoded><![CDATA[<p>I was thinking today about the current economy and how our customers are running with minimal staff and minimal budgets.  My mind wandered back to my previous career as a performance analyst/capacity planner with a Fortune 500 manufacturer and how, during business downturns, we were charged with reducing support costs by 10 to 20 percent (along with our customary five to eight percent salary reduction &#8211; that we usually recovered during the upturns).  During one cycle, we were charged with coming up with 15 to 40 percent reductions.  I remember my manager saying that any manager coming up with 40 percent reduction should be fired for not doing his or her job in the first place!  But I digress.</p>
<p>One of our software line items was maintenance for a software product called &#8216;JARS&#8217; which I think stood for &#8216;Johnson Accounting and Reporting System&#8217;.  We were paying thousands of dollars a year for this product.  We realized its only purpose was to provide daily, weekly, and monthly reports for the manager of operations.  The software processed the same data tapes that our <a title="Merrill's eXpanded Guide" href="http://www.mxg.com" target="_blank">MXG software </a>was processing into a Performance Database (PDB) on a nightly basis.  I consider MXG one of the first &#8216;shareware&#8217; products.  It is masterfully maintained and distributed (still at an incredibly low price) by Barry Merrill, his colleagues, and contributors.  Again, I digress.</p>
<p>I looked at the reports that were being produced and suggested to the manager receiving them that I could produce the same reports in parallel from the MXG PDB. I wrote a program, tested it and showed the results to the manager who approved it for production use.  The end result was that we eliminated a line item in our software budget costing us thousands of dollars a year and eliminated a batch job thereby reduducing CPU costs and extra tape mounts (even though tape mounts had been automated by this time, there was still a cost involved).</p>
<p>So what&#8217;s the point of this story?  Performance Sentry a.k.a. NTSMF (for mainframe performance geeks that stands for SMF for &#8216;Windows NT&#8217; ) was created with MXG in mind as a way to efficiently and cost effectively do performance analysis and capacity planning for Windows Servers.  The same MXG data repository and reporting tools can be used for Windows performance data produced by Performance Sentry.  Performance Sentry uses approximately .3 percent CPU and 16MB to 20MB per <span style="text-decoration: underline;">day</span> to monitor CPU, Disk, Memory, Network, and all running processes on Windows Servers.</p>
<p>Companies using MXG could replace that astonishingly large line item in their software budget for Windows performance monitoring, reporting, and capacity planning with the more cost effective (and more robust) Perfomance Sentry from Demand Technology Software.</p>
<p>Have I piqued your interest?  Give us a call at 239-261-8945 or send inquiries to <a href="mailto:sales@demandtech.com">sales@demandtech.com</a>, or learn more about Performance Sentry by clicking <a href="http://demandtech.com/products/performance-sentry/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://demandtech.com/mxg-and-performance-sentry-for-cost-effective-windows-performance-monitoring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Performance Sentry supports Windows Server 2012 and Windows 8</title>
		<link>http://demandtech.com/performance-sentry-supports-windows-server-2012-and-windows-8/</link>
		<comments>http://demandtech.com/performance-sentry-supports-windows-server-2012-and-windows-8/#comments</comments>
		<pubDate>Mon, 01 Oct 2012 21:42:09 +0000</pubDate>
		<dc:creator>Phil Henninge</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://demandtech.com/?p=775</guid>
		<description><![CDATA[We are happy to announce that Performance Sentry supports Windows Server 2012 and Windows 8.  We had to tweak our installation a bit to use Deployment Image Servicing and Management (DISM) as our previous use of pkgmgr is no longer supported.  After understanding the nuances of the new Metro interface and IIS 8.0, we are [...]]]></description>
				<content:encoded><![CDATA[<p>We are happy to announce that Performance Sentry supports <a style="color: #0000ff;" title="Windows Server 2012" href="http://www.microsoft.com/en-us/server-cloud/windows-server/default.aspx" target="_blank">Windows Server 2012 </a>and <a style="color: #0000ff;" title="Windows 8 Preview" href="http://windows.microsoft.com/en-US/windows-8/release-preview" target="_blank">Windows 8</a>.  We had to tweak our installation a bit to use <a style="color: #0000ff;" title="DISM" href="http://msdn.microsoft.com/en-us/library/windows/desktop/dd371719(v=vs.85).aspx" target="_blank">Deployment Image Servicing and Management (DISM)</a> as our previous use of <a style="color: #0000ff;" title="pkgmgr technical reference" href="http://technet.microsoft.com/en-us/library/cc749302(v=ws.10).aspx" target="_blank">pkgmgr</a> is no longer supported.  After understanding the nuances of the new Metro interface and IIS 8.0, we are happy to report that installation of our complete <a style="color: #0000ff;" title="Performance Sentry" href="http://demandtech.com/products/performance-sentry/" target="_blank">Performance Sentry</a> product runs start to finish requiring only a couple of lines of input and several clicks.</p>
<p>You can download the latest release of Performance Sentry <a style="color: #0000ff;" title="Performance Sentry Download" href="http://demandtech.com/downloads/" target="_blank">here</a>.</p>
<p>After you install, use the Windows key on the keyboard to go to the start screen where you will see shortcut icons for ‘Performance Sentry Administration’ and ‘Performance Sentry Portal’:</p>
<div id="attachment_788" class="wp-caption alignleft" style="width: 635px"><a href="http://demandtech.com/wp-content/uploads/2012/10/2012-Start2.jpg"><img class="size-full wp-image-788" title="Windows Server 2012 Start" src="http://demandtech.com/wp-content/uploads/2012/10/2012-Start2.jpg" alt="" width="625" height="415" /></a><p class="wp-caption-text">Figure 1 Showing the Windows Server 2012 Start Screen with Performance Sentry Installed</p></div>
<p>What about the other shortcuts to Performance Sentry documentation that appear in the ‘Start/Programs’ menu in earlier version of Windows?  Right click on the desktop and click on ‘All Apps’.  All shortcuts will then appear under categories, just like they would appear under the ‘Start’ menu tree in earlier Windows versions:</p>
<div id="attachment_793" class="wp-caption alignleft" style="width: 656px"><a href="http://demandtech.com/wp-content/uploads/2012/10/2012-Start-All-Apps3.jpg"><img class="size-full wp-image-793" title="Windows Serber 2012 Start All Apps" src="http://demandtech.com/wp-content/uploads/2012/10/2012-Start-All-Apps3.jpg" alt="" width="646" height="430" /></a><p class="wp-caption-text">Figure 2 Showing Windows Server 2012 Start All Apps with Performance Sentry Installed</p></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://demandtech.com/performance-sentry-supports-windows-server-2012-and-windows-8/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Visit our UK Partner, Agileise, at UKCMG Forum 2012 in London!</title>
		<link>http://demandtech.com/visit-our-uk-partner-agileise-at-ukcmg-forum-2012-in-london-2/</link>
		<comments>http://demandtech.com/visit-our-uk-partner-agileise-at-ukcmg-forum-2012-in-london-2/#comments</comments>
		<pubDate>Fri, 14 Sep 2012 20:15:25 +0000</pubDate>
		<dc:creator>Phil Henninge</dc:creator>
				<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://demandtech.com/?p=767</guid>
		<description><![CDATA[The annual UKCMG Forum will take place on 10th October, 2012 at The Magic Circle in London.  Our UK partner, Agileise, will have an exhibit stand, so stop by and introduce yourself to Chitra and Andy.]]></description>
				<content:encoded><![CDATA[<p>The annual <a style="color: #0000ff;" title="UKCMG Forum 2012" href="http://www.ukcmg.org.uk/ifOct2012.html" target="_blank">UKCMG Forum </a>will take place on 10th October, 2012 at <a style="color: #0000ff;" title="The Magic Circle Venue" href="http://themagiccirclevenue.co.uk/" target="_blank">The Magic Circle</a> in London.  Our UK partner, <a style="color: #0000ff;" title="Agileise Homepage" href="http://www.agileise.com/" target="_blank">Agileise</a>, will have an exhibit stand, so stop by and introduce yourself to Chitra and Andy.</p>
]]></content:encoded>
			<wfw:commentRss>http://demandtech.com/visit-our-uk-partner-agileise-at-ukcmg-forum-2012-in-london-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visit our UK Partner, Agileise, at UKCMG Forum 2012 in London!</title>
		<link>http://demandtech.com/visit-our-uk-partner-agileise-at-ukcmg-forum-2012-in-london/</link>
		<comments>http://demandtech.com/visit-our-uk-partner-agileise-at-ukcmg-forum-2012-in-london/#comments</comments>
		<pubDate>Fri, 14 Sep 2012 20:08:20 +0000</pubDate>
		<dc:creator>Phil Henninge</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://demandtech.com/?p=760</guid>
		<description><![CDATA[The annual UKCMG Forum will take place on 10th October, 2012 at The Magic Circle in London.  Our UK partner, Agileise, will have an exhibit stand, so stop by and introduce yourself to Chitra and Andy.]]></description>
				<content:encoded><![CDATA[<p>The annual <a style="color: #0000ff" title="UKCMG Forum 2012" href="http://www.ukcmg.org.uk/ifOct2012.html" target="_blank">UKCMG Forum </a>will take place on 10th October, 2012 at <a style="color: #0000ff" title="The Magic Circle Venue" href="http://themagiccirclevenue.co.uk/" target="_blank">The Magic Circle</a> in London.  Our UK partner, <a style="color: #0000ff" title="Agileise Homepage" href="http://www.agileise.com/" target="_blank">Agileise</a>, will have an exhibit stand, so stop by and introduce yourself to Chitra and Andy.</p>
]]></content:encoded>
			<wfw:commentRss>http://demandtech.com/visit-our-uk-partner-agileise-at-ukcmg-forum-2012-in-london/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Performance Sentry Performance Database (PDB) Data Model</title>
		<link>http://demandtech.com/performance-sentry-performance-database-pdb-data-model/</link>
		<comments>http://demandtech.com/performance-sentry-performance-database-pdb-data-model/#comments</comments>
		<pubDate>Tue, 11 Sep 2012 18:39:28 +0000</pubDate>
		<dc:creator>Phil Henninge</dc:creator>
				<category><![CDATA[Performance Sentry Portal]]></category>

		<guid isPermaLink="false">http://demandtech.com/?p=711</guid>
		<description><![CDATA[Performance Sentry Performance Database (PDB) Data Model The Performance Sentry Performance Database (PDB) is a flexible and highly scalable repository designed specifically for optimal storage and reporting of detailed, daily performance data gathered using the performance monitoring facilities of the Windows operating system. This section introduces the data model that the PDB uses to store [...]]]></description>
				<content:encoded><![CDATA[<h1><span style="font-size: x-large;"><span style="color: #365f91;"><span style="font-family: Cambria;">Performance Sentry Performance Database (PDB) Data Model</span></span></span></h1>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">The Performance Sentry Performance Database (PDB) is a flexible and highly scalable repository designed specifically for optimal storage and reporting of detailed, daily performance data gathered using the performance monitoring facilities of the Windows operating system. This section introduces the data model that the PDB uses to store performance data, which is influenced by several key characteristics of the performance monitoring facilities of the Windows operating system. </span></span></span></p>
<h2><span style="font-size: large;"><span style="color: #4f81bd;"><span style="font-family: Cambria;">Performance Objects and Counters</span></span></span></h2>
<p><span style="color: #000000; font-family: Calibri; font-size: medium;">The Windows performance counters instrument the operating system, the hardware, its major subsystems, and many of its applications. All the performance data is available using a single, common collection mechanism and shares a common format. The performance data consists of named <em>counter</em> values that are time-stamped and organized by performance <em>object</em>. While Windows supports a large number of distinct </span><a href="http://technet.microsoft.com/en-us/library/cc785636(v=ws.10)"><span style="color: #0000ff; font-family: Calibri; font-size: medium;">counter types</span></a><span style="color: #000000; font-family: Calibri; font-size: medium;">, most of the counters that are available either report an activity rate (counter type </span><a href="http://technet.microsoft.com/en-us/library/cc740048(v=ws.10)"><span style="color: #0000ff; font-family: Calibri; font-size: medium;">Perf_Counter_Counter</span></a><span style="color: #000000; font-family: Calibri; font-size: medium;">) or an instantaneous value (counter type </span><a href="http://technet.microsoft.com/en-us/library/cc757032(v=ws.10)"><span style="color: #0000ff; font-family: Calibri; font-size: medium;">Perf_Counter_Rawcount</span></a><span style="font-family: Calibri;"><span style="font-size: medium;"><span style="color: #000000;">). </span></span></span></p>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">Each counter value is uniquely identified in the Windows Perfmon application using a naming string with the following syntax:</span></span></span></p>
<pre><span style="color: #000000;"><span style="font-size: small;"><span style="font-family: Courier New;"> </span><em>\\MachineName\ObjectName(ParentName/ObjectInstance#InstanceIndex)\CounterName</em></span></span></pre>
<p><span style="font-family: Calibri;"><span style="font-size: medium;"><span style="color: #000000;">where the <em>InstanceName</em>, <em>InstanceIndex</em>, and <em>ParentName</em> can be necessary to disambiguate the counter reference. </span></span></span></p>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">Windows counters are grouped by performance object:</span></span></span></p>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">               object <strong>→</strong></span><span style="font-family: Calibri;"> List&lt;counters&gt;</span></span></span></p>
<p><span style="color: #000000; font-family: Calibri; font-size: medium;">but not all performance objects contain multiple instances For example, the Memory object contains a set of system-wide performance counters accounting for usage of both physical and virtual memory. For any one point in time for a given machine, there is only one instance of the Memory object reported. However, instances of the Processor object report processor utilization per processor. The unique instance name associated with the Processor object is a processor ID. (See </span><a href="http://technet.microsoft.com/en-us/library/cc784617(v=ws.10)"><span style="color: #0000ff; font-family: Calibri; font-size: medium;">Overview of Performance Data Collection</span></a><span style="font-family: Calibri;"><span style="font-size: medium;"><span style="color: #000000;"> for additional details regarding the performance data naming convention.) </span></span></span></p>
<p><span style="font-family: Calibri;"><span style="font-size: medium;"><span style="color: #000000;">The data model also supports one level of parent-child nesting, but only a few performance objects, such as the Thread, implement the parent-child relationship. (The parent of a Thread is its Process.) The Instance index is an index synthesized by the Windows Performance Monitor to distinguish multiple instances of the Process object with the same process name (such as separate <em>iexplore</em> processes).</span></span></span></p>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">Figure 1 represents this conceptual data model for performance objects and counters in Windows visually showing one or more performance counters associated with a unique instance of a performance object:</span></span></span></p>
<p style="text-align: center;"> <a href="http://demandtech.com/wp-content/uploads/2012/09/ObjectCounterer-model1.jpg"><img class="size-full wp-image-715 aligncenter" title="ObjectCounterer-model" src="http://demandtech.com/wp-content/uploads/2012/09/ObjectCounterer-model1.jpg" alt="" width="339" height="183" /></a></p>
<p><span style="font-size: small;"><span style="color: #4f81bd;"><span style="font-family: Calibri;"><strong> Figure 1. </strong>A conceptual model showing the relationship between Performance Objects and Counters in Windows.</span></span></span></p>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">The Performance Sentry PDB adopts this conceptual schema, but with the following key differences:</span></span></span></p>
<ul>
<li style="text-align: left;"><span style="color: #000000;">      <span style="font-family: Calibri;"><span style="font-size: medium;">All the counter values associated with a given unique instance of a performance object are stored in the PDB by timestamp in a single database    table data row (where the SQL column name corresponds to the performance counter name). This results in considerably more efficient use of disk storage, compared to storing each counter value separately in its own unique row in a PDB, as many other products do.</span></span></span></li>
<li><span style="color: #000000;"><span style="font-size: medium;">   </span>  <span style="font-family: Calibri;"><span style="font-size: medium;">Instead of a synthetic index for unique instances of the Process object, the PDB differentiates among unique instances of the Process object using the Process ID, or PID. At any point in time, the Process ID (or ID Process, as the counter is labeled in the Process object) is guaranteed to be unique. Using the Process ID is the identification scheme used by the OS itself. </span></span></span></li>
</ul>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">The Process ID value is also valuable because it can be used to correlate the process level measurements taken by the OS with internal application-level measurements whenever the PID is explicitly available. (For example, the performance counters at the application level provided by the .NET Framework report the Process name as the Instance name along with a separate Process ID field, for example.) In the terminology of data modeling, the process ID is a Key to the Process table. When the Process ID is stored in a table other than the Process table, it serves as a Foreign Key that can be used to JOIN data from that table to data in the Process table. Figure 1 above shows ProcessID as a Foreign Key in the PerformanceCounter data structure.</span></span></span></p>
<h2><span style="font-size: large;"><span style="color: #4f81bd;"><span style="font-family: Cambria;">Machine-specific Data Tables</span></span></span></h2>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">To promote scalability, the Performance Sentry PDB stores all the performance counter data in time-series in a set of machine-specific data tables. Machine-specific database tables, one per performance object per machine, are created dynamically by the PDB loader program when the data file is processed. A unique database table is generated with a table name in the form of </span><em>MachineName</em>@<em>ObjectName</em><span style="font-family: Calibri;"> for each set of performance counters found in the data file being processed</span>. <span style="font-family: Calibri;">The number of machine-specific data tables created from a data file is a function of the input data. </span></span></span></p>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">The PDB does contain several statically defined database tables. These include a Machines table that contains a row for every machine which has performance data loaded in the PDB. The Machines table entry for a machine contains a pointer (another Foreign Key) to the name of the Data Collection Set (DCS) that is stored in the DCS Data Definition table, also allocated statically. Entries in the DCS Data Definition table define the performance objects and counters that are present in a data file from that specific machine.  </span></span></span></p>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">Figure 2 provides an overview of the PDB schema, indicating how the statically-defined Machines and DCS_DataDef tables are used to generate the machine-specific database tables dynamically during a database Load. (In the diagram, not all columns are represented to save space.) Note, that if the machine-specific database tables already exist for a machine, the Loader program validates them against the DCS data definition in the current data file and, if there are any schematic changes, updates the machine data tables accordingly. </span></span></span></p>
<p style="text-align: center;"><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;"><a href="http://demandtech.com/wp-content/uploads/2012/09/Static-and-Dynamic-PDB-tables4.jpg"><img class="size-full wp-image-728 aligncenter" title="Static and Dynamic PDB tables" src="http://demandtech.com/wp-content/uploads/2012/09/Static-and-Dynamic-PDB-tables4.jpg" alt="" width="691" height="433" /></a></span></span></span></p>
<p> <span style="font-size: small;"><span style="color: #4f81bd;"><span style="font-family: Calibri;"><strong>Figure 2. </strong>The relationship between the static database tables that are machine-oriented and the dynamic, machine-specific tables that hold the performance counter data. The Machines table entry contains a pointer to the DCS Data Definition, which is then used to construct the machine-specific data tables. Two machine-specific data tables are illustrated, a simple <em>MachineName</em>@<em>Memory</em> table and an instanced <em>MachineName</em>@<em>Process</em> table. For the sake of brevity, not all counters that are in the objects are shown.</span></span></span></p>
<p><span style="font-family: Calibri;"><span style="font-size: medium;"><span style="color: #000000;">During a database Load operation, the NtsmfDataAccess component is called, passing a data file name to process.  Each data file is then processed in three distinct stages:</span></span></span></p>
<ol>
<li><span style="color: #000000;">    <span style="font-family: Calibri;"><span style="font-size: medium;">Processing the Configuration records embedded at the beginning of the data file that define the performance objects contained in the file, and their associated performance counters.</span></span></span></li>
<li><span style="color: #000000;">     <span style="font-family: Calibri; font-size: medium;">Processing the data records themselves that occupy the bulk of the data file. These are formatted as a set of </span></span><a href="http://msdn.microsoft.com/en-us/library/system.data.datatable.aspx"><span style="color: #0000ff; font-family: Calibri; font-size: medium;">DataTables</span></a><span style="color: #000000; font-family: Calibri; font-size: medium;">, one per performance object, and stored as a collection of DataTables contained in a </span><a href="http://msdn.microsoft.com/en-us/library/system.data.dataset.aspx"><span style="color: #0000ff; font-family: Calibri; font-size: medium;">DataSet</span></a><span style="font-family: Calibri;"><span style="font-size: medium;"><span style="color: #000000;"> object.</span></span></span></li>
<li><span style="color: #000000;">    <span style="font-family: Calibri;"><span style="font-size: medium;">One by one, Inserting new rows of data into SQL Server database tables from each of the DataTables formatted in step 2.</span></span></span></li>
</ol>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">At the outset of stage 3 in the database load process, the set of SQL Server tables that are present are validated against the DataTables resident in memory that were built from the current data file, and any changes or updates that are detected are propagated to the disk-resident database versions of the data tables automatically at that time.</span></span></span></p>
<h2><span style="font-size: large;"><span style="color: #4f81bd;"><span style="font-family: Cambria;">Design Trade-offs</span></span></span></h2>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">In any complex system, design decisions inevitably involve trade-offs. In the case of the dynamic data model that is implemented in the Performance Sentry PDB, there are some distinct advantages of the approach used, but also some implications are not uniformly positive.</span></span></span></p>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">Among the advantages of this approach, the ability of the PDB to scale to accommodate updating and reporting on thousands of machines is particularly noteworthy. The data model supports a classic SIMD (single instruction, multiple data) approach to parallelizing the nightly database load. Database loads are accomplished using a simple command:</span></span></span></p>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">               </span>ntdacmd –d <em>folder-name</em> –threads <em>auto</em>|<em>n</em></span></span></p>
<p><span style="font-family: Calibri;"><span style="font-size: medium;"><span style="color: #000000;">where the loader program is pointed at a <em>folder</em> containing the latest set of daily data files. When loading data files in parallel, the loader program scans the input folder, instantiates a .NET ThreadPool object, and then assigns each worker thread in the thread pool a file to process, until all the files that were found in the folder are processed. Worker threads make a few accesses to the shared static data tables at the beginning of each file loading operation. Thereafter, Database load operations are accomplished in parallel. The speed-up is roughly a function of the number of update threads because it is virtually a <em>shared nothing</em> data model for distributing the data over multiple sets of database tables. In practice, however, the performance of Writes to the database disks, especially the database logging disk, usually serves as an upper bound on the throughput of the database load process.</span></span></span></p>
<p><span style="color: #000000; font-family: Calibri; font-size: medium;">In principle, the Performance Sentry PDB data model is also very effective in scaling the performance of queries that span multiple machines, which can take advantage of Microsoft SQL Server’s automatic parallel query optimization facilities. See the MSDN Help topics “</span><a href="http://msdn.microsoft.com/en-us/library/ms178065(v=sql.105)"><span style="color: #0000ff; font-family: Calibri; font-size: medium;">Parallel Query Processing</span></a><span style="color: #000000; font-family: Calibri; font-size: medium;">” and “</span><a href="http://msdn.microsoft.com/en-us/library/dd460688"><span style="color: #0000ff; font-family: Calibri; font-size: medium;">Parallel LINQ</span></a><span style="font-family: Calibri;"><span style="font-size: medium;"><span style="color: #000000;">” for details. When the focus is reporting data from a single machine, since data from different performance objects is stored in separate database tables, many machine-specific queries can also be parallelized.</span></span></span></p>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">In general, the Performance Sentry PDB data model is optimized for reporting. In the most common scenarios for reporting on Windows performance counter data, all the data needed for a single report is contained in a single data table, which are each indexed by time of day to facilitate logical JOIN operations within and across data tables. Figure 3 shows the results of a typical PDB query that Joins data from the Process table with the Processor table for a single machine. Because the <em>machine@Process</em> and the <em>machine@Processor</em> tables are distinct, SQL Server can create a query execution Plan that runs queries against each table in parallel.  </span></span></span></p>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">In the Query to build the chart illustrated in Figure 3, the Processor table contains 32 processor instances reported every minute, while the Process table is a sparse matrix that contains only instances of processes that exceed defined thresholds for CPU (or memory) usage. The SQL Query sums the processor instances by time interval. These are JOINed by time interval to a report of the Top 5 overall processes, based on CPU consumption over the query interval. Complex queries such as these can benefit from running in parallel on a multi-core processor.</span></span></span></p>
<p style="text-align: center;"><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;"><a href="http://demandtech.com/wp-content/uploads/2012/09/ProcessandProcessorJoin5.png"><img class="size-full wp-image-725 aligncenter" title="ProcessandProcessorJoin" src="http://demandtech.com/wp-content/uploads/2012/09/ProcessandProcessorJoin5.png" alt="" width="657" height="645" /></a></span></span></span></p>
<p><span style="font-size: small;"><span style="color: #4f81bd;"><span style="font-family: Calibri;"><strong>Figure 3. </strong>A common reporting scenario Joins data from multiple machine-specific database tables in the Performance Sentry PDB. Here data from the <em>machine@Process</em> and <em>machine@Processor</em> tables are Joined by time of day.</span></span></span></p>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">This performance optimization is not free, however. There are serious trade-offs that customers encounter with this design. The data model is simple conceptually, but, in practice, navigating to the desired data is complex. With multiple data tables generated for each machine, the developer that builds a PDB query must understand the data model and know how to navigate to the proper set of machine-specific data tables. </span></span></span></p>
<p><span style="color: #000000;"><span style="font-family: Calibri; font-size: medium;">One general approach to navigation in the PDB is to locate the tables of interest in the System Views that explicitly represent the Database Definition Language (DDL). Using LINQ to SQL, for example, a static method </span>IsValidPDBTableName<span style="font-family: Calibri;"><span style="font-size: medium;"> can be called to check for a valid SQL Table name. The method is a LINQ-to-SQL wrapper around a query of PDB.INFORMATION_SCHEMA.TABLES:</span></span></span></p>
<p><span style="color: #000000;">        </span></p>
<p>string<span style="color: #000000;"> metadataquery = </span>@&#8221;Select TABLE_NAME From [PDB].[INFORMATION_SCHEMA].[TABLES]&#8220;<span style="color: #000000;"> +</span></p>
<p><span style="color: #000000;">                                </span>&#8221; Where TABLE_NAME = &#8216;&#8221;<span style="color: #000000;"> + TableName + </span>&#8220;&#8216;&#8221;<span style="color: #000000;">;</span></p>
<p><span style="color: #000000;">            </span></p>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">Using the Machines table to navigate to the DCS Data Definition table where the schema metadata is represented implicitly is another viable approach developers can use.</span></span></span></p>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">Another complication is the sheer number of data tables that are generated when the PDB is used to process performance data from a large number of machines. Simple SQL Server query tools, including Excel’s otherwise excellent support for querying SQL Server databases tend to choke when the number of data tables resident in the PDB exceeds 100,000. Similarly, the time it takes to run the basic SQL Server Management Studio function to enumerate the PDB data tables can be prohibitive with large numbers of tables.</span></span></span></p>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">Our new DTS Data Services Software Developers’ Kit (SDK) helps to mitigate these concerns for developers interested in building their own PDB queries. The SDK packages together the common queries that reporting programs run in our Web Portal. The SDK implements the common queries used to locate machines and their associated machine-specific data tables. It contains methods to find the objects and counters associated with specific machines in the PDB, and then gather the specific counter data specified. The SDK also includes a sample desktop graphical reporting application that demonstrates the use of all the important APIs for querying the PDB. </span></span></span></p>
<p><span style="font-size: medium;"><span style="color: #000000;"><span style="font-family: Calibri;">Click here to download the </span></span></span><a href="http://demandtech.com/download/Performance%20Sentry%20Data%20Access%20Services%20SDK.zip"><span style="color: #0000ff; font-family: Calibri; font-size: medium;">Data Access Services SDK</span></a></p>
]]></content:encoded>
			<wfw:commentRss>http://demandtech.com/performance-sentry-performance-database-pdb-data-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visit our UK Partner, Agileise, and hear Mark Friedman speak at UKCMG 2012!</title>
		<link>http://demandtech.com/visit-our-uk-partner-agileise-and-hear-mark-friedman-speak-at-ukcmg-2012/</link>
		<comments>http://demandtech.com/visit-our-uk-partner-agileise-and-hear-mark-friedman-speak-at-ukcmg-2012/#comments</comments>
		<pubDate>Wed, 02 May 2012 19:48:07 +0000</pubDate>
		<dc:creator>Phil Henninge</dc:creator>
				<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://demandtech.com/?p=641</guid>
		<description><![CDATA[The UKCMG Annual Conference will take place on the 14th &#38; 15th May 2012 and will be held at the Oxford Belfry Hotel, Thame, Oxford.  Our UK partner Agileise will have an exhibit stand, so stop by and introduce yourself to Chitra and Andy. Mark Friedman will be presenting a session titled &#8220;Measuring Processor Utilisation [...]]]></description>
				<content:encoded><![CDATA[<p>The <a href="http://ukcmg.org.uk/acMay2012.html" target="_blank">UKCMG Annual Conference </a>will take place on the 14th &amp; 15th May 2012 and will be held at the Oxford Belfry Hotel, Thame, Oxford.  Our UK partner <a title="Agileise" href="http://www.agileise.com/" target="_blank">Agileise</a> will have an exhibit stand, so stop by and introduce yourself to Chitra and Andy.</p>
<p>Mark Friedman will be presenting a session titled &#8220;Measuring Processor Utilisation in Windows and Windows Applications Software&#8221;.  Mark will be discussing legacy techniques for measuring processor utilization in Windows and introducing newer techniques that are event-driven.  Mark presented the same session at the <a href="http://cmg.org/conference/cmg2011/" target="_blank">CMG &#8217;11 International Conference </a>in December 2011.</p>
<p>Additionally, Mark will be holding a Workshop on 15 May at 2pm titled &#8220;Web Application Performance and Tuning in Windows: A Performance Engineering Approach&#8221;.  Mark will  introduce a set of patterns and practices essential to developing responsive and highly scalable web-based applications.</p>
<p>You can read additional information about Mark&#8217;s UKCMG sessions at his <a href="http://performancebydesign.blogspot.com/2012/04/presenting-two-sessions-at-upcoming.html" target="_blank">Performance By Design </a>blog.</p>
]]></content:encoded>
			<wfw:commentRss>http://demandtech.com/visit-our-uk-partner-agileise-and-hear-mark-friedman-speak-at-ukcmg-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.967 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2013-05-25 22:12:14 -->
