<?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>Uptime &#38; Performance Tips</title>
	<atom:link href="http://blog.monitis.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.monitis.com</link>
	<description>Tips for SysAdmin, Webmaster, Network Admin</description>
	<lastBuildDate>Wed, 08 Feb 2012 09:46:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>20 Ruby Performance Tips</title>
		<link>http://blog.monitis.com/index.php/2012/02/08/20-ruby-performance-tips/</link>
		<comments>http://blog.monitis.com/index.php/2012/02/08/20-ruby-performance-tips/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 09:46:14 +0000</pubDate>
		<dc:creator>Casey.Strouse</dc:creator>
				<category><![CDATA[Performance Management]]></category>
		<category><![CDATA[performance tips]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.monitis.com/?p=5519</guid>
		<description><![CDATA[A lot of bloggers and technologists like to talk about Ruby as if it can&#8217;t perform on-par with other dynamic/interpreted programming languages; however, these critics tend to rely on specific benchmarking techniques and ignore the overall performance profile of the language.  They also tend not to take into consideration the various factors of their choice [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: right; padding: 10px;" title="ruby" src="http://blog.monitis.com/wp-content/uploads/2012/02/ruby.jpeg" alt="" width="209" height="241" />A lot of bloggers and technologists like to talk about Ruby as if it can&#8217;t perform on-par with other dynamic/interpreted programming languages; however, these critics tend to rely on specific benchmarking techniques and ignore the overall performance profile of the language.  They also tend not to take into consideration the various factors of their choice of libraries and application architecture before blasting Ruby as being non-performant.</p>
<p>Ruby&#8217;s various versions and implementations have different performance profiles also and this must be taken into consideration before a decision can be made definitively about Ruby&#8217;s overall performance.  Benchmarking is a flawed means of determining the real performance of a tool because it relies too heavily on the system configuration on which the tests are ran and what activity is occurring on the system during test runs.<span id="more-5519"></span></p>
<p>Benchmarks and Ruby-haters not-withstanding you can get good performance from your Ruby applications by following a few simple guidelines.  Some of the guidelines are just good programming techniques in general and others are specific to addressing issues in the Ruby language and it&#8217;s associated libraries.  Performance gains achievable through the implementation of these tips and tricks can range from minimal to breathtaking.</p>
<p><strong>1. Don&#8217;t make your code do unnecessary work</strong></p>
<p>For experienced developers this may seem a no-brainer but even old hat coders have been known to slap a class together that might not exactly be the most efficient.  Write just enough code to do the job and do it correctly.  Don&#8217;t over complicate your algorithms and be sure not to do unnecessary things such as looping more than required.</p>
<p><strong>2. Avoid nesting loops more than three levels deep</strong></p>
<p>Nesting not only slows you code down but also can make maintenance of the codebase difficult if it goes too many levels deep.  Limiting nesting of loops and functions to three levels or less is a good rule of thumb to keep your code performant.</p>
<p><strong>3. Avoid unnecessary variable assignments</strong></p>
<p>Many people, especially new programmers, tend to assign variables more than necessary.  A great example is when someone defines a variable to store a return value and then returns that variable; just return the value directly.</p>
<p><strong>4. Reduce usage of disk I/O</strong></p>
<p>Disk I/O is one of the biggest bottlenecks remaining in computing.  Read/write operations to disk are extremely slow and it&#8217;s best to avoid using the disk whenever possible.  Many people are now using software such as memcached which allows data to be stored in memory and only periodically written to disk.  The speed increases when using a memory caching system are tremendous.</p>
<p><strong>5. Use Ruby Enterprise Edition</strong></p>
<p>Ruby Enterprise edition provides up to 33% lower memory usage.  In order to take advantage of these performance gains though you must be sure to program according to their guidelines.</p>
<p><strong>6. Avoid method calls as much as possible</strong></p>
<p>Method calls are very expensive operations and should be avoided when necessary.</p>
<p><strong>7. Use efficient Ruby idioms</strong></p>
<p>Program into the language rather than in the language.  Performance will suffer if you try to write your Ruby code like you would PHP, Perl, or any other language.  Learn the Ruby way of doing things.</p>
<p><strong>8. Use interpolated strings instead of concatenated strings</strong></p>
<p>Interpolated strings are faster than concatenated strings in almost all interpreted languages; Ruby is no exception.  Using the &lt;&lt; operator makes a method call which and method calls should be avoided when possible.</p>
<p>put &#8220;Hello there, #{name}!&#8221;</p>
<p>vs.</p>
<p>puts &#8220;Hello there, &#8221; &lt;&lt; name = &#8220;!&#8221;</p>
<p><strong>9. Destructive operations are faster</strong></p>
<p>Ruby&#8217;s in-place methods that modify the actual value instead of working on a copy of it are much faster, but be careful as they sometimes behave strangely (i.e., for!)</p>
<p><strong>10. Avoid unnecessary calls to uniq on arrays</strong></p>
<p>In many cases methods are already calling uniq on an array and there&#8217;s no need for you to call it yet again.</p>
<p><strong>11. For loops are faster than .each</strong></p>
<p>When you use .each you encounter per-request execution; for loops avoid this expensive operation.</p>
<p><strong>12. Use x.blank? over x.nil? || x.empty?</strong></p>
<p>When using ActionPack there&#8217;s no need for x.nil? or x.empty?; x.blank? checks for both of these.</p>
<p><strong>13. Avoid calls to parse_date and strftime</strong></p>
<p>Both of these are very expensive operations.  Use regular expressions when parsing out date/time components.</p>
<p><strong>14. Don&#8217;t use unnecessary block parameters</strong></p>
<p>If you won&#8217;t be using the parameter in the block don&#8217;t specify it in the parameter list.  Go through your code and ensure that any parameters declared are used or removed.</p>
<p><strong>15. Know your gems</strong></p>
<p>Not all libraries are created with performance in mind.  Many gems are slapped together to solve a particular problem that author was having.  Before you introduce a new gem into your performance-oriented production codebase be sure to perform thorough benchmarking and testing against other gems that perform the same tasks.</p>
<p><strong>16. Profile your code regularly</strong></p>
<p>If you profile you code regularly you&#8217;ll be able to tell if the latest change to the code will have an adverse effect on performance.  Integrate profiling into your testing process and make it automated to ensure that it&#8217;s not forgotten.  Like unit testing and BDD profiling goes a long way.</p>
<p><strong>17. Improve your algorithms before you try to improve your code</strong></p>
<p>Algorithmic improvements are almost always going to have more of an impact on the performance of your code than tweaks to the way your code is written will.  Make sure your algorithm is designed to be efficient and has no extraneous methods or calls.  Also, test for most frequent cases first and exit loops as soon as possible.</p>
<p><strong>18. Test the most frequently occurring case first</strong></p>
<p>When using if statements or a case statement always test the cases in the order that they occur most frequently.  This allows less code to run before a decision is made.  It may not seem like much but over several hundred or thousand runs through the decision logic you&#8217;ll notice a definite performance gain.</p>
<p><strong>19. Optimize the way you access global constants</strong></p>
<p>Be sure to precede a global constant with it&#8217;s namespace and the double colon operator (Namespace::constant_name) to reduce the time needed to query the library.</p>
<p><strong>20. Use explicit returns</strong></p>
<p>Although Ruby will automatically return the result of the last completed operation if no return value is provided you should use explicit return values.  Explicit returns are faster, especially in older Ruby versions such as 1.8.x.</p>
Share Now:<a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F08%2F20-ruby-performance-tips%2F&amp;title=20%20Ruby%20Performance%20Tips&amp;notes=A%20lot%20of%20bloggers%20and%20technologists%20like%20to%20talk%20about%20Ruby%20as%20if%20it%20can%27t%20perform%20on-par%20with%20other%20dynamic%2Finterpreted%20programming%20languages%3B%20however%2C%20these%20critics%20tend%20to%20rely%20on%20specific%20benchmarking%20techniques%20and%20ignore%20the%20overall%20performance" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F08%2F20-ruby-performance-tips%2F&amp;title=20%20Ruby%20Performance%20Tips&amp;bodytext=A%20lot%20of%20bloggers%20and%20technologists%20like%20to%20talk%20about%20Ruby%20as%20if%20it%20can%27t%20perform%20on-par%20with%20other%20dynamic%2Finterpreted%20programming%20languages%3B%20however%2C%20these%20critics%20tend%20to%20rely%20on%20specific%20benchmarking%20techniques%20and%20ignore%20the%20overall%20performance" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F08%2F20-ruby-performance-tips%2F&amp;t=20%20Ruby%20Performance%20Tips" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F08%2F20-ruby-performance-tips%2F&amp;title=20%20Ruby%20Performance%20Tips&amp;source=Uptime+%26amp%3B+Performance+Tips+Tips+for+SysAdmin%2C+Webmaster%2C+Network+Admin&amp;summary=A%20lot%20of%20bloggers%20and%20technologists%20like%20to%20talk%20about%20Ruby%20as%20if%20it%20can%27t%20perform%20on-par%20with%20other%20dynamic%2Finterpreted%20programming%20languages%3B%20however%2C%20these%20critics%20tend%20to%20rely%20on%20specific%20benchmarking%20techniques%20and%20ignore%20the%20overall%20performance" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F08%2F20-ruby-performance-tips%2F&amp;Title=20%20Ruby%20Performance%20Tips" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/blinklist.png" class="sociable-img sociable-hovers" title="BlinkList" alt="BlinkList" /></a><a rel="nofollow"   href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F08%2F20-ruby-performance-tips%2F&amp;title=20%20Ruby%20Performance%20Tips" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/dzone.png" class="sociable-img sociable-hovers" title="DZone" alt="DZone" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F08%2F20-ruby-performance-tips%2F&amp;title=20%20Ruby%20Performance%20Tips&amp;annotation=A%20lot%20of%20bloggers%20and%20technologists%20like%20to%20talk%20about%20Ruby%20as%20if%20it%20can%27t%20perform%20on-par%20with%20other%20dynamic%2Finterpreted%20programming%20languages%3B%20however%2C%20these%20critics%20tend%20to%20rely%20on%20specific%20benchmarking%20techniques%20and%20ignore%20the%20overall%20performance" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="http://reddit.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F08%2F20-ruby-performance-tips%2F&amp;title=20%20Ruby%20Performance%20Tips" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/reddit.png" class="sociable-img sociable-hovers" title="Reddit" alt="Reddit" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F08%2F20-ruby-performance-tips%2F&amp;title=20%20Ruby%20Performance%20Tips" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://twitter.com/home?status=20%20Ruby%20Performance%20Tips%20-%20http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F08%2F20-ruby-performance-tips%2F" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://blog.monitis.com/index.php/feed/" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.monitis.com/index.php/2012/02/08/20-ruby-performance-tips/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Network Bandwidth Monitoring Made Easy</title>
		<link>http://blog.monitis.com/index.php/2012/02/07/network-bandwidth-monitoring-made-easy/</link>
		<comments>http://blog.monitis.com/index.php/2012/02/07/network-bandwidth-monitoring-made-easy/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 09:14:04 +0000</pubDate>
		<dc:creator>Ard-Jan Barnas</dc:creator>
				<category><![CDATA[Monitoring Scripts]]></category>
		<category><![CDATA[Network Monitoring]]></category>
		<category><![CDATA[Windows Networking]]></category>
		<category><![CDATA[Windows Servers Monitoring]]></category>
		<category><![CDATA[Bandwidth Monitoring]]></category>
		<category><![CDATA[network throughput]]></category>

		<guid isPermaLink="false">http://blog.monitis.com/?p=5209</guid>
		<description><![CDATA[In this article we’ll create a Monitis custom monitor to measure your network bandwidth or throughput. The monitor will support multiple network adapters and should be intelligent enough to only collect results for the network adapters that are active. First, let’s take a look at the performance counters we used for this monitor and the [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-4283" title="logo" src="http://blog.monitis.com/wp-content/uploads/2011/11/logo.png" alt="" width="187" height="74" /><span style="font-size: small;">In this article we’ll create a Monitis custom monitor to measure your network bandwidth or throughput. The monitor will support multiple network adapters and should be intelligent enough to only collect results for the network adapters that are active.</span></p>
<p>First, let’s take a look at the performance counters we used for this monitor and the information each metric provides.<span id="more-5209"></span></p>
<h3>Metrics</h3>
<table class="MsoNormalTable" width="100%" border="0" cellpadding="0">
<tbody>
<tr>
<td style="padding: 0.75pt;" valign="top" width="33.88%">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span>BytesReceivedPersec </span></strong></p>
</td>
<td style="padding: 0.75pt;" valign="top" width="65.18%">
<p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 0pt;"><span>Bytes Received/sec is the rate at which bytes are received over each network adapter, including framing characters. </span></p>
</td>
</tr>
<tr>
<td style="padding: 0.75pt;" colspan="2" valign="top" width="99.36%"></td>
</tr>
<tr>
<td style="padding: 0.75pt;" valign="top" width="33.88%">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span>BytesSentPersec</span></strong></p>
</td>
<td style="padding: 0.75pt;" valign="top" width="65.18%">
<p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 0pt;"><span>Bytes Sent/sec is the rate at which bytes are sent over each network adapter, including framing characters. </span></p>
</td>
</tr>
<tr>
<td style="padding: 0.75pt;" colspan="2" valign="top" width="99.36%"></td>
</tr>
<tr>
<td style="padding: 0.75pt;" valign="top" width="33.88%">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span>BytesTotalPersec</span></strong></p>
</td>
<td style="padding: 0.75pt;" valign="top" width="65.18%">
<p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 0pt;"><span>Bytes Total/sec is the rate at which bytes are sent and received over each network adapter, including framing characters. </span></p>
</td>
</tr>
<tr>
<td style="padding: 0.75pt;" colspan="2" valign="top" width="99.36%"></td>
</tr>
<tr>
<td style="padding: 0.75pt;" colspan="2" valign="top" width="99.36%"></td>
</tr>
<tr>
<td style="padding: 0.75pt;" valign="top" width="33.88%">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span>PacketsOutboundDiscarded</span></strong></p>
</td>
<td style="padding: 0.75pt;" valign="top" width="65.18%">
<p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 0pt;"><span>Packets Outbound Discarded is the number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent transmission. One possible reason for discarding packets could be to free up buffer space.</span></p>
</td>
</tr>
<tr>
<td style="padding: 0.75pt;" colspan="2" valign="top" width="99.36%"></td>
</tr>
<tr>
<td style="padding: 0.75pt;" valign="top" width="33.88%">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span>PacketsOutboundErrors</span></strong></p>
</td>
<td style="padding: 0.75pt;" valign="top" width="65.18%">
<p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 0pt;"><span>Packets Outbound Errors is the number of outbound packets that could not be transmitted because of errors.</span></p>
</td>
</tr>
<tr>
<td style="padding: 0.75pt;" colspan="2" valign="top" width="99.36%"></td>
</tr>
<tr>
<td style="padding: 0.75pt;" valign="top" width="33.88%">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span>PacketsPersec</span></strong></p>
</td>
<td style="padding: 0.75pt;" valign="top" width="65.18%">
<p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 0pt;"><span>Packets/sec is the rate at which packets are sent and received on the network interface.</span></p>
</td>
</tr>
<tr>
<td style="padding: 0.75pt;" colspan="2" valign="top" width="99.36%"></td>
</tr>
<tr>
<td style="padding: 0.75pt;" valign="top" width="33.88%">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span>PacketsReceivedDiscarded</span></strong></p>
</td>
<td style="padding: 0.75pt;" valign="top" width="65.18%">
<p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 0pt;"><span>Packets Received Discarded is the number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their delivery to a higher-layer protocol. One possible reason for discarding packets could be to free up buffer space.</span></p>
</td>
</tr>
<tr>
<td style="padding: 0.75pt;" colspan="2" valign="top" width="99.36%"></td>
</tr>
<tr>
<td style="padding: 0.75pt;" valign="top" width="33.88%">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span>PacketsReceivedErrors</span></strong></p>
</td>
<td style="padding: 0.75pt;" valign="top" width="65.18%">
<p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 0pt;"><span>Packets Received Errors is the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol.</span></p>
</td>
</tr>
<tr>
<td style="padding: 0.75pt;" colspan="2" valign="top" width="99.36%"></td>
</tr>
<tr>
<td style="padding: 0.75pt;" valign="top" width="33.88%">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span>PacketsReceivedPersec</span></strong></p>
</td>
<td style="padding: 0.75pt;" valign="top" width="65.18%">
<p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 0pt;"><span>Packets Received/sec is the rate at which packets are received on the network interface.</span></p>
</td>
</tr>
<tr>
<td style="padding: 0.75pt;" colspan="2" valign="top" width="99.36%"></td>
</tr>
<tr>
<td style="padding: 0.75pt;" valign="top" width="33.88%">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span>PacketsSentPersec</span></strong></p>
</td>
<td style="padding: 0.75pt;" valign="top" width="65.18%">
<p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 0pt;"><span>Packets Sent/sec is the rate at which packets are sent on the network interface.</span></p>
</td>
</tr>
</tbody>
</table>
<h3></h3>
<h3>Source Code</h3>
<p>The complete source code can be downloaded from Git. We’ll go over the parts of the source code that create the monitor and add the data.</p>
<p><strong>Total Throughput Monitors</strong></p>
<p>In the snippet below the monitor name is provided and the parameters are defined. The TotalBytesThroughput represents the sum of all network adapters’ throughput. The Total Packets/Sec monitor is the sum of all network adapters’ packet counters. The function “AddCustMon” adds the monitor to the dashboard using the standard Monitis API calls.</p>
<p><code><div id="gist-1696401" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="c">&#39;Total Bytes Troughput</span></div><div class='line' id='LC2'><span class="n">Row</span> <span class="o">=</span> <span class="mi">1</span> <span class="p">:</span> <span class="n">Column</span> <span class="o">=</span> <span class="mi">1</span></div><div class='line' id='LC3'><span class="n">MonitorName</span> <span class="o">=</span> <span class="s">&quot;Total+Bytes+Throughput&quot;</span></div><div class='line' id='LC4'><span class="n">monitorParams</span> <span class="o">=</span> <span class="s">&quot;Total+Bytes+Throughput:Bandwidth:Bandwidth:3:false;&quot;</span></div><div class='line' id='LC5'><span class="n">resultParams</span> <span class="o">=</span> <span class="s">&quot;TotalBytesReceivedPerSec:Received/Sec:N%2FA:2;TotalBytesSentPerSec:Sent/Sec:N%2FA:2;TotalBytesTotalPerSec:Total/Sec:N%2FA:2;&quot;</span></div><div class='line' id='LC6'><span class="n">AddCustMon</span></div><div class='line' id='LC7'><br/></div><div class='line' id='LC8'><span class="c">&#39;Total Packets/Sec</span></div><div class='line' id='LC9'><span class="n">Row</span> <span class="o">=</span> <span class="mi">1</span> <span class="p">:</span> <span class="n">Column</span> <span class="o">=</span> <span class="mi">2</span></div><div class='line' id='LC10'><span class="n">MonitorName</span> <span class="o">=</span> <span class="s">&quot;Total+Packets&quot;</span></div><div class='line' id='LC11'><span class="n">monitorParams</span> <span class="o">=</span> <span class="s">&quot;Total+PacketsPerSec:Packets:Packets/Sec:3:false;&quot;</span></div><div class='line' id='LC12'><span class="n">resultParams</span> <span class="o">=</span> <span class="s">&quot;TotalPacketsReceived:Received/Sec:N%2FA:2;TotalPacketsSent:Sent/Sec:N%2FA:2;TotalPacketsPerSec:Packets/Sec:N%2FA:2;TotalPacketsReceivedDiscarded:Discarded:N%2FA:2;TotalPacketsReceivedError:Error:N%2FA:2;&quot;</span></div><div class='line' id='LC13'><span class="n">AddCustMon</span></div><div class='line' id='LC14'><br/></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/1696401/d81313423538c56586b011199a637cecffd6c612/AddCustomBandwidthMonitor.vbs" style="float:right;">view raw</a>
            <a href="https://gist.github.com/1696401#file_add_custom_bandwidth_monitor.vbs" style="float:right;margin-right:10px;color:#666">AddCustomBandwidthMonitor.vbs</a>
            <a href="https://gist.github.com/1696401">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>
</code></p>
<p>&nbsp;</p>
<p><strong>Individual Network Adapter Monitors </strong></p>
<p>Next we need to add the two monitors for each network adapter in our system. We query the Win32_NetworkAdapterConfiguraiton object to only retrieve those adapters with a valid TCP/IP configuration. This will prevent inactive network connections from being added to the dashboard. We also need to name the monitors using the unique name of the network adapter so we can address the correct adapter when adding data.</p>
<p><code><div id="gist-1696441" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="k">Set</span> <span class="n">colConfs</span> <span class="o">=</span> <span class="n">objWMI</span><span class="p">.</span><span class="n">ExecQuery</span><span class="p">(</span><span class="s">&quot;SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True&quot;</span><span class="p">)</span></div><div class='line' id='LC2'><span class="k">For</span> <span class="k">Each</span> <span class="n">objConf</span> <span class="ow">in</span> <span class="n">colConfs</span> </div><div class='line' id='LC3'>	<span class="n">strAdapterName</span> <span class="o">=</span> <span class="n">GetAdapterName</span><span class="p">(</span><span class="n">objConf</span><span class="p">.</span><span class="n">Caption</span><span class="p">)</span></div><div class='line' id='LC4'>	<span class="n">strIPAddress</span> <span class="o">=</span> <span class="n">GetMultiString_FromArray</span><span class="p">(</span><span class="n">objConf</span><span class="p">.</span><span class="n">IPAddress</span><span class="p">,</span> <span class="s">&quot;, &quot;</span><span class="p">)</span></div><div class='line' id='LC5'><br/></div><div class='line' id='LC6'>	<span class="k">Set</span> <span class="n">colNetAdapters</span> <span class="o">=</span> <span class="n">objWMI</span><span class="p">.</span><span class="n">ExecQuery</span><span class="p">(</span><span class="s">&quot;Select * From Win32_NetworkAdapter WHERE Caption = &#39;&quot;</span> <span class="o">&amp;</span> <span class="n">objConf</span><span class="p">.</span><span class="n">Caption</span> <span class="o">&amp;</span> <span class="s">&quot;&#39;&quot;</span><span class="p">)</span></div><div class='line' id='LC7'>	<span class="k">For</span> <span class="k">Each</span> <span class="n">objAdapter</span> <span class="ow">In</span> <span class="n">colNetAdapters</span></div><div class='line' id='LC8'><br/></div><div class='line' id='LC9'>		<span class="n">WScript</span><span class="p">.</span><span class="n">Echo</span> <span class="s">&quot;Adding monitor for network connection: &quot;</span> <span class="o">&amp;</span> <span class="n">objAdapter</span><span class="p">.</span><span class="n">NetConnectionID</span></div><div class='line' id='LC10'><br/></div><div class='line' id='LC11'>		<span class="c">&#39;Bandwidth and Bytes</span></div><div class='line' id='LC12'>		<span class="n">Column</span> <span class="o">=</span> <span class="mi">1</span></div><div class='line' id='LC13'>		<span class="n">MonitorName</span> <span class="o">=</span> <span class="s">&quot;Bytes+Throughput:+&quot;</span> <span class="o">&amp;</span> <span class="n">Replace</span><span class="p">(</span><span class="n">objAdapter</span><span class="p">.</span><span class="n">NetConnectionID</span><span class="p">,</span> <span class="s">&quot; &quot;</span><span class="p">,</span> <span class="s">&quot;+&quot;</span><span class="p">)</span></div><div class='line' id='LC14'>		<span class="n">monitorParams</span> <span class="o">=</span> <span class="s">&quot;Bandwidth:Bytes+Throughput:Bytes+Throughput:3:false;&quot;</span></div><div class='line' id='LC15'>		<span class="n">resultParams</span> <span class="o">=</span> <span class="s">&quot;BytesReceivedPerSec:Received/Sec:N%2FA:2;BytesSentPerSec:Sent/Sec:N%2FA:2;BytesTotalPerSec:Total/Sec:N%2FA:2;&quot;</span></div><div class='line' id='LC16'>		<span class="n">AddCustMon</span></div><div class='line' id='LC17'><br/></div><div class='line' id='LC18'>		<span class="c">&#39;Packets/Sec</span></div><div class='line' id='LC19'>		<span class="n">Column</span> <span class="o">=</span> <span class="mi">2</span></div><div class='line' id='LC20'>		<span class="n">MonitorName</span> <span class="o">=</span> <span class="s">&quot;Packets:+&quot;</span> <span class="o">&amp;</span> <span class="n">Replace</span><span class="p">(</span><span class="n">objAdapter</span><span class="p">.</span><span class="n">NetConnectionID</span><span class="p">,</span> <span class="s">&quot; &quot;</span><span class="p">,</span> <span class="s">&quot;+&quot;</span><span class="p">)</span></div><div class='line' id='LC21'>		<span class="n">monitorParams</span> <span class="o">=</span> <span class="s">&quot;PacketsPerSec:Packets:Packets/Sec:3:false;&quot;</span></div><div class='line' id='LC22'>		<span class="n">resultParams</span> <span class="o">=</span> <span class="s">&quot;PacketsReceivedPerSec:Received/Sec:N%2FA:2;PacketsSentPerSec:Sent/Sec:N%2FA:2;TotalPacketsPerSec:Packets/Sec:N%2FA:2;PacketsReceivedDiscarded:Discarded:N%2FA:2;PacketsReceivedError:Error:N%2FA:2;&quot;</span></div><div class='line' id='LC23'>		<span class="n">AddCustMon</span></div><div class='line' id='LC24'><br/></div><div class='line' id='LC25'>		<span class="c">&#39;Make sure we add the monitor on the correct row and column</span></div><div class='line' id='LC26'>		<span class="n">Row</span> <span class="o">=</span> <span class="n">Row</span> <span class="o">+</span> <span class="mi">1</span></div><div class='line' id='LC27'>	<span class="k">Next</span></div><div class='line' id='LC28'><span class="k">Next</span></div><div class='line' id='LC29'><br/></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/1696441/26963102a5abf86c6eb5672b27560a3ca51a9d74/AddCustomAdapterMonitor.vbs" style="float:right;">view raw</a>
            <a href="https://gist.github.com/1696441#file_add_custom_adapter_monitor.vbs" style="float:right;margin-right:10px;color:#666">AddCustomAdapterMonitor.vbs</a>
            <a href="https://gist.github.com/1696441">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>
</code></p>
<h4> Pushing Data to the Monitors</h4>
<p>Now that we have the monitor definitions added to the dashboard, it’s time to add the actual performance counter data to them.</p>
<p>First we initialize our variables to calculate the total throughput and total packets for all adapters. Then we loop through each network adapter in similar fashion as we did before and retrieve the metrics from the WMI class Win32_NetworkAdapter.</p>
<p>The metrics for each adapter are pushed to the custom monitor on the dashboard and we make sure to add the individual adapter metrics to the total counters. Once we’ve looped through all adapters, we push the calculated totals to the summary counters.</p>
<p><code><div id="gist-1696447" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="k">Function</span> <span class="nf">GetNetworkData</span></div><div class='line' id='LC2'>	<span class="c">&#39;Clear total counters</span></div><div class='line' id='LC3'>	<span class="n">TotalBytesReceivedPerSec</span> <span class="o">=</span> <span class="mi">0</span></div><div class='line' id='LC4'>	<span class="n">TotalBytesSentPerSec</span> <span class="o">=</span> <span class="mi">0</span></div><div class='line' id='LC5'>	<span class="n">TotalBytesTotalPerSec</span> <span class="o">=</span> <span class="mi">0</span></div><div class='line' id='LC6'>	<span class="n">TotalPacketsReceivedPerSec</span> <span class="o">=</span> <span class="mi">0</span></div><div class='line' id='LC7'>	<span class="n">TotalPacketsSentPerSec</span> <span class="o">=</span> <span class="mi">0</span></div><div class='line' id='LC8'>	<span class="n">TotalPacketsReceivedDiscarded</span> <span class="o">=</span> <span class="mi">0</span></div><div class='line' id='LC9'>	<span class="n">TotalPacketsReceivedError</span> <span class="o">=</span> <span class="mi">0</span></div><div class='line' id='LC10'>	<span class="n">TotalPacketsSentDiscarded</span> <span class="o">=</span> <span class="mi">0</span></div><div class='line' id='LC11'><br/></div><div class='line' id='LC12'>	<span class="k">Set</span> <span class="n">colNetAdapters</span> <span class="o">=</span> <span class="n">objWMIService</span><span class="p">.</span><span class="n">ExecQuery</span><span class="p">(</span><span class="s">&quot;Select * From Win32_NetworkAdapter&quot;</span><span class="p">)</span> <span class="c">&#39; WHERE Caption = &#39;&quot; &amp; objConf.Caption &amp; &quot;&#39;&quot;)</span></div><div class='line' id='LC13'>	<span class="k">For</span> <span class="k">Each</span> <span class="n">objAdapter</span> <span class="ow">In</span> <span class="n">colNetAdapters</span></div><div class='line' id='LC14'><br/></div><div class='line' id='LC15'>		<span class="n">strAdapterName</span> <span class="o">=</span> <span class="n">GetAdapterName</span><span class="p">(</span><span class="n">objAdapter</span><span class="p">.</span><span class="n">Name</span><span class="p">)</span></div><div class='line' id='LC16'><br/></div><div class='line' id='LC17'>		<span class="c">&#39;Handle the bandwidth and bytes counters</span></div><div class='line' id='LC18'>		<span class="n">MonitorName</span> <span class="o">=</span> <span class="s">&quot;Bytes Throughput: &quot;</span> <span class="o">+</span> <span class="n">objAdapter</span><span class="p">.</span><span class="n">NetConnectionID</span></div><div class='line' id='LC19'>		<span class="n">MonitorID</span> <span class="o">=</span> <span class="n">FindMonitorID</span><span class="p">(</span><span class="n">MonitorName</span><span class="p">)</span></div><div class='line' id='LC20'><br/></div><div class='line' id='LC21'>		<span class="k">If</span> <span class="n">Trim</span><span class="p">(</span><span class="n">MonitorID</span><span class="p">)</span> <span class="o">&lt;&gt;</span> <span class="s">&quot;&quot;</span> <span class="k">Then</span></div><div class='line' id='LC22'>			<span class="k">For</span> <span class="k">Each</span> <span class="n">objItem</span> <span class="ow">in</span> <span class="n">objNetworkData</span></div><div class='line' id='LC23'>				<span class="n">strPerfDataName</span> <span class="o">=</span> <span class="n">GetAdapterName</span><span class="p">(</span><span class="n">objItem</span><span class="p">.</span><span class="n">Name</span><span class="p">)</span></div><div class='line' id='LC24'><br/></div><div class='line' id='LC25'>				<span class="n">WScript</span><span class="p">.</span><span class="n">Echo</span> <span class="n">strPerfDataName</span> <span class="o">&amp;</span> <span class="s">&quot; - &quot;</span> <span class="o">&amp;</span> <span class="n">GetAdapterName</span><span class="p">(</span><span class="n">objItem</span><span class="p">.</span><span class="n">Name</span><span class="p">)</span></div><div class='line' id='LC26'><br/></div><div class='line' id='LC27'>				<span class="k">If</span> <span class="n">strPerfDataName</span> <span class="o">=</span> <span class="n">strAdapterName</span> <span class="k">Then</span></div><div class='line' id='LC28'>					<span class="n">Wscript</span><span class="p">.</span><span class="n">echo</span> <span class="s">&quot;Name: &quot;</span> <span class="o">&amp;</span> <span class="n">strPerfDataName</span></div><div class='line' id='LC29'>					<span class="n">Wscript</span><span class="p">.</span><span class="n">Echo</span> <span class="s">&quot;Bytes Received/Sec: &quot;</span> <span class="o">&amp;</span> <span class="n">objItem</span><span class="p">.</span><span class="n">BytesReceivedPersec</span></div><div class='line' id='LC30'>					<span class="n">Wscript</span><span class="p">.</span><span class="n">Echo</span> <span class="s">&quot;Bytes Sent/Sec: &quot;</span> <span class="o">&amp;</span> <span class="n">objItem</span><span class="p">.</span><span class="n">BytesSentPersec</span></div><div class='line' id='LC31'>					<span class="n">Wscript</span><span class="p">.</span><span class="n">Echo</span> <span class="s">&quot;Bytes Total/Sec: &quot;</span> <span class="o">&amp;</span> <span class="n">objItem</span><span class="p">.</span><span class="n">BytesTotalPersec</span></div><div class='line' id='LC32'><br/></div><div class='line' id='LC33'>					<span class="n">Results</span> <span class="o">=</span> <span class="s">&quot;BytesTotalPerSec:&quot;</span> <span class="o">&amp;</span> <span class="k">CStr</span><span class="p">(</span><span class="n">objItem</span><span class="p">.</span><span class="n">BytesTotalPerSec</span><span class="p">)</span> <span class="o">&amp;</span> <span class="n">_</span></div><div class='line' id='LC34'>							  <span class="s">&quot;;BytesReceivedPerSec:&quot;</span> <span class="o">&amp;</span> <span class="k">CStr</span><span class="p">(</span><span class="n">objItem</span><span class="p">.</span><span class="n">BytesReceivedPerSec</span><span class="p">)</span> <span class="o">&amp;</span> <span class="n">_</span>		</div><div class='line' id='LC35'>							  <span class="s">&quot;;BytesSentPerSec:&quot;</span> <span class="o">&amp;</span> <span class="k">CStr</span><span class="p">(</span><span class="n">objItem</span><span class="p">.</span><span class="n">BytesSentPerSec</span><span class="p">)</span>		</div><div class='line' id='LC36'>					<span class="n">AddResult</span></div><div class='line' id='LC37'><br/></div><div class='line' id='LC38'>					<span class="c">&#39;Accumulate Totals</span></div><div class='line' id='LC39'>					<span class="n">TotalBytesReceivedPerSec</span> <span class="o">=</span> <span class="n">TotalBytesReceivedPerSec</span> <span class="o">+</span> <span class="n">objItem</span><span class="p">.</span><span class="n">BytesReceivedPerSec</span></div><div class='line' id='LC40'>					<span class="n">TotalBytesSentPerSec</span> <span class="o">=</span> <span class="n">TotalBytesSentPerSec</span> <span class="o">+</span> <span class="n">objItem</span><span class="p">.</span><span class="n">BytesSentPerSec</span></div><div class='line' id='LC41'>					<span class="n">TotalBytesTotalPerSec</span> <span class="o">=</span> <span class="n">TotalBytesTotalPerSec</span> <span class="o">+</span> <span class="n">objItem</span><span class="p">.</span><span class="n">BytesTotalPerSec</span></div><div class='line' id='LC42'>				<span class="k">End</span> <span class="k">If</span></div><div class='line' id='LC43'>			<span class="k">Next</span></div><div class='line' id='LC44'>		<span class="k">End</span> <span class="k">If</span></div><div class='line' id='LC45'><br/></div><div class='line' id='LC46'>		<span class="c">&#39;Handle the packet counters</span></div><div class='line' id='LC47'>		<span class="n">MonitorName</span> <span class="o">=</span> <span class="s">&quot;Packets: &quot;</span> <span class="o">&amp;</span> <span class="n">objAdapter</span><span class="p">.</span><span class="n">NetConnectionID</span></div><div class='line' id='LC48'>		<span class="n">MonitorID</span> <span class="o">=</span> <span class="n">FindMonitorID</span><span class="p">(</span><span class="n">MonitorName</span><span class="p">)</span></div><div class='line' id='LC49'>		<span class="k">If</span> <span class="n">Trim</span><span class="p">(</span><span class="n">MonitorID</span><span class="p">)</span> <span class="o">&lt;&gt;</span> <span class="s">&quot;&quot;</span> <span class="k">Then</span></div><div class='line' id='LC50'>			<span class="k">For</span> <span class="k">Each</span> <span class="n">objItem</span> <span class="ow">in</span> <span class="n">objNetworkData</span></div><div class='line' id='LC51'>				<span class="n">strPerfDataName</span> <span class="o">=</span> <span class="n">GetAdapterName</span><span class="p">(</span><span class="n">objItem</span><span class="p">.</span><span class="n">Name</span><span class="p">)</span></div><div class='line' id='LC52'><br/></div><div class='line' id='LC53'>				<span class="n">WScript</span><span class="p">.</span><span class="n">Echo</span> <span class="n">strPerfDataName</span> <span class="o">&amp;</span> <span class="s">&quot; - &quot;</span> <span class="o">&amp;</span> <span class="n">GetAdapterName</span><span class="p">(</span><span class="n">objItem</span><span class="p">.</span><span class="n">Name</span><span class="p">)</span></div><div class='line' id='LC54'><br/></div><div class='line' id='LC55'>				<span class="k">If</span> <span class="n">strPerfDataName</span> <span class="o">=</span> <span class="n">strAdapterName</span> <span class="k">Then</span></div><div class='line' id='LC56'><br/></div><div class='line' id='LC57'>					<span class="n">Wscript</span><span class="p">.</span><span class="n">echo</span> <span class="s">&quot;Name: &quot;</span> <span class="o">&amp;</span> <span class="n">strPerfDataName</span></div><div class='line' id='LC58'>					<span class="n">Wscript</span><span class="p">.</span><span class="n">Echo</span> <span class="s">&quot;Packets Received/Sec: &quot;</span> <span class="o">&amp;</span> <span class="n">objItem</span><span class="p">.</span><span class="n">PacketsReceivedPersec</span></div><div class='line' id='LC59'>					<span class="n">Wscript</span><span class="p">.</span><span class="n">Echo</span> <span class="s">&quot;Packets Sent/Sec : &quot;</span> <span class="o">&amp;</span> <span class="n">objItem</span><span class="p">.</span><span class="n">PacketsSentPersec</span></div><div class='line' id='LC60'><br/></div><div class='line' id='LC61'>					<span class="n">Results</span> <span class="o">=</span> <span class="s">&quot;PacketsReceivedPerSec:&quot;</span> <span class="o">&amp;</span> <span class="k">CStr</span><span class="p">(</span><span class="n">objItem</span><span class="p">.</span><span class="n">PacketsReceivedPersec</span><span class="p">)</span> <span class="o">&amp;</span> <span class="n">_</span></div><div class='line' id='LC62'>							  <span class="s">&quot;;PacketsSentPerSec:&quot;</span> <span class="o">&amp;</span> <span class="k">CStr</span><span class="p">(</span><span class="n">objItem</span><span class="p">.</span><span class="n">PacketsSentPersec</span><span class="p">)</span> <span class="o">&amp;</span> <span class="n">_</span></div><div class='line' id='LC63'>							  <span class="s">&quot;;PacketsReceivedDiscarded:&quot;</span> <span class="o">&amp;</span> <span class="k">CStr</span><span class="p">(</span><span class="n">objItem</span><span class="p">.</span><span class="n">PacketsReceivedDiscarded</span><span class="p">)</span> <span class="o">&amp;</span> <span class="n">_</span></div><div class='line' id='LC64'>							  <span class="s">&quot;;PacketsReceivedError:&quot;</span> <span class="o">&amp;</span> <span class="k">CStr</span><span class="p">(</span><span class="n">objItem</span><span class="p">.</span><span class="n">PacketsReceivedErrors</span><span class="p">)</span> <span class="o">&amp;</span> <span class="n">_</span></div><div class='line' id='LC65'>							  <span class="s">&quot;;TotalPacketsPerSec:&quot;</span> <span class="o">&amp;</span> <span class="k">CStr</span><span class="p">(</span><span class="n">objItem</span><span class="p">.</span><span class="n">PacketsPerSec</span><span class="p">)</span></div><div class='line' id='LC66'>					<span class="n">AddResult</span></div><div class='line' id='LC67'><br/></div><div class='line' id='LC68'>					<span class="c">&#39;Accumulate Totals</span></div><div class='line' id='LC69'>					<span class="n">TotalPacketsReceivedPerSec</span> <span class="o">=</span> <span class="n">TotalPacketsReceivedPerSec</span> <span class="o">+</span> <span class="n">objItem</span><span class="p">.</span><span class="n">PacketsReceivedPersec</span></div><div class='line' id='LC70'>					<span class="n">TotalPacketsSentPerSec</span> <span class="o">=</span> <span class="n">TotalPacketsSentPerSec</span> <span class="o">+</span> <span class="n">objItem</span><span class="p">.</span><span class="n">PacketsSentPersec</span></div><div class='line' id='LC71'>					<span class="n">TotalPacketsReceivedDiscarded</span> <span class="o">=</span> <span class="n">TotalPacketsReceivedDiscarded</span> <span class="o">+</span> <span class="n">objItem</span><span class="p">.</span><span class="n">PacketsReceivedDiscarded</span></div><div class='line' id='LC72'>					<span class="n">TotalPacketsReceivedError</span> <span class="o">=</span> <span class="n">TotalPacketsReceivedError</span> <span class="o">+</span> <span class="n">objItem</span><span class="p">.</span><span class="n">PacketsReceivedErrors</span></div><div class='line' id='LC73'>					<span class="n">TotalPacketsPerSec</span> <span class="o">=</span> <span class="n">TotalPacketsPerSec</span> <span class="o">+</span> <span class="n">objItem</span><span class="p">.</span><span class="n">PacketsPerSec</span></div><div class='line' id='LC74'><br/></div><div class='line' id='LC75'>				<span class="k">End</span> <span class="k">If</span></div><div class='line' id='LC76'>			<span class="k">Next</span></div><div class='line' id='LC77'>		<span class="k">End</span> <span class="k">If</span></div><div class='line' id='LC78'><br/></div><div class='line' id='LC79'>	<span class="k">Next</span></div><div class='line' id='LC80'><br/></div><div class='line' id='LC81'><br/></div><div class='line' id='LC82'>	<span class="c">&#39;Add Total results to the monitor</span></div><div class='line' id='LC83'>	<span class="n">MonitorName</span> <span class="o">=</span> <span class="s">&quot;Total Bytes Throughput&quot;</span></div><div class='line' id='LC84'>	<span class="n">MonitorID</span> <span class="o">=</span> <span class="n">FindMonitorID</span><span class="p">(</span><span class="n">MonitorName</span><span class="p">)</span></div><div class='line' id='LC85'>	<span class="k">If</span> <span class="n">Trim</span><span class="p">(</span><span class="n">MonitorID</span><span class="p">)</span> <span class="o">&lt;&gt;</span> <span class="s">&quot;&quot;</span> <span class="k">Then</span></div><div class='line' id='LC86'>		<span class="n">Results</span> <span class="o">=</span> <span class="s">&quot;TotalBytesTotalPerSec:&quot;</span> <span class="o">&amp;</span> <span class="k">CStr</span><span class="p">(</span><span class="n">TotalBytesTotalPerSec</span><span class="p">)</span> <span class="o">&amp;</span> <span class="n">_</span></div><div class='line' id='LC87'>				  <span class="s">&quot;;TotalBytesReceivedPerSec:&quot;</span> <span class="o">&amp;</span> <span class="k">CStr</span><span class="p">(</span><span class="n">TotalBytesReceivedPerSec</span><span class="p">)</span> <span class="o">&amp;</span> <span class="n">_</span>		</div><div class='line' id='LC88'>				  <span class="s">&quot;;TotalBytesSentPerSec:&quot;</span> <span class="o">&amp;</span> <span class="k">CStr</span><span class="p">(</span><span class="n">TotalBytesSentPerSec</span><span class="p">)</span>	</div><div class='line' id='LC89'>		<span class="n">AddResult</span></div><div class='line' id='LC90'>	<span class="k">End</span> <span class="k">If</span></div><div class='line' id='LC91'><br/></div><div class='line' id='LC92'>	<span class="n">MonitorName</span> <span class="o">=</span> <span class="s">&quot;Total Packets&quot;</span></div><div class='line' id='LC93'>	<span class="n">MonitorID</span> <span class="o">=</span> <span class="n">FindMonitorID</span><span class="p">(</span><span class="n">MonitorName</span><span class="p">)</span></div><div class='line' id='LC94'>	<span class="k">If</span> <span class="n">Trim</span><span class="p">(</span><span class="n">MonitorID</span><span class="p">)</span> <span class="o">&lt;&gt;</span> <span class="s">&quot;&quot;</span> <span class="k">Then</span></div><div class='line' id='LC95'>		<span class="n">Results</span> <span class="o">=</span> <span class="s">&quot;TotalPacketsReceived:&quot;</span> <span class="o">&amp;</span> <span class="k">CStr</span><span class="p">(</span><span class="n">TotalPacketsReceivedPerSec</span><span class="p">)</span> <span class="o">&amp;</span> <span class="n">_</span></div><div class='line' id='LC96'>				  <span class="s">&quot;;TotalPacketsSent:&quot;</span> <span class="o">&amp;</span> <span class="k">CStr</span><span class="p">(</span><span class="n">TotalPacketsSentPerSec</span><span class="p">)</span> <span class="o">&amp;</span> <span class="n">_</span></div><div class='line' id='LC97'>				  <span class="s">&quot;;TotalPacketsReceivedDiscarded:&quot;</span> <span class="o">&amp;</span> <span class="k">CStr</span><span class="p">(</span><span class="n">TotalPacketsReceivedDiscarded</span><span class="p">)</span> <span class="o">&amp;</span> <span class="n">_</span></div><div class='line' id='LC98'>				  <span class="s">&quot;;TotalPacketsReceivedErrors:&quot;</span> <span class="o">&amp;</span> <span class="k">CStr</span><span class="p">(</span><span class="n">TotalPacketsReceivedError</span><span class="p">)</span> <span class="o">&amp;</span> <span class="n">_</span></div><div class='line' id='LC99'>				  <span class="s">&quot;;TotalPacketsPerSec:&quot;</span> <span class="o">&amp;</span> <span class="k">CStr</span><span class="p">(</span><span class="n">TotalPacketsPerSec</span><span class="p">)</span></div><div class='line' id='LC100'>		<span class="n">AddResult</span></div><div class='line' id='LC101'>	<span class="k">End</span> <span class="k">If</span>		</div><div class='line' id='LC102'><br/></div><div class='line' id='LC103'><span class="k">End</span> <span class="k">Function</span></div><div class='line' id='LC104'><br/></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/1696447/65b14eba86b05fb33c323462bf4acc90daf2f47c/PushDataBandwithMonitor.vbs" style="float:right;">view raw</a>
            <a href="https://gist.github.com/1696447#file_push_data_bandwith_monitor.vbs" style="float:right;margin-right:10px;color:#666">PushDataBandwithMonitor.vbs</a>
            <a href="https://gist.github.com/1696447">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>
</code></p>
<h3> Installing the monitor</h3>
<p>After you downloaded the code from Git, you can install the custom monitor by executing the following command from a command window:</p>
<p><em>Cscript AddCustomBandwidthMonitor.vbs</em></p>
<p><a href="http://blog.monitis.com/wp-content/uploads/2012/01/clip_image001.png"><img style="padding-left: 0px; padding-right: 0px; padding-top: 0px; border: 0px;" src="http://blog.monitis.com/wp-content/uploads/2012/01/clip_image001_thumb.png" alt="clip_image001" width="647" height="207" border="0" /></a></p>
<p>This command creates a new monitor page on the Monitis dashboard called “Bandwidth” and adds the specific monitors. Of course no data is displayed until we actually run the monitor. To run the monitor and start collecting performance data execute the following command:</p>
<p><em>Cscript PushDataBandwidthMonitor .vbs</em></p>
<p><a href="http://blog.monitis.com/wp-content/uploads/2012/01/clip_image002.png"><img style="padding-left: 0px; padding-right: 0px; padding-top: 0px; border: 0px;" src="http://blog.monitis.com/wp-content/uploads/2012/01/clip_image002_thumb.png" alt="clip_image002" width="643" height="341" border="0" /></a></p>
<p>Once performance data is being collected you’ll be able to bring up your dashboard, select the Bandwidth tab and monitor the performance of your network adapter(s).</p>
<p>As said, the monitor will support multiple network adapters. We’ll create a monitor window for total bytes throughput for all adapters and another one for total packet traffic. We’ll also create the same monitors for each individual network adapter. The screenshot below shows two sets of monitors; one for the total traffic and one set for the network adapter in our system.</p>
<p><a href="http://blog.monitis.com/wp-content/uploads/2012/01/clip_image004.jpg"><img style="padding-left: 0px; padding-right: 0px; padding-top: 0px; border: 0px;" src="http://blog.monitis.com/wp-content/uploads/2012/01/clip_image004_thumb.jpg" alt="clip_image004" width="627" height="282" border="0" /></a></p>
<p>After you download the code from Git, you can of course edit the script and add other counters if you want.</p>
Share Now:<a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F07%2Fnetwork-bandwidth-monitoring-made-easy%2F&amp;title=Network%20Bandwidth%20Monitoring%20Made%20Easy&amp;notes=In%20this%20article%20we%E2%80%99ll%20create%20a%20Monitis%20custom%20monitor%20to%20measure%20your%20network%20bandwidth%20or%20throughput.%20The%20monitor%20will%20support%20multiple%20network%20adapters%20and%20should%20be%20intelligent%20enough%20to%20only%20collect%20results%20for%20the%20network%20adapters%20that%20are%20act" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F07%2Fnetwork-bandwidth-monitoring-made-easy%2F&amp;title=Network%20Bandwidth%20Monitoring%20Made%20Easy&amp;bodytext=In%20this%20article%20we%E2%80%99ll%20create%20a%20Monitis%20custom%20monitor%20to%20measure%20your%20network%20bandwidth%20or%20throughput.%20The%20monitor%20will%20support%20multiple%20network%20adapters%20and%20should%20be%20intelligent%20enough%20to%20only%20collect%20results%20for%20the%20network%20adapters%20that%20are%20act" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F07%2Fnetwork-bandwidth-monitoring-made-easy%2F&amp;t=Network%20Bandwidth%20Monitoring%20Made%20Easy" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F07%2Fnetwork-bandwidth-monitoring-made-easy%2F&amp;title=Network%20Bandwidth%20Monitoring%20Made%20Easy&amp;source=Uptime+%26amp%3B+Performance+Tips+Tips+for+SysAdmin%2C+Webmaster%2C+Network+Admin&amp;summary=In%20this%20article%20we%E2%80%99ll%20create%20a%20Monitis%20custom%20monitor%20to%20measure%20your%20network%20bandwidth%20or%20throughput.%20The%20monitor%20will%20support%20multiple%20network%20adapters%20and%20should%20be%20intelligent%20enough%20to%20only%20collect%20results%20for%20the%20network%20adapters%20that%20are%20act" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F07%2Fnetwork-bandwidth-monitoring-made-easy%2F&amp;Title=Network%20Bandwidth%20Monitoring%20Made%20Easy" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/blinklist.png" class="sociable-img sociable-hovers" title="BlinkList" alt="BlinkList" /></a><a rel="nofollow"   href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F07%2Fnetwork-bandwidth-monitoring-made-easy%2F&amp;title=Network%20Bandwidth%20Monitoring%20Made%20Easy" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/dzone.png" class="sociable-img sociable-hovers" title="DZone" alt="DZone" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F07%2Fnetwork-bandwidth-monitoring-made-easy%2F&amp;title=Network%20Bandwidth%20Monitoring%20Made%20Easy&amp;annotation=In%20this%20article%20we%E2%80%99ll%20create%20a%20Monitis%20custom%20monitor%20to%20measure%20your%20network%20bandwidth%20or%20throughput.%20The%20monitor%20will%20support%20multiple%20network%20adapters%20and%20should%20be%20intelligent%20enough%20to%20only%20collect%20results%20for%20the%20network%20adapters%20that%20are%20act" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="http://reddit.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F07%2Fnetwork-bandwidth-monitoring-made-easy%2F&amp;title=Network%20Bandwidth%20Monitoring%20Made%20Easy" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/reddit.png" class="sociable-img sociable-hovers" title="Reddit" alt="Reddit" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F07%2Fnetwork-bandwidth-monitoring-made-easy%2F&amp;title=Network%20Bandwidth%20Monitoring%20Made%20Easy" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://twitter.com/home?status=Network%20Bandwidth%20Monitoring%20Made%20Easy%20-%20http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F07%2Fnetwork-bandwidth-monitoring-made-easy%2F" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://blog.monitis.com/index.php/feed/" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.monitis.com/index.php/2012/02/07/network-bandwidth-monitoring-made-easy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Working With Microsoft Security Tools</title>
		<link>http://blog.monitis.com/index.php/2012/02/06/working-with-microsoft-security-tools/</link>
		<comments>http://blog.monitis.com/index.php/2012/02/06/working-with-microsoft-security-tools/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 18:11:29 +0000</pubDate>
		<dc:creator>Hovhannes Avoyan</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Forefront]]></category>
		<category><![CDATA[Microsoft Security Assessment Tool]]></category>
		<category><![CDATA[Microsoft Security Compliance Manager]]></category>
		<category><![CDATA[Microsoft Security Essentials]]></category>
		<category><![CDATA[Microsoft System Center]]></category>
		<category><![CDATA[Windows Firewall]]></category>
		<category><![CDATA[Windows Intune]]></category>
		<category><![CDATA[Windows Update]]></category>

		<guid isPermaLink="false">http://blog.monitis.com/?p=5479</guid>
		<description><![CDATA[How many of us take for granted Microsoft’s family of tools that contribute to the security of your organization? The most commonly used and appreciated tools are: Forefront Family Microsoft Security Essentials Windows Intune / Windows Update / Microsoft System Center Family Windows Firewall (with Advanced Security) Let’s take a look at all of these [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: right; padding: 10px;" src="http://blog.monitis.com/wp-content/uploads/2011/05/050111_1940_20TipsHowto1.png" alt="" /></p>
<p>How many of us take for granted Microsoft’s family of tools that contribute to the security of your organization? The most commonly used and appreciated tools are:</p>
<ul>
<li>Forefront Family</li>
<li>Microsoft Security Essentials</li>
<li>Windows Intune / Windows Update / Microsoft System Center Family</li>
<li>Windows Firewall (with Advanced Security)</li>
</ul>
<p>Let’s take a look at all of these tools and their features. Then, we can look at other less popular tools offered by Microsoft &#8212; such as Microsoft Security Compliance Manager and Microsoft Security Assessment Tool.<span id="more-5479"></span></p>
<ol>
<li>
<h3>Forefront Family</h3>
</li>
</ol>
<p><a href="http://blog.monitis.com/wp-content/uploads/2012/02/forefront.jpg"><img class="alignnone size-full wp-image-5480" title="forefront" src="http://blog.monitis.com/wp-content/uploads/2012/02/forefront.jpg" alt="" width="294" height="250" /></a></p>
<p>Microsoft has spent a great amount of time trying to supply a manageable easy-to-use security solution for its products. The result of these efforts is the Forefront Family. It consists of several tools you can use to secure your Microsoft infrastructure. Also, it is designed to interact with other Microsoft tools, such as Active Directory, Group Policy and Windows Update.</p>
<p>Forefront Endpoint Protection is the enterprise-oriented product that delivers real-time, anti-virus, malware and spyware protection. Its integration with the System Center Family of managing products makes it extremely popular and easy for adoption.</p>
<p>Another product in the Forefront Family is Forefront Threat Management Gateway. It is the successor of the Internet Security and Acceleration (ISA) Server and provides advanced firewall functionalities, including URL filtering, intrusion prevention, HTTP/HTTPS inspection, and much more.</p>
<p>The two popular solutions for applications are Forefront protection for Exchange Server and Forefront protection for SharePoint. With the increasing popularity of <a href="http://portal.monitis.com/index.php/company/about">cloud solutions</a>, Forefront Online Protection for Exchange is used to secure the cloud-based version of Exchange – Exchange Online. All of these products can easily be managed through the Forefront Protection Server Management Console. It supports multiple servers and has great reporting capabilities.</p>
<p>Microsoft Forefront Identity Manager is a great tool that can help you manage access between heterogeneous systems, including Active Directory, Novell, Sun, IBM, Lotus Notes, Exchange, Oracle and <a href="http://blog.monitis.com/index.php/2011/11/01/18-lamp-security-tips-for-mysql/">SQL</a> Server databases, SAP, and even flat file systems. It supports both password- and certificate-based access.<br />
If you need to provide access to users outside your organization, such as partners or home-based employees, Forefront Unified Access Gateway is there to help you. It supports both VPN and Direct Access to your network and introduces policies and configurations over these connections.</p>
<ol start="2">
<li>
<h3>Microsoft Security Essentials</h3>
</li>
</ol>
<p><a href="http://blog.monitis.com/wp-content/uploads/2012/02/security_essentials.jpg"><img class="alignnone size-full wp-image-5481" title="security_essentials" src="http://blog.monitis.com/wp-content/uploads/2012/02/security_essentials.jpg" alt="" width="600" height="450" /></a></p>
<p>For end clients, who can’t afford to pay for the manageable Forefront client, Microsoft has delivered the free tool Microsoft Security Essentials, which uses the same definitions as Forefront, but lacks the manageability part.</p>
<p>Microsoft Security Essentials does provide antivirus, antispyware, and rootkit protection; it also supports Windows 7 and <a href="http://blog.monitis.com/index.php/2011/06/14/how-to-monitor-windows-servers-with-vbscript-wmi-and-monitis/">Windows Server 2008</a> R2; and it’s still using Dynamic Signature Service, which contributes to the daily definitions updates by detecting newly identified malware.</p>
<p>However, Microsoft Security Essentials doesn’t provide some of the handiest Forefront functionalities, such as Group Policy and External Device control; Network Access Protection integration (the Windows Server 2008 capability to granularly control network access based on who the client is and the groups to which the client belongs); and integrated host <a href="http://blog.monitis.com/index.php/2011/09/01/how-to-protect-your-network-microsoft-isa-firewall-server-best-practices/">firewall</a> management.</p>
<p>It also has the extremely useful capability of limiting processor usage during scans. Do youu ever encounter the problem of processor usage reaching 100% and the computer freezing with some other products? Microsoft promises that doesn’t happen with Microsoft Security Essentials.</p>
<ol start="3">
<li>
<h3>Updates</h3>
</li>
</ol>
<p><a href="http://blog.monitis.com/wp-content/uploads/2012/02/windowsupdate.jpg"><img class="alignnone size-full wp-image-5482" title="windowsupdate" src="http://blog.monitis.com/wp-content/uploads/2012/02/windowsupdate.jpg" alt="" width="495" height="366" /></a></p>
<p>As keeping your system updated is a main part of its hardening, Microsoft has many tools that help you get important updates on time.</p>
<p>Your first option is to set your Windows Update feature to automatically download the updates from the Microsoft site. However, this way you don’t have much control over which updates get installed. You can set the feature to let you make a decision as to whether to install a particular update or not, but this then requires extra administrative efforts to achieve what is normally a simple task.</p>
<p><a href="http://blog.monitis.com/wp-content/uploads/2012/02/windowsintune.jpg"><img class="alignnone size-full wp-image-5486" title="windowsintune" src="http://blog.monitis.com/wp-content/uploads/2012/02/windowsintune.jpg" alt="" width="450" height="326" /></a></p>
<p>Another option is to use the Microsoft System Center Configuration Manager (SCCM) or Windows Intune to centrally manage the updates on all your clients’ computers. Both of these products offer a considerable amount of functionalities, including keeping computers up to date. While SCCM is a hosted application and needs to be installed on a local machine to work, Windows Intune is an entirely cloud-based Microsoft solution that can help you manage your <a href="http://blog.monitis.com/index.php/category/network-monitoring/">network</a>. All you need is a web browser. And with that, you can make sure your computers all over the world are properly updated.</p>
<ol start="4">
<li>
<h3>Windows Firewall (with Advanced Security)</h3>
</li>
</ol>
<p><a href="http://blog.monitis.com/wp-content/uploads/2012/02/windowsfirewall.png"><img class="alignnone size-full wp-image-5483" title="windowsfirewall" src="http://blog.monitis.com/wp-content/uploads/2012/02/windowsfirewall.png" alt="" width="644" height="559" /></a></p>
<p>Windows Firewall (In Windows Server 2008, it is called Windows Firewall with Advanced Security) can contribute to your current security configuration, providing a defense-in-depth mechanism for end users. If you haven’t purchased Forefront protection, then you can use the built-in Windows Firewall to specify rules regarding your inbound and outbound <a href="http://blog.monitis.com/index.php/category/uptime-monitoring/transactions-monitoring/">traffic</a>.</p>
<ol start="5">
<li>
<h3>Microsoft Security Compliance Manager</h3>
</li>
</ol>
<p><a href="http://blog.monitis.com/wp-content/uploads/2012/02/SecurityComplianceManager.png"><img class="alignnone  wp-image-5485" title="SecurityComplianceManager" src="http://blog.monitis.com/wp-content/uploads/2012/02/SecurityComplianceManager.png" alt="" width="650" height="491" /></a></p>
<p>Microsoft Security Compliance Manager includes various baseline security policies &#8212; both for client and server Windows systems and applications. The policies are based on industry practices and let you reduce the <a href="http://blog.monitis.com/index.php/category/server/security-server/">security threats</a> your systems are exposed to. You can easily compare your existing policies with these baseline security policies for reference, or deploy the baseline policies to be sure your infrastructure is secured.</p>
<ol start="6">
<li>
<h3>Microsoft Security Assessment Tool</h3>
</li>
</ol>
<p><a href="http://blog.monitis.com/wp-content/uploads/2012/02/MicrosoftSecurityAssessment.png"><img title="MicrosoftSecurityAssessment" src="http://blog.monitis.com/wp-content/uploads/2012/02/MicrosoftSecurityAssessment.png" alt="" width="750" height="449" /></a></p>
<p>Microsoft Security Assessment Tool is a product that can help you secure your entire IT infrastructure by asking you various questions with a Yes/No answer. Questions are based on the ISO 17799 and NIST-800.x standards. Your answers are compared to the best practices that Microsoft has developed. Then a summary with lots of recommendations and relevant online topics is delivered to you. It can be very useful after your initial setup is completed.</p>
<p>If your infrastructure is now secured, take the time to set <a href="http://blog.monitis.com/index.php/category/server/windows-servers-monitoring/">monitoring on your main servers</a>. You can do that very easily with <a href="http://www.monitis.com/">Monitis</a>.</p>
Share Now:<a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F06%2Fworking-with-microsoft-security-tools%2F&amp;title=Working%20With%20Microsoft%20Security%20Tools&amp;notes=%0D%0A%0D%0AHow%20many%20of%20us%20take%20for%20granted%20Microsoft%E2%80%99s%20family%20of%20tools%20that%20contribute%20to%20the%20security%20of%20your%20organization%3F%20The%20most%20commonly%20used%20and%20appreciated%20tools%20are%3A%0D%0A%0D%0A%09Forefront%20Family%0D%0A%09Microsoft%20Security%20Essentials%0D%0A%09Windows%20Intune%20%2F%20Windows%20" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F06%2Fworking-with-microsoft-security-tools%2F&amp;title=Working%20With%20Microsoft%20Security%20Tools&amp;bodytext=%0D%0A%0D%0AHow%20many%20of%20us%20take%20for%20granted%20Microsoft%E2%80%99s%20family%20of%20tools%20that%20contribute%20to%20the%20security%20of%20your%20organization%3F%20The%20most%20commonly%20used%20and%20appreciated%20tools%20are%3A%0D%0A%0D%0A%09Forefront%20Family%0D%0A%09Microsoft%20Security%20Essentials%0D%0A%09Windows%20Intune%20%2F%20Windows%20" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F06%2Fworking-with-microsoft-security-tools%2F&amp;t=Working%20With%20Microsoft%20Security%20Tools" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F06%2Fworking-with-microsoft-security-tools%2F&amp;title=Working%20With%20Microsoft%20Security%20Tools&amp;source=Uptime+%26amp%3B+Performance+Tips+Tips+for+SysAdmin%2C+Webmaster%2C+Network+Admin&amp;summary=%0D%0A%0D%0AHow%20many%20of%20us%20take%20for%20granted%20Microsoft%E2%80%99s%20family%20of%20tools%20that%20contribute%20to%20the%20security%20of%20your%20organization%3F%20The%20most%20commonly%20used%20and%20appreciated%20tools%20are%3A%0D%0A%0D%0A%09Forefront%20Family%0D%0A%09Microsoft%20Security%20Essentials%0D%0A%09Windows%20Intune%20%2F%20Windows%20" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F06%2Fworking-with-microsoft-security-tools%2F&amp;Title=Working%20With%20Microsoft%20Security%20Tools" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/blinklist.png" class="sociable-img sociable-hovers" title="BlinkList" alt="BlinkList" /></a><a rel="nofollow"   href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F06%2Fworking-with-microsoft-security-tools%2F&amp;title=Working%20With%20Microsoft%20Security%20Tools" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/dzone.png" class="sociable-img sociable-hovers" title="DZone" alt="DZone" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F06%2Fworking-with-microsoft-security-tools%2F&amp;title=Working%20With%20Microsoft%20Security%20Tools&amp;annotation=%0D%0A%0D%0AHow%20many%20of%20us%20take%20for%20granted%20Microsoft%E2%80%99s%20family%20of%20tools%20that%20contribute%20to%20the%20security%20of%20your%20organization%3F%20The%20most%20commonly%20used%20and%20appreciated%20tools%20are%3A%0D%0A%0D%0A%09Forefront%20Family%0D%0A%09Microsoft%20Security%20Essentials%0D%0A%09Windows%20Intune%20%2F%20Windows%20" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="http://reddit.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F06%2Fworking-with-microsoft-security-tools%2F&amp;title=Working%20With%20Microsoft%20Security%20Tools" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/reddit.png" class="sociable-img sociable-hovers" title="Reddit" alt="Reddit" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F06%2Fworking-with-microsoft-security-tools%2F&amp;title=Working%20With%20Microsoft%20Security%20Tools" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://twitter.com/home?status=Working%20With%20Microsoft%20Security%20Tools%20-%20http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F06%2Fworking-with-microsoft-security-tools%2F" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://blog.monitis.com/index.php/feed/" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.monitis.com/index.php/2012/02/06/working-with-microsoft-security-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blog Summary for Week of January 30</title>
		<link>http://blog.monitis.com/index.php/2012/02/05/blog-summary-for-week-of-january-30/</link>
		<comments>http://blog.monitis.com/index.php/2012/02/05/blog-summary-for-week-of-january-30/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 00:53:23 +0000</pubDate>
		<dc:creator>Seb Kiureghian</dc:creator>
				<category><![CDATA[Weekly Summary]]></category>

		<guid isPermaLink="false">http://blog.monitis.com/?p=5468</guid>
		<description><![CDATA[1. VDI on Windows Server 2008 R2 Hyper-V: Performance Monitoring Explained–Part 1 This post discusses best practices for VDI (virtual desktop interface) monitoring on Windows Server Hyper-V. It tells you which counters to utilize to determine whether your VM is overloaded, focusing on measuring networking, storage, and CPU usage. Metrics are broken down into five [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-4283" title="logo" src="http://blog.monitis.com/wp-content/uploads/2011/11/logo.png" alt="" width="187" height="74" />1. <a href="http://blog.monitis.com/index.php/2012/01/30/vdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-1/">VDI on Windows Server 2008 R2 Hyper-V: Performance Monitoring Explained–Part 1</a><br />
This post discusses best practices for VDI (virtual desktop interface) monitoring on Windows Server Hyper-V. It tells you which counters to utilize to determine whether your VM is overloaded, focusing on measuring networking, storage, and CPU usage. Metrics are broken down into five groups: Overall Health, Processor, Memory, Networking, and Storage.</p>
<p>2. <a href="http://blog.monitis.com/index.php/2012/01/30/nginx-best-practices/">NGINX Best Practices</a><br />
NGINX is now the world&#8217;s second most popular server, which is quite impressive considering the strong competition from Apache and Microsoft IIS. These NGINX best practices will help you run the popular web server with optimal performance. Eight steps cover everything from improving Disk I/O to configuring NGINX as a load balancer to avoiding common configuration pitfalls.<span id="more-5468"></span></p>
<p>3. <a href="http://blog.monitis.com/index.php/2012/01/31/you-can-monitor-your-xenserver-with-monitis/">You Can Monitor Your XenServer With Monitis!</a><br />
Citrix&#8217;s XenServer is a leader in the virtualization platform space. This post shows how you can use the Monitis API to monitor XenServer. There is sample code in the Monitis Github repository for you to download. Then just follow 11 steps to run the daemon and create the custom Monitors to start monitoring XenServer.</p>
<p>4. <a href="http://blog.monitis.com/index.php/2012/01/31/monitor-everything-with-monitis-and-do-it-easily-with-powershell-part-14-final/">Monitor Everything with Monitis – And do it easily with PowerShell – Part 14 (Final)</a><br />
This is a continuation of the last article, which showed you how to create custom monitor updater commands which run a script to upload values to Monitis. This makes it very easy to convert any PowerShell script into a Monitis monitor. This post recaps some of the important points covered in this series of articles. This series focused on using Montiis with PowerShell&#8217;s in-the-box capabilities, but there are many other community modules out there you can use with Monitis. This post shows how to apply the approach covered in this series to those modules.</p>
<p>5. <a href="http://blog.monitis.com/index.php/2012/02/02/vdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-2/">VDI on Windows Server 2008 R2 Hyper-V: Performance Monitoring Explained–Part 2</a><br />
The last post in this series focused on Overall Health metrics of VDI. This post focuses more on processor, memory, and storage monitoring. For each of these, the most important counters are listed. For example, for memory monitoring, the metrics are Hyper-V Hypervisor Partition, Hyper-V Hypervisor Root Partition, Hyper-V VM Vid Partition, Memory. For storage, they are Physical Disk, Hyper-V Virtual Storage Device, and Hyper-V Virtual IDE Controller. All the necessary scripts are on Monitis&#8217; <a href="https://github.com/monitisexchange/Windows-Monitoring-Scripts">Gifthub</a> page.</p>
<p>6. <a href="http://blog.monitis.com/index.php/2012/02/03/mongo-and-monitis-a-nosql-dream-come-true/">Mongo and Monitis: A NoSQL Dream Come True</a><br />
MongoDB is a great NoSQL database that&#8217;s grown very popular among developers. It&#8217;s known for being highly scalable and easy to work with. These best practices highlight some of the common issues developers face with Mongo and how to work around them, like how to deal with too many open connections. Load testing is recommended to test how many connections, or queries, your database can handle. And remember, using custom monitors, all these metrics can be tracked in Monitis.</p>
Share Now:<a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F05%2Fblog-summary-for-week-of-january-30%2F&amp;title=Blog%20Summary%20for%20Week%20of%20January%2030&amp;notes=1.%20VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%E2%80%93Part%201%0D%0AThis%20post%20discusses%20best%20practices%20for%20VDI%20%28virtual%20desktop%20interface%29%20monitoring%20on%20Windows%20Server%20Hyper-V.%20It%20tells%20you%20which%20counters%20to%20utilize%20to%20determine%20whet" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F05%2Fblog-summary-for-week-of-january-30%2F&amp;title=Blog%20Summary%20for%20Week%20of%20January%2030&amp;bodytext=1.%20VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%E2%80%93Part%201%0D%0AThis%20post%20discusses%20best%20practices%20for%20VDI%20%28virtual%20desktop%20interface%29%20monitoring%20on%20Windows%20Server%20Hyper-V.%20It%20tells%20you%20which%20counters%20to%20utilize%20to%20determine%20whet" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F05%2Fblog-summary-for-week-of-january-30%2F&amp;t=Blog%20Summary%20for%20Week%20of%20January%2030" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F05%2Fblog-summary-for-week-of-january-30%2F&amp;title=Blog%20Summary%20for%20Week%20of%20January%2030&amp;source=Uptime+%26amp%3B+Performance+Tips+Tips+for+SysAdmin%2C+Webmaster%2C+Network+Admin&amp;summary=1.%20VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%E2%80%93Part%201%0D%0AThis%20post%20discusses%20best%20practices%20for%20VDI%20%28virtual%20desktop%20interface%29%20monitoring%20on%20Windows%20Server%20Hyper-V.%20It%20tells%20you%20which%20counters%20to%20utilize%20to%20determine%20whet" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F05%2Fblog-summary-for-week-of-january-30%2F&amp;Title=Blog%20Summary%20for%20Week%20of%20January%2030" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/blinklist.png" class="sociable-img sociable-hovers" title="BlinkList" alt="BlinkList" /></a><a rel="nofollow"   href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F05%2Fblog-summary-for-week-of-january-30%2F&amp;title=Blog%20Summary%20for%20Week%20of%20January%2030" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/dzone.png" class="sociable-img sociable-hovers" title="DZone" alt="DZone" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F05%2Fblog-summary-for-week-of-january-30%2F&amp;title=Blog%20Summary%20for%20Week%20of%20January%2030&amp;annotation=1.%20VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%E2%80%93Part%201%0D%0AThis%20post%20discusses%20best%20practices%20for%20VDI%20%28virtual%20desktop%20interface%29%20monitoring%20on%20Windows%20Server%20Hyper-V.%20It%20tells%20you%20which%20counters%20to%20utilize%20to%20determine%20whet" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="http://reddit.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F05%2Fblog-summary-for-week-of-january-30%2F&amp;title=Blog%20Summary%20for%20Week%20of%20January%2030" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/reddit.png" class="sociable-img sociable-hovers" title="Reddit" alt="Reddit" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F05%2Fblog-summary-for-week-of-january-30%2F&amp;title=Blog%20Summary%20for%20Week%20of%20January%2030" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://twitter.com/home?status=Blog%20Summary%20for%20Week%20of%20January%2030%20-%20http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F05%2Fblog-summary-for-week-of-january-30%2F" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://blog.monitis.com/index.php/feed/" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.monitis.com/index.php/2012/02/05/blog-summary-for-week-of-january-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mongo and Monitis: A NoSQL Dream Come True</title>
		<link>http://blog.monitis.com/index.php/2012/02/03/mongo-and-monitis-a-nosql-dream-come-true/</link>
		<comments>http://blog.monitis.com/index.php/2012/02/03/mongo-and-monitis-a-nosql-dream-come-true/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 10:56:22 +0000</pubDate>
		<dc:creator>Brad Carleton</dc:creator>
				<category><![CDATA[Database Management]]></category>
		<category><![CDATA[Monitoring Scripts]]></category>
		<category><![CDATA[NoSQL Monitoring]]></category>
		<category><![CDATA[big data]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[MongoDB Monitoring]]></category>
		<category><![CDATA[MongoDB performance]]></category>

		<guid isPermaLink="false">http://blog.monitis.com/?p=4794</guid>
		<description><![CDATA[Mongo is a wonderful new NoSql solution from the folks at 10gen, and it has really gained a large following with a reputation for being high performance and developer friendly.  There are lots of good articles on Mongo best practices, see here and here for some examples. We are going to go over a few common [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-4170" style="float: right;" title="mongodb" src="http://blog.monitis.com/wp-content/uploads/2011/10/mongodb.png" alt="" width="300" height="100" /></p>
<div>Mongo is a wonderful new NoSql solution from the folks at 10gen, and it has really gained a large following with a reputation for being high performance and developer friendly.  There are lots of good articles on Mongo best practices, see <a href="http://www.engineyard.com/blog/2011/mongodb-best-practices/">here</a> and <a href="http://blog.mongodb.org/post/4982676520/mongodb-on-ec2-best-practices">here</a> for some examples.</div>
<div></div>
<div>We are going to go over a few common issues that people run into with Mongo, and how <a href="http://www.monitis.com">Monitis</a> can help keep you informed and alert you to potential issues.<span id="more-4794"></span></div>
<div></div>
<div><strong>Too Many Connections</strong></div>
<div>
<p>Connections to a database are good because that means that people are connecting to your database and using your data.  Unfortunately, too many open connections on any of your Mongo databases will take the entire instance down.  Why does this happen?  Well for starters more connections typically means more queries, so it could just be a load issue, which you would want to know about.  On the other hand, a ton of open connections could mean that your Mongo clients are not disconnecting after they are finished asking for data.</p>
<p>Open connections consume resources.  Too many open connections can take down your entire instance even if they are not running any queries.  You should monitor the number of connections with Monitis to make sure that everything is running smoothly.  Load testing should give you an idea of the number of connections to set an alert for.</p>
<p><strong>More Data than RAM</strong></p>
<p>Once, your data set and indexes gets bigger than the amount of RAM available on your instance, then Mongo will start paging to disk.  When this happens performance will start to degrade potentially rapidly as the data set grows.  This might be OK, then again it might be the worst thing ever.</p>
<p>Keeping an eye on the “virtual memory” is the best way to gauge the performance of your Mongo instances.  With, you can monitor this important statistic easily, and you can set up an alert to go off whenever you cross that dreaded RAM threshold whether it’s 4GB or 32GB. Monitis</p>
<p><strong>Timeouts: A Database’s Worst Enemy</strong></p>
<p>Your Mongo queries should not timeout, period.  With a custom Monitis Monitor reading the HTTP Console you can find out if your database is throwing timeouts.  If it is, then you should investigate.  It might just be a bad query or two that needs to be better optimized.  In which case you can scold the developers for poor database practices.  However, cursor timeouts might also indicate that you are overloading your instance, and it might be time to either scale up or out.</p>
<p>At this point, you should have a good idea about how and what to monitor on your Mongo instances, and how to use a great service like Monitis to help.</p>
<p>See also <a title="Permanent Link to Monitoring Performance on MongoDB – Mongo Basics" href="http://blog.monitis.com/index.php/2011/10/24/monitoring-performance-on-mongodb-mongo-basics/" rel="bookmark">Monitoring Performance on MongoDB – Mongo Basics</a></p>
<p><strong>Open source code located at github - <a href="https://github.com/monitisexchange/Monitis-Linux-Scripts">Monitis-Linux-Scripts</a></strong> / <a href="https://github.com/monitisexchange/Monitis-Linux-Scripts/tree/master/mongo">Mongo Monitoring Scripts</a></p>
</div>
Share Now:<a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F03%2Fmongo-and-monitis-a-nosql-dream-come-true%2F&amp;title=Mongo%20and%20Monitis%3A%20A%20NoSQL%20Dream%20Come%20True&amp;notes=%0D%0AMongo%20is%20a%20wonderful%20new%20NoSql%20solution%20from%20the%20folks%20at%2010gen%2C%20and%20it%20has%20really%20gained%20a%20large%20following%20with%20a%20reputation%20for%20being%20high%20performance%20and%20developer%20friendly.%20%C2%A0There%20are%20lots%20of%20good%20articles%20on%20Mongo%20best%20practices%2C%20see%20here%20and" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F03%2Fmongo-and-monitis-a-nosql-dream-come-true%2F&amp;title=Mongo%20and%20Monitis%3A%20A%20NoSQL%20Dream%20Come%20True&amp;bodytext=%0D%0AMongo%20is%20a%20wonderful%20new%20NoSql%20solution%20from%20the%20folks%20at%2010gen%2C%20and%20it%20has%20really%20gained%20a%20large%20following%20with%20a%20reputation%20for%20being%20high%20performance%20and%20developer%20friendly.%20%C2%A0There%20are%20lots%20of%20good%20articles%20on%20Mongo%20best%20practices%2C%20see%20here%20and" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F03%2Fmongo-and-monitis-a-nosql-dream-come-true%2F&amp;t=Mongo%20and%20Monitis%3A%20A%20NoSQL%20Dream%20Come%20True" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F03%2Fmongo-and-monitis-a-nosql-dream-come-true%2F&amp;title=Mongo%20and%20Monitis%3A%20A%20NoSQL%20Dream%20Come%20True&amp;source=Uptime+%26amp%3B+Performance+Tips+Tips+for+SysAdmin%2C+Webmaster%2C+Network+Admin&amp;summary=%0D%0AMongo%20is%20a%20wonderful%20new%20NoSql%20solution%20from%20the%20folks%20at%2010gen%2C%20and%20it%20has%20really%20gained%20a%20large%20following%20with%20a%20reputation%20for%20being%20high%20performance%20and%20developer%20friendly.%20%C2%A0There%20are%20lots%20of%20good%20articles%20on%20Mongo%20best%20practices%2C%20see%20here%20and" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F03%2Fmongo-and-monitis-a-nosql-dream-come-true%2F&amp;Title=Mongo%20and%20Monitis%3A%20A%20NoSQL%20Dream%20Come%20True" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/blinklist.png" class="sociable-img sociable-hovers" title="BlinkList" alt="BlinkList" /></a><a rel="nofollow"   href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F03%2Fmongo-and-monitis-a-nosql-dream-come-true%2F&amp;title=Mongo%20and%20Monitis%3A%20A%20NoSQL%20Dream%20Come%20True" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/dzone.png" class="sociable-img sociable-hovers" title="DZone" alt="DZone" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F03%2Fmongo-and-monitis-a-nosql-dream-come-true%2F&amp;title=Mongo%20and%20Monitis%3A%20A%20NoSQL%20Dream%20Come%20True&amp;annotation=%0D%0AMongo%20is%20a%20wonderful%20new%20NoSql%20solution%20from%20the%20folks%20at%2010gen%2C%20and%20it%20has%20really%20gained%20a%20large%20following%20with%20a%20reputation%20for%20being%20high%20performance%20and%20developer%20friendly.%20%C2%A0There%20are%20lots%20of%20good%20articles%20on%20Mongo%20best%20practices%2C%20see%20here%20and" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="http://reddit.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F03%2Fmongo-and-monitis-a-nosql-dream-come-true%2F&amp;title=Mongo%20and%20Monitis%3A%20A%20NoSQL%20Dream%20Come%20True" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/reddit.png" class="sociable-img sociable-hovers" title="Reddit" alt="Reddit" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F03%2Fmongo-and-monitis-a-nosql-dream-come-true%2F&amp;title=Mongo%20and%20Monitis%3A%20A%20NoSQL%20Dream%20Come%20True" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://twitter.com/home?status=Mongo%20and%20Monitis%3A%20A%20NoSQL%20Dream%20Come%20True%20-%20http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F03%2Fmongo-and-monitis-a-nosql-dream-come-true%2F" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://blog.monitis.com/index.php/feed/" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.monitis.com/index.php/2012/02/03/mongo-and-monitis-a-nosql-dream-come-true/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>VDI on Windows Server 2008 R2 Hyper-V: Performance Monitoring Explained&#8211;Part 2</title>
		<link>http://blog.monitis.com/index.php/2012/02/02/vdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-2/</link>
		<comments>http://blog.monitis.com/index.php/2012/02/02/vdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-2/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 09:07:11 +0000</pubDate>
		<dc:creator>Ard-Jan Barnas</dc:creator>
				<category><![CDATA[Monitoring Scripts]]></category>
		<category><![CDATA[Virtual Servers]]></category>
		<category><![CDATA[Windows Servers Monitoring]]></category>
		<category><![CDATA[hyper-v]]></category>
		<category><![CDATA[VDI]]></category>
		<category><![CDATA[virtual desktop interface]]></category>
		<category><![CDATA[virtual machines]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://blog.monitis.com/?p=5106</guid>
		<description><![CDATA[In this second part of our monitoring Hyper-V article we’ll discuss the details about Processor, Memory, and Storage monitoring. In part 1 we discussed the Overall Health metric set. Let’s start with the Processor Metrics. Processor Metrics There are three processor-related metric sets: Hyper-V Hypervisor Logical Processor Hyper-V Hypervisor Root Virtual Processor Hyper-V Hypervisor Virtual [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-2646 alignnone" style="margin: 15px; float: right;" title="logo-hyperv-server08-R2" src="http://blog.monitis.com/wp-content/uploads/2011/07/logo-hyperv-server08-R2.png" alt="hyperv" width="250" /><span style="font-size: small;">In this second part of our <a href="http://blog.monitis.com/index.php/2012/01/30/vdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-1/">monitoring Hyper-V article </a>we’ll discuss the details about Processor, Memory, and Storage monitoring. In part 1 we discussed the Overall Health metric set. Let’s start with the Processor Metrics. </span></p>
<h3><strong>Processor Metrics</strong></h3>
<p>There are three processor-related metric sets:<span id="more-5106"></span></p>
<ul>
<li>Hyper-V Hypervisor Logical Processor</li>
<li>Hyper-V Hypervisor Root Virtual Processor</li>
<li>Hyper-V Hypervisor Virtual Processor</li>
</ul>
<p>The most important counter set you want to monitor is the <strong><em>Hyper-V Hypervisor Logical</em></strong> <strong><em>Processor</em></strong>. This counter set allows you to determine how much of the physical processor is being used. The <strong><em>Virtual Processor</em></strong> counter set only shows part of the <strong><em>Hyper-V Hypervisor Logical Processor</em></strong>, so you want to make sure to use the Logical Processor counter set. The most useful counters in this counter set are the following;</p>
<ul>
<li>%Guest Run</li>
<li>%Hypervisor Run Time</li>
<li>%Idle Run Time</li>
<li>%Total Run Time</li>
</ul>
<p>Note that there is one logical processor in Hyper-V that that has a larger workload than the other logical processors and that is LP0. This Logical Processor is where all interrupts in the system are directed to. If this LP hits 100% utilization there is likely an I/O bottleneck.</p>
<p>The <strong><em>Hyper-V Hypervisor Root Virtual Processor</em></strong> and <strong><em>Hyper-V Hypervisor Virtual Processor</em></strong><em> </em>are just slices of the Logical Processor counter and can help you understand how much total CPU the root and guests are using on the system.</p>
<p>If you want to monitor the root CPU you should use the <strong><em>Processor</em></strong> counter set. According to Microsoft this counter suffers from some skew, but is useful because it gives an idea of how busy the root is. This is important because the root is involved in all I/O, meaning if the root CPU’s are saturated your whole system is likely saturated. In general you want to see the root CPU lower than 10% utilization and over 50% might indicate an issue.</p>
<p>&nbsp;</p>
<h3><strong>Memory Counters</strong></h3>
<p>The following are the counter sets you want to monitor;</p>
<ul>
<li>Hyper-V Hypervisor Partition</li>
<li>Hyper-V Hypervisor Root Partition</li>
<li>Hyper-V VM Vid Partition</li>
<li>Memory</li>
</ul>
<p>The <strong><em>Hyper-v [Root] Partition</em></strong> counters determine how much memory the Hypervisor is managing and using on behalf of a VM which includes the guest address space but not all the memory in the worker process and VID partition. The <strong><em>Hyper-V Hypervisor [ROOT] Partition</em></strong> counter set indicates in the <strong><em>1G GPA Pages </em></strong>and <strong><em>2M GPA Pages</em></strong> metric whether or not a VM is using large memory pages which improves overall VM performance.</p>
<p>The <strong><em>Hyper-V VM Vid Partition </em></strong>counters account for the guest address space and any additional memory the VID needs to manage the VM.</p>
<p>The <strong><em>Memory</em></strong> counters are not specific to any VM and can be used to measure memory used to service I/O on behalf of a virtual machine.</p>
<p>The <strong><em>Partition Counter</em></strong> set also indicates in the <strong><em>Deposited Pages</em></strong> metric how much memory the hypervisor is using for managing the VM. The last counter that is interesting in the partition counter set is the <strong><em>Virtual Processors</em></strong> counter which tells you how many Virtual Processors a VM is configured to use.</p>
<p>The <strong><em>Hyper-V VM Vid Partition</em></strong> counters have two counters that you want to monitor. The <strong><em>Physical Pages Allocated</em></strong> is the total number of guest pages and VID pages needed to manage the VM. The <strong><em>Remote Physical Pages</em></strong> let you know on NUMA based systems if a VM is spanning multiple nodes. Note that Microsoft does not recommend such a configuration.</p>
<p>The <strong><em>Memory</em></strong> counter set allows you to monitor how much memory is consumed in the root. The root is responsible for managing all memory in Hyper-V. When a VM starts you will see the <strong><em>Available Bytes</em></strong> go down by at least the amount of memory given to the guest plus around another 16 &#8211; 64MB for guests meta data structures.</p>
<p>The following counters are useful to monitor:</p>
<ul>
<li><strong><em>Available Bytes</em></strong> – Returns how much memory is remaining for guests.</li>
<li><strong><em>Pages / Sec</em></strong> – Measures memory pressure. This metric can tell you if processes are competing with each other for physical RAM.</li>
</ul>
<h3></h3>
<h3><span>Network Counters</span></h3>
<p>You can use the network counters to monitor overall networking performance on the system. The most important thing to monitor is the total throughput counters to make sure the NICs are not getting saturated. There are four relevant counter sets:</p>
<ul>
<li>Network Interface</li>
<li>Hyper-V Virtual Switch</li>
<li>Hyper-V Legacy Network Adapter</li>
<li>Hyper-V Virtual Network Adapter</li>
</ul>
<p>The <strong><em>Network Interface </em></strong>measures the overall performance of physical device whereas the other counter sets represent the activity of the virtual switches and network adapters in the virtual machines. For the <strong><em>Network Interface</em></strong> the following are the most important counters to monitor:</p>
<ul>
<li>Bytes Total / Sec</li>
<li>Offloaded Connections</li>
<li>Packets / Sec</li>
<li>Packets Outbound Errors</li>
<li>Packets Receive Errors</li>
</ul>
<p>The <strong><em>Hyper-V Virtual Switch</em></strong> counters are good to monitor because depending on your configured network, traffic might only exist on the virtual switch. This is the case with network traffic between guest to guest. The most important counters are:</p>
<ul>
<li>Bytes/Sec</li>
<li>Packets/Sec</li>
</ul>
<p>The <strong><em>Hyper-V Virtual Network Adapter</em></strong> and the <strong><em>Hyper-V Legacy Network Adapter</em></strong><em> </em>counter sets allow you to measure performance of a virtual machine. These counter sets are named with the friendly name of the VM plus the name of the network adapter followed by two GUIDs. The GUIDs are the internal id of the VM and adapter.</p>
<p>If you assign a <em>Legacy Network Adapter</em> to a VM then the counter set to use is the <strong><em>Hyper-V Legacy Network Adapter</em></strong>. In general you should not use this network adapter type because it is not enlightened (see our prior ‘Best Practices’ article). It creates a lot of CPU load in the root, and is slower than the <em>Virtual</em> <em>Network Adapter.</em> However, you need the <em>Legacy Network Adapter </em>to get a VM working before installing Integration Services. Once your VM is working with Integration Services you should use the <em>Network Adapter</em> and the “<strong><em>Hyper-V Virtual Network Adapter”</em></strong> counter set. Note that both Windows Server 2008 and Windows Server 2008 R2 have integration Services pre-installed.</p>
<p>The <strong><em>Hyper-V Legacy Network Adapter</em></strong> counters to monitor are:</p>
<ul>
<li>Bytes Dropped</li>
<li>Bytes Sent / Sec</li>
<li>Bytes Received / Sec</li>
</ul>
<p>In the <strong><em>Hyper-V Virtual Network Adapter</em></strong> you should monitor;</p>
<ul>
<li>Bytes / Sec</li>
<li>Packets / Sec</li>
</ul>
<h3></h3>
<h3><span>Storage Counters</span></h3>
<p>The storage counters are used to monitor overall disk performance on the system and each VM. There are:</p>
<ul>
<li>Physical Disk</li>
<li>Hyper-V Virtual Storage Device</li>
<li>Hyper-V Virtual IDE Controller</li>
</ul>
<p>The <strong><em>Physical </em><em>Disk</em> </strong>counter<strong> </strong>set will give overall storage performance on the system. The other two metrics are for VM’s only. Of the <strong><em>Physical Disk</em></strong> counter set there are three metrics that are useful to monitor. The <strong><em>Current Disk Queue Length</em></strong> measures how busy the drives are. This counter should be around two per drive, depending on your drive configuration. A queue length of 32 might indicate this disk is the bottleneck in your system.</p>
<p>Another useful counter is the <strong><em>Disk Bytes / Sec.</em></strong> You can typically expect to see about 10MB/sec per drive; a safe number for most drives. For random workloads, look at the counter <strong><em>Disk Transfers/Sec. </em></strong>Expect to see about 100 I/O’s per second (IOPs) for each drive. There are drives that can do much better, like 180 IOPs and some that perform worse.</p>
<p>Because of the way storage works in Hyper-V, there are two Hyper-V storage counter sets. Hyper-V provides two virtual storage buses for virtual machines. One IDE and one SCSI. The Virtual IDE counters show up in the <strong><em>Hyper-V Virtual IDE Controller</em></strong> counter set, unless the Integration Services are loaded. In that case you’ll see the activity for both virtual IDE and SCSI in the <strong><em>Hyper-V Virtual Storage Device </em></strong>counter set. If you don’t have integration services installed, only the <strong><em>Hyper-V Virtual IDE Controller</em></strong> will show the VM disk activity.</p>
<p>It wouldn’t hurt to monitor all the counters of both <strong><em>Hyper-V Virtual IDE Controller</em></strong> and <strong><em>Hyper-V Virtual Storage Device.</em></strong> Below are the basic metrics for these two counter sets:</p>
<p>For <strong><em>Hyper-V Virtual IDE Controller</em></strong> there are:</p>
<ul>
<li>Read Bytes / Sec</li>
<li>Write Bytes / Sec</li>
<li>Read Sectors / Sec</li>
<li>Write Sectors / Sec</li>
</ul>
<p>For <strong><em>Hyper-V Virtual Storage Device </em></strong>there are:</p>
<ul>
<li>Error Count</li>
<li>Flush Count</li>
<li>Read Bytes / Sec</li>
<li>Write Bytes / Sec</li>
<li>Read Count</li>
<li>Write Count</li>
</ul>
<p>That’s it for our discussion about the Hyper-V metrics that can be used to help you understand what the system is doing. In the table below, we’ll list all the counters:</p>
<ul>
<li>\Hyper-V Virtual Machine Health Summary \*</li>
<li>\Hyper-V Hypervisor\*</li>
<li>\Processor(_Total)\*</li>
<li>\Hyper-V Hypervisor Logical Processor(*)\%Guest Run</li>
<li>\Hyper-V Hypervisor Logical Processor(*)\%Hypervisor Run Time</li>
<li>\Hyper-V Hypervisor Logical Processor(*)\%Idle Run Time</li>
<li>\Hyper-V Hypervisor Logical Processor(*)\%Total Run Time</li>
<li>\Hyper-V Hypervisor Root Virtual Processor (*)\%Guest Run</li>
<li>\Hyper-V Hypervisor Root Virtual Processor (*)\%Hypervisor Run Time</li>
<li>\Hyper-V Hypervisor Root Virtual Processor (*)\%Idle Run Time</li>
<li>\Hyper-V Hypervisor Root Virtual Processor (*)\%Total Run Time</li>
<li>\Hyper-V Hypervisor Virtual Processor (_Total)\*</li>
<li>\Memory\Pages / Sec</li>
<li>\Memory\Available Bytes</li>
<li>\Hyper-V Hypervisor Partition(*)\2M GPA Pages</li>
<li>\Hyper-V Hypervisor Partition(*)\Deposited Pages</li>
<li>\Hyper-V Hypervisor Partition(*)\Virtual Processors</li>
<li>\Hyper-V Hypervisor Root Partition(*)\*</li>
<li>\Hyper-V VM Vid Partition(*)\Physical Pages Allocated</li>
<li>\Hyper-V VM Vid Partition(*)\Remote Physical Pages</li>
<li>\Network Interface(*)\*</li>
<li>\Hyper-V Virtual Switch(*)\*</li>
<li>\Hyper-V Legacy Network Adapter(*)\*</li>
<li>\Hyper-V Virtual Network Adapter(*)\*</li>
<li>\Physical Disk(*)\Current Disk Queue Length</li>
<li>\Physical Disk(*)\Disk Bytes / sec</li>
<li>\Physical Disk(*)\Disk Transfers/sec</li>
<li>\Hyper-V Virtual Storage Device(*)\*</li>
<li>\Hyper-V Virtual IDE Controller(*)\*</li>
</ul>
<p><em>(_Total) means only the total should be collected.</em></p>
<p><em>(*) means collect all counters. </em></p>
<p><em>\* means collect all the counters in the counter set. </em></p>
<p><em>\&lt;name&gt; means only collect that counter. </em></p>
<h3></h3>
<h3><span>Custom Monitor</span></h3>
<p>We have provided a custom monitor in VBScript that uses remote WMI and the available performance counters. The most important counters that we discussed in this article are included in this monitor. You can download this script from <a href="https://github.com/monitisexchange/Windows-Monitoring-Scripts">GitHub</a>.</p>
Share Now:<a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F02%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-2%2F&amp;title=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%202&amp;notes=In%20this%20second%20part%20of%20our%20monitoring%20Hyper-V%20article%20we%E2%80%99ll%20discuss%20the%20details%20about%20Processor%2C%20Memory%2C%20and%20Storage%20monitoring.%20In%20part%201%20we%20discussed%20the%20Overall%20Health%20metric%20set.%20Let%E2%80%99s%20start%20with%20the%20Processor%20Metrics.%20%0D%0AProcessor%20Metrics%0D%0ATh" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F02%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-2%2F&amp;title=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%202&amp;bodytext=In%20this%20second%20part%20of%20our%20monitoring%20Hyper-V%20article%20we%E2%80%99ll%20discuss%20the%20details%20about%20Processor%2C%20Memory%2C%20and%20Storage%20monitoring.%20In%20part%201%20we%20discussed%20the%20Overall%20Health%20metric%20set.%20Let%E2%80%99s%20start%20with%20the%20Processor%20Metrics.%20%0D%0AProcessor%20Metrics%0D%0ATh" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F02%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-2%2F&amp;t=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%202" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F02%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-2%2F&amp;title=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%202&amp;source=Uptime+%26amp%3B+Performance+Tips+Tips+for+SysAdmin%2C+Webmaster%2C+Network+Admin&amp;summary=In%20this%20second%20part%20of%20our%20monitoring%20Hyper-V%20article%20we%E2%80%99ll%20discuss%20the%20details%20about%20Processor%2C%20Memory%2C%20and%20Storage%20monitoring.%20In%20part%201%20we%20discussed%20the%20Overall%20Health%20metric%20set.%20Let%E2%80%99s%20start%20with%20the%20Processor%20Metrics.%20%0D%0AProcessor%20Metrics%0D%0ATh" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F02%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-2%2F&amp;Title=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%202" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/blinklist.png" class="sociable-img sociable-hovers" title="BlinkList" alt="BlinkList" /></a><a rel="nofollow"   href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F02%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-2%2F&amp;title=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%202" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/dzone.png" class="sociable-img sociable-hovers" title="DZone" alt="DZone" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F02%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-2%2F&amp;title=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%202&amp;annotation=In%20this%20second%20part%20of%20our%20monitoring%20Hyper-V%20article%20we%E2%80%99ll%20discuss%20the%20details%20about%20Processor%2C%20Memory%2C%20and%20Storage%20monitoring.%20In%20part%201%20we%20discussed%20the%20Overall%20Health%20metric%20set.%20Let%E2%80%99s%20start%20with%20the%20Processor%20Metrics.%20%0D%0AProcessor%20Metrics%0D%0ATh" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="http://reddit.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F02%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-2%2F&amp;title=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%202" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/reddit.png" class="sociable-img sociable-hovers" title="Reddit" alt="Reddit" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F02%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-2%2F&amp;title=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%202" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://twitter.com/home?status=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%202%20-%20http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F02%2F02%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-2%2F" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://blog.monitis.com/index.php/feed/" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.monitis.com/index.php/2012/02/02/vdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monitor Everything with Monitis &#8211; And do it easily with PowerShell &#8211; Part 14 (Final)</title>
		<link>http://blog.monitis.com/index.php/2012/01/31/monitor-everything-with-monitis-and-do-it-easily-with-powershell-part-14-final/</link>
		<comments>http://blog.monitis.com/index.php/2012/01/31/monitor-everything-with-monitis-and-do-it-easily-with-powershell-part-14-final/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 20:20:44 +0000</pubDate>
		<dc:creator>Hovhannes Avoyan</dc:creator>
				<category><![CDATA[Monitoring Scripts]]></category>
		<category><![CDATA[Windows Servers Monitoring]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[task scheduler]]></category>

		<guid isPermaLink="false">http://blog.monitis.com/?p=5310</guid>
		<description><![CDATA[Scheduling Custom Monitors with Monitis and PowerShell In last article, we talked about creating custom monitor updater commands that would run a script and upload the values to Monitis.  These custom updaters make it a snap to convert any PowerShell script to a Monitis monitor.  Simply plug the script in and start using it’s more [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-3383" style="float: right;" title="powershell" src="http://blog.monitis.com/wp-content/uploads/2011/08/pshell.jpeg" alt="" width="204" height="204" /></p>
<h3>Scheduling Custom Monitors with Monitis and PowerShell</h3>
<p>In last article, we talked about creating custom monitor updater commands that would run a script and upload the values to Monitis.  These custom updaters make it a snap to convert any PowerShell script to a Monitis monitor.  Simply plug the script in and start using it’s more logical name: Update-YourMonitor.<span id="more-5310"></span></p>
<pre>Add-MonitisCustomMonitorUpdater -Name OutOfPaper -ScriptBlock {
    Get-Counter "\Print Queue(*)\Out of Paper Errors" |
        Select-Object -ExpandProperty CounterSamples |
        Where-Object { $_.InstanceName -ne '_total' -and $_.CookedValue -gt 0} |
        Select-Object @{
            Label = "Printer"
            Expression={$_.InstanceName}
        }, @{
            Label = "OutOfPaperErrors"
            Expression={$_.CookedValue}
        }
} -Property Printer, OutOfPaperErrors</pre>
<p>&nbsp;</p>
<p>Once you’ve run this code, you can simply do:</p>
<pre>Import-Module Monitis
Update-MonitisOutOfPaper</pre>
<p>To update the values.</p>
<p>You can simply schedule the update by scheduling the two lines.  To click thru it, run TaskSched.msc, then create a new task.  Run PowerShell.exe as the task, and use the arguments –command Import-Module Monitis;Update-MonitisOutOfPaper.</p>
<p>You can also schedule the task using a script, but not one built into the box.</p>
<p>All throughout this article series, you’ve been focused on using the Monitis module and in-the-box capabilities of Powershell, but there are hundreds of community modules to choose from.  You can easily leverage these community modules in your own custom monitors.</p>
<p>In one very large collection of these modules, called the PowerShellPack (<a href="http://code.msdn.microsoft.com/PowerShellPack">http://code.msdn.microsoft.com/PowerShellPack</a>), there is a task scheduler module you can use to schedule the monitor.</p>
<p>Like every command in PowerShell and every command in the monitis module, you can find out about the commands in this module with Get-Command and Get-Help.</p>
<p>If you want to schedule a task that runs your custom monitor with this module, it will look something like this:</p>
<pre>New-Task |
    Add-TaskTrigger -OnBoot -Repeat "0:0:10" |
    Add-TaskAction -Script {
        Import-Module Monitis
        Update-OutOfPaper
    } |
    Register-ScheduledTask -name "CheckForOutOfPaper" -Credential (Get-Credential)</pre>
<p>Register-ScheduledTask -name &#8220;CheckForOutOfPaper&#8221; -Credential (Get-Credential)</p>
<p>New task creates a new task</p>
<p>Add-TaskTrigger gives it a new trigger, on boot and repeating every 10 minutes thereafter.</p>
<p>Add-TaskAction runs the monitor, importing the module and running Update-OutOfPapeer.</p>
<p>Register-ScheduledTask registers the task, and –Credential registers the credential the task will be run under.</p>
<p>That’s it.  Now you can create a monitor to hold any piece of information, collect that information with PowerShell, and update it on a regular basis.  Thanks to your notification rule, your printer lackey will automatically head off to keep your printers filled, and you can monitor your friends Facebook updates while Monitis and PowerShell monitor your data center.</p>
<p>Monitis is an incredible monitoring platform with the flexibility to monitor whatever you want.  PowerShell is an incredible task management and automation platform that can do anything you need it to.  Together, you truly can Monitis anything with Monitis.</p>
<p>See also:</p>
<p><a title="Permanent Link to Monitor Everything with Monitis – And do it easily with PowerShell – Part 1" href="http://blog.monitis.com/index.php/2011/09/19/monitor-everything-with-monitis-and-do-it-easily-with-powershell-part-1/" rel="bookmark">Monitor Everything with Monitis – And do it easily with PowerShell – Part 1</a></p>
<p><a title="Permanent Link to Monitor Everything with Monitis – And do it easily with PowerShell – Part 2" href="http://blog.monitis.com/index.php/2011/09/22/monitor-everything-with-monitis-and-do-it-easily-with-powershell-part-2/" rel="bookmark">Part 2: Managing External Monitors with Monitis and PowerShell</a></p>
<p><a title="Permanent Link to Monitor Everything with Monitis – And do it easily with PowerShell – Part 3" href="http://blog.monitis.com/index.php/2011/09/29/monitor-everything-with-monitis-and-do-it-easily-with-powershell-part3/" rel="bookmark">Part 3: Mining External Monitor Results with Monitis and PowerShell</a></p>
<p><a title="Permanent Link to Monitor Everything with Monitis – And do it easily with PowerShell – Part 4" href="http://blog.monitis.com/index.php/2011/10/04/monitor-everything-with-monitis-and-do-it-easily-with-powershell-part-4/" rel="bookmark">Part 4: Monitoring Web Applications with Monitis</a></p>
<p><a title="Permanent Link to Monitor Everything with Monitis – And do it easily with PowerShell – Part 5" href="http://blog.monitis.com/index.php/2011/10/10/monitor-everything-with-monitis-and-do-it-easily-with-powershell-part-5/" rel="bookmark">Part 5: Testing Web Content with Monitis, Excel, and PowerShell</a></p>
<p><a title="Permanent Link to Monitor Everything with Monitis – And do it easily with PowerShell – Part 6" href="http://blog.monitis.com/index.php/2011/10/11/monitor-everything-with-monitis-and-do-it-easily-with-powershell-part-6/" rel="bookmark">Part 6: Monitoring Anything with a Custom Monitor</a></p>
<p><a title="Permanent Link to Monitor Everything with Monitis – And do it easily with PowerShell – Part 7" href="http://blog.monitis.com/index.php/2011/10/14/monitor-everything-with-monitis-and-do-it-easily-with-powershell-part-7/" rel="bookmark">Part 7:  Hardware Inventory with Monitis Custom Monitors</a></p>
<p><a title="Permanent Link to Monitor Everything with Monitis – And do it easily with PowerShell – Part 8" href="http://blog.monitis.com/index.php/2011/10/31/monitor-everything-with-monitis-and-do-it-easily-with-powershell-part-8-2/" rel="bookmark">Part 8: Monitoring Logons with Monitis</a></p>
<p><a title="Permanent Link to Monitor Everything with Monitis – And do it easily with PowerShell – Part 9" href="http://blog.monitis.com/index.php/2011/11/02/monitor-everything-with-monitis-and-do-it-easily-with-powershell-part-9/" rel="bookmark">Part 9: Monitoring Connections to Shared Folders with Monitis and Custom Monitors</a></p>
<p><a title="Permanent Link to Monitor Everything with Monitis – And do it easily with PowerShell – Part 10" href="http://blog.monitis.com/index.php/2011/11/17/monitor-everything-with-monitis-and-do-it-easily-with-powershell-part-10/" rel="bookmark">Part 10: Inventory Windows Installations with Monitis and PowerShell</a></p>
<p><a title="Permanent Link to Monitor Everything with Monitis – And do it easily with PowerShell – Part 11" href="http://blog.monitis.com/index.php/2011/12/08/monitis-with-powershell-part-10-2/" rel="bookmark">Part 11: Monitoring Removable Disks on Many Computers with Monitis and PowerShell</a></p>
<p><a title="Permanent Link to Monitor Everything with Monitis – And do it easily with PowerShell – Part 12" href="http://blog.monitis.com/index.php/2011/12/13/monitor-everything-with-monitis-and-do-it-easily-with-powershell-part-12/" rel="bookmark">Part 12: Monitoring Event Logs and Using Monitis Notifications</a></p>
<p><a title="Permanent Link to Monitor Everything with Monitis – And do it easily with PowerShell – Part 13" href="http://blog.monitis.com/index.php/2012/01/17/monitor-everything-with-monitis-and-do-it-easily-with-powershell-part-13/" rel="bookmark">Part 13: Monitoring out of Paper with Monitis (Printer Monitoring)</a></p>
<p><a title="Permanent Link to Monitor Everything with Monitis – And do it easily with PowerShell – Part 13" href="http://blog.monitis.com/index.php/2012/01/17/monitor-everything-with-monitis-and-do-it-easily-with-powershell-part-13/" rel="bookmark"> </a></p>
Share Now:<a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fmonitor-everything-with-monitis-and-do-it-easily-with-powershell-part-14-final%2F&amp;title=Monitor%20Everything%20with%20Monitis%20-%20And%20do%20it%20easily%20with%20PowerShell%20-%20Part%2014%20%28Final%29&amp;notes=%0D%0AScheduling%20Custom%20Monitors%20with%20Monitis%20and%20PowerShell%0D%0AIn%20last%20article%2C%20we%20talked%20about%20creating%20custom%20monitor%20updater%20commands%20that%20would%20run%20a%20script%20and%20upload%20the%20values%20to%20Monitis.%C2%A0%20These%20custom%20updaters%20make%20it%20a%20snap%20to%20convert%20any%20PowerS" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fmonitor-everything-with-monitis-and-do-it-easily-with-powershell-part-14-final%2F&amp;title=Monitor%20Everything%20with%20Monitis%20-%20And%20do%20it%20easily%20with%20PowerShell%20-%20Part%2014%20%28Final%29&amp;bodytext=%0D%0AScheduling%20Custom%20Monitors%20with%20Monitis%20and%20PowerShell%0D%0AIn%20last%20article%2C%20we%20talked%20about%20creating%20custom%20monitor%20updater%20commands%20that%20would%20run%20a%20script%20and%20upload%20the%20values%20to%20Monitis.%C2%A0%20These%20custom%20updaters%20make%20it%20a%20snap%20to%20convert%20any%20PowerS" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fmonitor-everything-with-monitis-and-do-it-easily-with-powershell-part-14-final%2F&amp;t=Monitor%20Everything%20with%20Monitis%20-%20And%20do%20it%20easily%20with%20PowerShell%20-%20Part%2014%20%28Final%29" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fmonitor-everything-with-monitis-and-do-it-easily-with-powershell-part-14-final%2F&amp;title=Monitor%20Everything%20with%20Monitis%20-%20And%20do%20it%20easily%20with%20PowerShell%20-%20Part%2014%20%28Final%29&amp;source=Uptime+%26amp%3B+Performance+Tips+Tips+for+SysAdmin%2C+Webmaster%2C+Network+Admin&amp;summary=%0D%0AScheduling%20Custom%20Monitors%20with%20Monitis%20and%20PowerShell%0D%0AIn%20last%20article%2C%20we%20talked%20about%20creating%20custom%20monitor%20updater%20commands%20that%20would%20run%20a%20script%20and%20upload%20the%20values%20to%20Monitis.%C2%A0%20These%20custom%20updaters%20make%20it%20a%20snap%20to%20convert%20any%20PowerS" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fmonitor-everything-with-monitis-and-do-it-easily-with-powershell-part-14-final%2F&amp;Title=Monitor%20Everything%20with%20Monitis%20-%20And%20do%20it%20easily%20with%20PowerShell%20-%20Part%2014%20%28Final%29" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/blinklist.png" class="sociable-img sociable-hovers" title="BlinkList" alt="BlinkList" /></a><a rel="nofollow"   href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fmonitor-everything-with-monitis-and-do-it-easily-with-powershell-part-14-final%2F&amp;title=Monitor%20Everything%20with%20Monitis%20-%20And%20do%20it%20easily%20with%20PowerShell%20-%20Part%2014%20%28Final%29" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/dzone.png" class="sociable-img sociable-hovers" title="DZone" alt="DZone" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fmonitor-everything-with-monitis-and-do-it-easily-with-powershell-part-14-final%2F&amp;title=Monitor%20Everything%20with%20Monitis%20-%20And%20do%20it%20easily%20with%20PowerShell%20-%20Part%2014%20%28Final%29&amp;annotation=%0D%0AScheduling%20Custom%20Monitors%20with%20Monitis%20and%20PowerShell%0D%0AIn%20last%20article%2C%20we%20talked%20about%20creating%20custom%20monitor%20updater%20commands%20that%20would%20run%20a%20script%20and%20upload%20the%20values%20to%20Monitis.%C2%A0%20These%20custom%20updaters%20make%20it%20a%20snap%20to%20convert%20any%20PowerS" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="http://reddit.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fmonitor-everything-with-monitis-and-do-it-easily-with-powershell-part-14-final%2F&amp;title=Monitor%20Everything%20with%20Monitis%20-%20And%20do%20it%20easily%20with%20PowerShell%20-%20Part%2014%20%28Final%29" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/reddit.png" class="sociable-img sociable-hovers" title="Reddit" alt="Reddit" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fmonitor-everything-with-monitis-and-do-it-easily-with-powershell-part-14-final%2F&amp;title=Monitor%20Everything%20with%20Monitis%20-%20And%20do%20it%20easily%20with%20PowerShell%20-%20Part%2014%20%28Final%29" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://twitter.com/home?status=Monitor%20Everything%20with%20Monitis%20-%20And%20do%20it%20easily%20with%20PowerShell%20-%20Part%2014%20%28Final%29%20-%20http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fmonitor-everything-with-monitis-and-do-it-easily-with-powershell-part-14-final%2F" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://blog.monitis.com/index.php/feed/" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.monitis.com/index.php/2012/01/31/monitor-everything-with-monitis-and-do-it-easily-with-powershell-part-14-final/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You Can Monitor Your XenServer With Monitis!</title>
		<link>http://blog.monitis.com/index.php/2012/01/31/you-can-monitor-your-xenserver-with-monitis/</link>
		<comments>http://blog.monitis.com/index.php/2012/01/31/you-can-monitor-your-xenserver-with-monitis/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 12:41:50 +0000</pubDate>
		<dc:creator>Wawrzyniec</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[Monitis API]]></category>
		<category><![CDATA[Monitoring Scripts]]></category>
		<category><![CDATA[Server Management]]></category>
		<category><![CDATA[Virtual Servers]]></category>
		<category><![CDATA[Citrix]]></category>
		<category><![CDATA[hypervisor]]></category>
		<category><![CDATA[virtual machines]]></category>
		<category><![CDATA[virtuali]]></category>
		<category><![CDATA[xcp]]></category>
		<category><![CDATA[xen]]></category>
		<category><![CDATA[xenserver]]></category>

		<guid isPermaLink="false">http://blog.monitis.com/?p=5083</guid>
		<description><![CDATA[As we have discussed on the Monitis blog virtualization is one of the hottest IT subjects today. One leader in this field is Citrix &#8212; with the XenServer product family. XenServer is the most known commercial implementation of of the open source Xen hypervisor. By the way, you should pronounced Xen like “zen.” It comes from [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://citrix.com/xenserver"><img class="alignright" style="margin: 10px; float: right;" src="https://lh3.googleusercontent.com/VFa_cmL73N4fkuC9fRb7yXdHQ1CuRgKCgnHpQ5ENrwsXDDYMFma8Pny3SXl6qEHTbKKRVRAxZYa7dLmLXY7fIU_DP2e2aU5PUkGiDbDy7ZHjTXZYZ4c" alt="Left side (image): Hand crushing computer equpment; Right side (text): XenServer6 Intgrate, manage and automate a virtual datacenter. Learn More" width="250" height="84" /></a></p>
<p>As we have discussed on the Monitis blog <a href="../index.php/tag/virtualization/">virtualization</a> is one of the hottest IT subjects today.</p>
<p>One <a href="http://www.citrix.com/site/resources/dynamic/additional/citirix_magic_quadrant_2011.pdf?ntref=xsmain_promo_gartnerMQ">leader</a> in this field is Citrix &#8212; with the <a href="http://www.citrix.com/English/ps2/products/feature.asp?contentID=2316933">XenServer</a> product family. XenServer is the most known commercial implementation of of the open source <a href="http://xen.org/">Xen</a> hypervisor. By the way, you should pronounced Xen like “zen.” It comes from a Greek word meaning “guest.”</p>
<p><span id="more-5083"></span>In the IT world, Xen originated as a research project, led by Ian Pratt at England’s Cambridge University. It was first developed by XenSource Inc., and after acquisition, the work was continued by Citrix. Currently, you can choose between <a href="http://www.citrix.com/English/ps2/products/subfeature.asp?contentID=2300456">4 editions</a> of XenServer:</p>
<ul>
<li>XenServer [Free Edition]</li>
<li>XenServer Advanced Edition</li>
<li>XenServer Enterprise Edition</li>
<li>XenServer Platinum Edition</li>
</ul>
<p>Other Citrix &#8220;Xen&#8221; technology, like XenApp or XenDesktop, are not related to the original Xen project.</p>
<p>In 2009, Citrix decided to open the source of XenServer, and the company created <a href="http://xen.org/products/cloudxen.html">XCP</a> (Xen Cloud Platform). In the first phase, XCP was a whole Linux distribution. Recently, the initiative has been extended to provide XAPI toolstack on standard Linux distribution, in the first place for Debian and Ubuntu. What this means is that you can try XAPI on your home machine.</p>
<p><strong>Monitoring</strong></p>
<p>In the article below, we’ll learn how to apply daemon exporting XenServer metrics to Monitis. This is only proof of concept, but it can be easily modified to do exactly what you want. (This is the power you get using <a href="http://portal.monitis.com/index.php/products/open-ai">Monitis Open API</a>).</p>
<p><strong><em> XenServer/XCP</em></strong></p>
<p>There is a dedicated XenServer monitoring tool included in all paid editions. You can also find some third-party tools. Obviously, we are interested in how we can monitor XenServer and XCP with Monitis. One possible way is to enable <a href="http://support.citrix.com/article/CTX116187">SNMP</a> on XenServer and treat it as a standard Linux <a href="../index.php/2011/07/08/cacti-snmp-monitis-and-whats-between-them/">in Monitis</a>. After all, XenServer and XCP dom0 are based on CentOS. Another method that we are going to give an overview of today is XenServer/XCP-specific. XenServer enables you to download, host and store all VM statistic in a  <a href="http://oss.oetiker.ch/rrdtool/">RRD</a> (Round Robin Database) using HTTP handler. You can find some information on how to use XenServer RRD data in two documents from the Citrix Community page (Click <a href="http://community.citrix.com/display/xs/XenServer+Software+Development+Kit+Guide#XenServerSoftwareDevelopmentKitGuide-5.1.%26nbsp%3BPersistentXenServerPerformanceStatistics">here</a> and <a href="http://community.citrix.com/display/xs/Using+XenServer+RRDs">here</a>). In the second document, you’ll see that there are two examples of Python scripts that we are going to use for the base to our daemon updating XenServer monitors in Monitis. Both scripts use the python &#8220;rrd_update&#8221; module. You can also find on this on the <a href="http://community.citrix.com/download/attachments/163943399/parse_rrd.py">Citrix page</a> or grab it from <a href="https://github.com/wawrzek/XenRRD">github</a>.</p>
<p><em><strong> Monitis</strong></em></p>
<p>Monitis has dedicated libraries in many programing languages. You need to use python to export XenServer RRD; therefore to update results on Monitis, we are going to use the <a href="../index.php/2011/07/07/custom-monitors-in-monitis-with-python/">python</a> library, too. The code can be obtained from our <a href="https://github.com/monitisexchange/Python-Monitis-Scripts">github</a> repository. Please remember that you need the <a href="http://effbot.org/zone/element-index.htm">elementtree</a> module, which is not a part of standard python distribution. Plus, you have to get it from the official website or obtain it from your distribution repository. There is a note about it in the code, but not in the original article.</p>
<p>&nbsp;</p>
<p><strong>xen2monitis</strong></p>
<p>Having these two weapons, we are now ready to attack. First, there is the example code in our git repository that you can install on XenServer or Linux distribution with XCP. Alternately, you can choose another server with a connection to both Monitis and the XenServer that you want to monitor. However, installing our daemon on XenServer/XCP seems to be the best choice.</p>
<p>Here are some easy directions:</p>
<p>1.) Create the Xen2Monitis default directory:</p>
<pre style="padding-left: 30px; padding-bottom: 1em;">mkdir /var/local/lib/xen2monitis</pre>
<p>2.) Download the xen2monitis code which is part of Monitis-Linux-Scripts:</p>
<pre style="padding-left: 30px; padding-bottom: 1em;">git clone <a href="https://github.com/monitisexchange/Xen2Monitis.git">https://github.com/monitisexchange/Monitis-Linux-Scripts.git</a></pre>
<p>3.) Copy Xen2Monits file to default location:</p>
<pre style="padding-left: 30px; padding-bottom: 1em;">cp  Monitis-Linux-Scripts.git/Xen2Monits/* /var/local/lib/xen2monitis</pre>
<p>4.) Go to created directory:</p>
<pre style="padding-left: 30px; padding-bottom: 1em;">cd /var/local/lib/xen2monitis</pre>
<p>5.) Obtain the elementtree module:<br />
- You can get the source code:</p>
<pre style="padding-left: 30px; padding-bottom: 1em;">wget <a href="http://effbot.org/media/downloads/elementtree-1.2.6-20050316.tar.gz">http://effbot.org/media/downloads/elementtree-1.2.6-20050316.tar.gz</a></pre>
<p>- Or you can get a dedicated package for your distribution. If you plan to use XenServer, the elementtree is already installed there.</p>
<p>6.) Install the elementtree (if not already done by your distribution)<br />
- for source code (the last command as root):</p>
<pre style="padding-left: 30px; padding-bottom: 1em;">tar -xzf elementtree-1.2.6-20050316.tar.gz
cd elementtree-1.2.6-20050316
python setup.py install</pre>
<p>7.) Next, add your API Key and Secret to a file. Please separate them with &#8220;,&#8221;.The default ‘secret file’ is  <em>/usr/local/xen2monitis/secret</em></p>
<p>8.) Add the xenserver root password to your secret file, so it should be similar to:</p>
<pre style="padding-left: 30px; padding-bottom: 1em;">5DQQ0460S18ERNRNRUI7M905N1, 7MA9XJNDL3KAMBAKFR9981N04J, secret_password</pre>
<p>9.) Now you can start the daemon:</p>
<pre style="padding-left: 30px; padding-bottom: 1em;">/usr/local/lib/xen2monitis/xen2monitis.py start</pre>
<p>10.) You need to wait few minutes. You can check if your script works without any problems in <em>/var/log/xs2monitis.log</em>.</p>
<p>11.) After a few minutes, you should have a bunch of new graphs that you can add to the Dashboard by <em>Monitors-&gt;Custom Monitor</em> menu.</p>
<p><em><strong>Monitor Name Conventions</strong></em></p>
<p>When you look at newly created monitor names, you might be a bit confused. The names tend to be very long and have a strange set of strings separated by ‘-’, for example:</p>
<p>lisbon &#8211; cpu1 (HOST: 0c1bb847-d867-75ff-27e0-7b468f1385f2)</p>
<p>Such name conventions were chosen to ensure the uniqueness of each monitor. Imagine that you have two VMs called &#8220;Win7&#8243;. Daemon would not be able to distinguish between them and would save all data into one monitor! To address it, XenServer UUID (universally unique identifier), what looks like set of strings separated by &#8220;-&#8221;, is added to each title.</p>
<p>&nbsp;</p>
<p><strong>Daemon Modification</strong></p>
<p>Using xen2monitis.py script, please remember that there are some values you can define at the beginning of the file, for example:</p>
<ul>
<li>where is the secret file (default <em>/usr/local/lib/xen2monitis/secret</em>)</li>
<li>where is the lock file (default <em>/var/run/xen2monitis.pid</em>)</li>
<li>where is the log file (default<em> /var/log/xen2monitis.log</em>)</li>
<li>the url to pool master (default <em>http://localhost</em>)</li>
</ul>
<p>You might prefer not to use daemon, but, instead, call up script from cron job. It’s not a big problem. You need to copy the main loop, start after line 115 to separate the file and convert it.</p>
<p>We hope this article showing you how to monitor your XenServer with Monitis makes your IT life a lot easier. Please share some tips of your own!</p>
Share Now:<a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fyou-can-monitor-your-xenserver-with-monitis%2F&amp;title=You%20Can%20Monitor%20Your%20XenServer%20With%20Monitis%21&amp;notes=%0D%0A%0D%0AAs%20we%20have%20discussed%20on%20the%20Monitis%20blog%20virtualization%20is%20one%20of%20the%20hottest%20IT%20subjects%20today.%0D%0A%0D%0AOne%C2%A0leader%20in%20this%20field%20is%20Citrix%20--%20with%20the%20XenServer%20product%20family.%20XenServer%20is%20the%20most%20known%20commercial%20implementation%20of%20of%20the%20open%20sou" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fyou-can-monitor-your-xenserver-with-monitis%2F&amp;title=You%20Can%20Monitor%20Your%20XenServer%20With%20Monitis%21&amp;bodytext=%0D%0A%0D%0AAs%20we%20have%20discussed%20on%20the%20Monitis%20blog%20virtualization%20is%20one%20of%20the%20hottest%20IT%20subjects%20today.%0D%0A%0D%0AOne%C2%A0leader%20in%20this%20field%20is%20Citrix%20--%20with%20the%20XenServer%20product%20family.%20XenServer%20is%20the%20most%20known%20commercial%20implementation%20of%20of%20the%20open%20sou" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fyou-can-monitor-your-xenserver-with-monitis%2F&amp;t=You%20Can%20Monitor%20Your%20XenServer%20With%20Monitis%21" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fyou-can-monitor-your-xenserver-with-monitis%2F&amp;title=You%20Can%20Monitor%20Your%20XenServer%20With%20Monitis%21&amp;source=Uptime+%26amp%3B+Performance+Tips+Tips+for+SysAdmin%2C+Webmaster%2C+Network+Admin&amp;summary=%0D%0A%0D%0AAs%20we%20have%20discussed%20on%20the%20Monitis%20blog%20virtualization%20is%20one%20of%20the%20hottest%20IT%20subjects%20today.%0D%0A%0D%0AOne%C2%A0leader%20in%20this%20field%20is%20Citrix%20--%20with%20the%20XenServer%20product%20family.%20XenServer%20is%20the%20most%20known%20commercial%20implementation%20of%20of%20the%20open%20sou" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fyou-can-monitor-your-xenserver-with-monitis%2F&amp;Title=You%20Can%20Monitor%20Your%20XenServer%20With%20Monitis%21" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/blinklist.png" class="sociable-img sociable-hovers" title="BlinkList" alt="BlinkList" /></a><a rel="nofollow"   href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fyou-can-monitor-your-xenserver-with-monitis%2F&amp;title=You%20Can%20Monitor%20Your%20XenServer%20With%20Monitis%21" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/dzone.png" class="sociable-img sociable-hovers" title="DZone" alt="DZone" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fyou-can-monitor-your-xenserver-with-monitis%2F&amp;title=You%20Can%20Monitor%20Your%20XenServer%20With%20Monitis%21&amp;annotation=%0D%0A%0D%0AAs%20we%20have%20discussed%20on%20the%20Monitis%20blog%20virtualization%20is%20one%20of%20the%20hottest%20IT%20subjects%20today.%0D%0A%0D%0AOne%C2%A0leader%20in%20this%20field%20is%20Citrix%20--%20with%20the%20XenServer%20product%20family.%20XenServer%20is%20the%20most%20known%20commercial%20implementation%20of%20of%20the%20open%20sou" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="http://reddit.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fyou-can-monitor-your-xenserver-with-monitis%2F&amp;title=You%20Can%20Monitor%20Your%20XenServer%20With%20Monitis%21" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/reddit.png" class="sociable-img sociable-hovers" title="Reddit" alt="Reddit" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fyou-can-monitor-your-xenserver-with-monitis%2F&amp;title=You%20Can%20Monitor%20Your%20XenServer%20With%20Monitis%21" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://twitter.com/home?status=You%20Can%20Monitor%20Your%20XenServer%20With%20Monitis%21%20-%20http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F31%2Fyou-can-monitor-your-xenserver-with-monitis%2F" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://blog.monitis.com/index.php/feed/" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.monitis.com/index.php/2012/01/31/you-can-monitor-your-xenserver-with-monitis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NGINX Best Practices</title>
		<link>http://blog.monitis.com/index.php/2012/01/30/nginx-best-practices/</link>
		<comments>http://blog.monitis.com/index.php/2012/01/30/nginx-best-practices/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 20:18:11 +0000</pubDate>
		<dc:creator>glenn.chen</dc:creator>
				<category><![CDATA[Linux Servers Monitoring]]></category>
		<category><![CDATA[Mac OS Monitoring]]></category>
		<category><![CDATA[Performance Management]]></category>
		<category><![CDATA[Server Management]]></category>
		<category><![CDATA[Nginx]]></category>

		<guid isPermaLink="false">http://blog.monitis.com/?p=5163</guid>
		<description><![CDATA[&#160; Need for Speed? With its first public release in 2004, NGINX now is the second most used web server in the world. This is quite impressive considering NGINX was born among several big players including Apache, Microsoft IIS, and other popular web server software. By sharing best practices and a few tips today, we [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p><strong>Need for Speed?<a href="http://blog.monitis.com/wp-content/uploads/2012/01/nginx_logo.jpeg"><img class="alignright size-full wp-image-5252" style="float: right;" src="http://blog.monitis.com/wp-content/uploads/2012/01/nginx_logo.jpeg" alt="" width="250" /></a></strong></p>
<p>With its first public release in 2004, NGINX now is the <a href="http://wiki.nginx.org/Main" target="_blank">second most used web server in the world</a>. This is quite impressive considering NGINX was born among several big players including Apache, Microsoft IIS, and other popular <a href="http://en.wikipedia.org/wiki/Comparison_of_web_server_software" target="_blank">web server software</a>. By sharing best practices and a few tips today, we would like to bring NGINX&#8217;s new blood up to speed. Even if you come from the Apache world, you will learn how to build an Apache server that married NGINX, an extremely fast and high-performance web server. Let&#8217;s go:<span id="more-5163"></span></p>
<ol>
<li><strong>Make sure your OS is well supported by NGINX:</strong><br />
In particular, double-check NGINX supports the event polling system call under your operating system. This is important because the beauty of NGINX is its asynchronous architecture for event handling. (This design is used to address the <a href="http://en.wikipedia.org/wiki/C10k_problem" target="_blank">C10k problem</a>, literally, to handle 10,000 clients simultaneously.) Under Windows, however, NGINX uses select() for event polling. While select() is non-blocking, select() can limit a process to have only 1024 open file descriptors. Therefore if you expect your NGINX server to be high-performance, Windows might not be your best environment to work with.</li>
<li><strong>Improve</strong><strong> disk I/O if possible</strong>:<a href="http://blog.monitis.com/wp-content/uploads/2012/01/disk1.png"><img class="alignright size-full wp-image-5250" src="http://blog.monitis.com/wp-content/uploads/2012/01/disk1.png" alt="" width="150" height="139" /></a>
<ul>
<li>You can turn off NGINX access logs and use the client site scripts such as <a href="http://www.google.com/analytics/" target="_blank">Google Analytics</a> to collect statistics. This way NGINX will not record every single request to your log file, reducing disk I/O significantly. It is not recommended you also turn off the error logs. After all, errors are important information, and they don&#8217;t occur that often anyway.</li>
<li>Configure <a href="http://wiki.nginx.org/HttpCoreModule#open_file_cache" target="_blank">&#8220;open file cache&#8221;</a> if your system supports it. Note that the actual file is not cached, but the pointer to the file instead. That is, an inode in your filesystem. Why cachin<strong></strong>g inodes can speed up disk I/O? Think of inodes as a back-of-the-book index, which can help you look up information quickly.</li>
</ul>
</li>
<li><strong>Improve network I/O if possible:</strong><a href="http://blog.monitis.com/wp-content/uploads/2012/01/Archive_GZIP1.png"><img class="alignright size-full wp-image-5296" src="http://blog.monitis.com/wp-content/uploads/2012/01/Archive_GZIP1.png" alt="" width="150" height="150" /></a><br />
Turn on the &#8220;<a href="http://wiki.nginx.org/HttpGzipModule" target="_blank">Gzip&#8221;</a> module so you can compress data before sending them over the network. Nowadays the CPUs are so fast that you can even tell NGINX to use level 6 compression just to save a bit bandwidth. If you are worried about CPU hogs, use level 1 compression since it has the best compression to time ratio.</li>
<li><strong>Tweak the HTTP keep alive setting:<br />
</strong>NGINX is so memory efficient that it is possible to use only ~2.5 M to maintain 10k HTTP keep-alive connections. (too scary to be true, isn&#8217;t it?) This gives systemadmin plenty of room to lift the<a href="http://wiki.nginx.org/HttpCoreModule#keepalive_timeout" target="_blank"> &#8220;keep alive</a>&#8221; limit. The idea is to have as many keep alive connections as possible, and set the keep alive timeout with a larger number as well. Why not setting them both to infinite? It is because you want to think about malicious users. Attackers can abuse your generous setting and possibly exhaust your server memory.<strong></strong></li>
<li><strong>Configure NGINX as a load balancer:</strong><br />
This is easy to configure. The example below shows how NGINX uses  round-robin and client IP to achive load-balancing across backend servers.<br />
<a href="http://blog.monitis.com/wp-content/uploads/2012/01/load.png"><img class="size-full wp-image-5178 alignnone" src="http://blog.monitis.com/wp-content/uploads/2012/01/load.png" alt="" width="261" height="232" /></a></li>
<li><strong>Configure NGINX as a reverse proxy:<br />
</strong>Combining Apache with Nginx is a very popular setup. The idea is to have NGINX serve static files, and let Apache handle dynamic content.<br />
<a href="http://blog.monitis.com/wp-content/uploads/2012/01/nginxproxy1.png"><img class="alignnone size-full wp-image-5181" src="http://blog.monitis.com/wp-content/uploads/2012/01/nginxproxy1.png" alt="" width="503" height="270" /></a><a href="http://blog.monitis.com/wp-content/uploads/2012/01/nginxproxy2.png"><img class="alignnone size-full wp-image-5182" src="http://blog.monitis.com/wp-content/uploads/2012/01/nginxproxy2.png" alt="" width="269" height="90" /></a></li>
<li><strong>Only Enable the NGINX modules you need:</strong><br />
<a href="http://blog.monitis.com/wp-content/uploads/2012/01/nginx-module.png"><img class="size-full wp-image-5173 alignright" src="http://blog.monitis.com/wp-content/uploads/2012/01/nginx-module.png" alt="" width="300" height="178" /></a>In other words, turn off the modules you are not using. Keep your NGINX simple and small. Not only you can save memory, this can also improves overall security. For example, if you are not using NGINX as a load balancer, disable the <a href="http://wiki.nginx.org/HttpUpstreamModule" target="_blank">&#8220;Upstream</a>&#8221; module.</li>
<li><strong>Avoid NGINX configuration pitfalls:<br />
</strong>First of all, NGINX is not Apache. If you are new to NGINX&#8217;s configuration, you might want to check out the wiki first to have a glimpse of NGINX&#8217;s <a href="http://wiki.nginx.org/Configuration" target="_blank">rich configuration options</a>. The following are some quick tips for configuring NGINX:</p>
<ul>
<li>Factor out &#8220;root&#8221; outside of a location block.</li>
<li>Factor out &#8220;index&#8221; to the http block.</li>
<li>Avoid using &#8220;if&#8221; unless you really have to.</li>
<li>Use &#8220;try_files&#8221; if you want to check if a file exists.</li>
<li>Use &#8220;try_files&#8221; first to serve static content on dynamic pages.</li>
<li>Use &#8220;script_filename&#8221; to avoid hardcoding absolute paths.</li>
<li>Use &#8221; $request_uri&#8221; to avoid using regular expression</li>
<li>Use &#8220;rewrite&#8221; and &#8220;http://&#8221; to force absolute path.</li>
<li>Use &#8220;map&#8221; to customize your key-value pairs.</li>
<li>Use &#8220;stub_status&#8221; to <a href="http://blog.monitis.com/index.php/2012/01/23/integrate-nginx-monitoring-into-monitis-com/" target="_blank">monitor</a> your server.</li>
<li>You can combine http and https block in NGINX</li>
<li>Set &#8220;<code>proxy_connect_timeout</code>&#8221; higher under heavy load.</li>
<li>Clear browser cache before testing the new configuration.</li>
</ul>
</li>
</ol>
<h3>Conclusion:</h3>
<p>NGINX is the king of serving static contents. Believe it or not, you don&#8217;t need to tweak much to optimize your NGINX server. The default configuration works quite well. It gives you a sense of &#8220;you don&#8217;t pay for what you don&#8217;t use.&#8221; If you do need to customize your NGINX, please follow NGINX best practices and, remember NGINX&#8217;s underlying principle: lean and fast.</p>
<p>We hope you enjoy the article. As a bonus, Monitis® offers enterprise-level solutions to <a title="Nginx Monitoring" href="http://blog.monitis.com/index.php/2012/01/23/integrate-nginx-monitoring-into-monitis-com/" target="_blank">monitor your NGINX servers</a>. You can get your free signup <a href="https://www.monitis.com/free_signup.jsp" target="_blank">here</a>.</p>
<p>&#8212;</p>
<p>Useful Links:<br />
Integrate NGINX Monitoring into Monitis.com:<br />
<a href="http://blog.monitis.com/index.php/2012/01/23/integrate-nginx-monitoring-into-monitis-com/" target="_blank">http://blog.monitis.com/index.php/2012/01/23/integrate-nginx-monitoring-into-monitis-com/</a><br />
Monitis Free Registration:<br />
<a href="https://www.monitis.com/free_signup.jsp" target="_blank">https://www.monitis.com/free_signup.jsp</a></p>
<p><a href="https://www.monitis.com/free_signup.jsp?utm_source=blog&amp;utm_medium=banner&amp;utm_campaign=apache1"><img src="http://blog.monitis.com/wp-content/uploads/2011/07/Banner-468-x-60.jpg" alt="Monitis Monitoring Platform" width="468" height="60" /></a></p>
Share Now:<a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fnginx-best-practices%2F&amp;title=NGINX%20Best%20Practices&amp;notes=%26nbsp%3B%0D%0A%0D%0ANeed%20for%20Speed%3F%0D%0A%0D%0AWith%20its%20first%20public%20release%20in%202004%2C%20NGINX%20now%20is%20the%20second%20most%20used%20web%20server%20in%20the%20world.%20This%20is%20quite%20impressive%20considering%20NGINX%20was%20born%20among%20several%20big%20players%20including%20Apache%2C%20Microsoft%20IIS%2C%20and%20other%20po" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fnginx-best-practices%2F&amp;title=NGINX%20Best%20Practices&amp;bodytext=%26nbsp%3B%0D%0A%0D%0ANeed%20for%20Speed%3F%0D%0A%0D%0AWith%20its%20first%20public%20release%20in%202004%2C%20NGINX%20now%20is%20the%20second%20most%20used%20web%20server%20in%20the%20world.%20This%20is%20quite%20impressive%20considering%20NGINX%20was%20born%20among%20several%20big%20players%20including%20Apache%2C%20Microsoft%20IIS%2C%20and%20other%20po" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fnginx-best-practices%2F&amp;t=NGINX%20Best%20Practices" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fnginx-best-practices%2F&amp;title=NGINX%20Best%20Practices&amp;source=Uptime+%26amp%3B+Performance+Tips+Tips+for+SysAdmin%2C+Webmaster%2C+Network+Admin&amp;summary=%26nbsp%3B%0D%0A%0D%0ANeed%20for%20Speed%3F%0D%0A%0D%0AWith%20its%20first%20public%20release%20in%202004%2C%20NGINX%20now%20is%20the%20second%20most%20used%20web%20server%20in%20the%20world.%20This%20is%20quite%20impressive%20considering%20NGINX%20was%20born%20among%20several%20big%20players%20including%20Apache%2C%20Microsoft%20IIS%2C%20and%20other%20po" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fnginx-best-practices%2F&amp;Title=NGINX%20Best%20Practices" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/blinklist.png" class="sociable-img sociable-hovers" title="BlinkList" alt="BlinkList" /></a><a rel="nofollow"   href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fnginx-best-practices%2F&amp;title=NGINX%20Best%20Practices" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/dzone.png" class="sociable-img sociable-hovers" title="DZone" alt="DZone" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fnginx-best-practices%2F&amp;title=NGINX%20Best%20Practices&amp;annotation=%26nbsp%3B%0D%0A%0D%0ANeed%20for%20Speed%3F%0D%0A%0D%0AWith%20its%20first%20public%20release%20in%202004%2C%20NGINX%20now%20is%20the%20second%20most%20used%20web%20server%20in%20the%20world.%20This%20is%20quite%20impressive%20considering%20NGINX%20was%20born%20among%20several%20big%20players%20including%20Apache%2C%20Microsoft%20IIS%2C%20and%20other%20po" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="http://reddit.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fnginx-best-practices%2F&amp;title=NGINX%20Best%20Practices" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/reddit.png" class="sociable-img sociable-hovers" title="Reddit" alt="Reddit" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fnginx-best-practices%2F&amp;title=NGINX%20Best%20Practices" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://twitter.com/home?status=NGINX%20Best%20Practices%20-%20http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fnginx-best-practices%2F" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://blog.monitis.com/index.php/feed/" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.monitis.com/index.php/2012/01/30/nginx-best-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VDI on Windows Server 2008 R2 Hyper-V: Performance Monitoring Explained&#8211;Part 1</title>
		<link>http://blog.monitis.com/index.php/2012/01/30/vdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-1/</link>
		<comments>http://blog.monitis.com/index.php/2012/01/30/vdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-1/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 09:06:52 +0000</pubDate>
		<dc:creator>Ard-Jan Barnas</dc:creator>
				<category><![CDATA[101 Reasons To Choose Monitis]]></category>
		<category><![CDATA[Monitoring Scripts]]></category>
		<category><![CDATA[Network Monitoring]]></category>
		<category><![CDATA[Performance Management]]></category>
		<category><![CDATA[Server Management]]></category>
		<category><![CDATA[Windows Networking]]></category>
		<category><![CDATA[hyper-v]]></category>
		<category><![CDATA[VDI]]></category>
		<category><![CDATA[virtual desktop interface]]></category>
		<category><![CDATA[virtual machines]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://blog.monitis.com/?p=5104</guid>
		<description><![CDATA[In this article we’ll go into VDI (virtual desktop interface) monitoring on Windows Server Hyper-V and in particular what and where to monitor and what counters to utilize to determine of your virtual machine is overloaded and what resources are used. This article focuses on measuring networking, storage, and CPU usage. Windows Hyper-V has three main [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-2646 alignnone" style="margin: 15px; float: right;" title="logo-hyperv-server08-R2" src="http://blog.monitis.com/wp-content/uploads/2011/07/logo-hyperv-server08-R2.png" alt="hyperv" width="250" /><span style="font-size: small;">In this article we’ll go into <strong>VDI</strong> (virtual desktop interface) monitoring on Windows Server <strong>Hyper-V</strong> and in particular what and where to monitor and what counters to utilize to determine of your virtual machine is overloaded and what resources are used. This article focuses on measuring networking, storage, and CPU usage.</span></p>
<p>Windows Hyper-V has three main components, each of which can be monitored; the virtstack, devices, and the hypervisor. When Windows 2008 boots the system it launches the virtstack and hypervisor. The virtstack handles the emulated devices, manages virtual machines, services I/O, etc. The Hypervisor schedules the virtual processors, manages interrupts, services timers, and controls other chip-level functions.<span id="more-5104"></span></p>
<p>The root partition in Hyper-V provides the monitoring information via WMI and performance counters. Although you can monitor a virtual machine from within the running guest operating system, you only have access to the metric provided by that specific OS. One thing to keep in mind is that when querying the metric %Processor, it reports on the virtual processor(s) used in the guest, not the physical processor of the host system.</p>
<p>So to monitor Hyper-V and all virtual machines, you should monitor the root. Now let’s take a look at what you should monitor. We’ll cover the major resources and what to typically monitor to provide a good starting point. The top level metrics to monitor are the following:</p>
<p><strong>Overall health:</strong></p>
<ul>
<li>Hyper-V Virtual Machine Health Summary</li>
<li>Hyper-V Hypervisor</li>
</ul>
<p><strong>Processor:</strong></p>
<ul>
<li>Processor</li>
<li>Hyper-V Hypervisor Logical Processor</li>
<li>Hyper-V Hypervisor Root Virtual Processor</li>
<li>Hyper-V Hypervisor Virtual Processor</li>
</ul>
<p><strong>Memory:</strong></p>
<ul>
<li>Memory</li>
<li>Hyper-V Hypervisor Partition</li>
<li>Hyper-V Root Partition</li>
<li>Hyper-V VM Vid Partition</li>
</ul>
<p><strong>Networking:</strong></p>
<ul>
<li>Network Interface</li>
<li>Hyper-V Virtual Switch</li>
<li>Hyper-V Legacy Network Adapter</li>
<li>Hyper-V Virtual Network Adapter</li>
</ul>
<p><strong>Storage:</strong></p>
<ul>
<li>Physical Disk</li>
<li>Hyper-V Virtual Storage Device</li>
<li>Hyper-V Virtual IDE Controller</li>
</ul>
<p>In this first part of the ‘monitoring explained’ articles, we’ll look at the Overall Health Metrics set of performance counters and how to use them. The other sets are discussed in Part 2.</p>
<p><strong>Overall Health Metrics</strong></p>
<p>There are two counter sets you can use to get an overall picture of the system:</p>
<p><strong><em>1. </em></strong><strong><em>Hyper-V Virtual Machine Health Summary </em></strong>which has two counters; “<strong><em>Health Ok” </em></strong>and<em> “<strong>Health Critical”</strong></em>. Critical means some resource has been exhausted or another unrecoverable error has occurred. If you see “<strong><em>Health Critical” </em></strong>you should take action to figure out what has happened.</p>
<p><strong><em>2. </em></strong><strong><em>Hyper-V Hypervisor</em></strong>. This set has the <strong><em>Logical Processor </em></strong>counter, the number of virtual machines running is measured by the <strong><em>Partitions</em></strong> counter, and the total number of Virtual Processors is provided by the <strong><em>Virtual Processors</em></strong> counter. The logical processors are important because this is where all the work is done and are a representation of the physical processor. Microsoft recommends that you do not exceed an 8:1 ratio for the the Virtual Processor to Logical Processor ratio.</p>
<p>The <strong><em>Total Pages</em></strong> counter indicates how much memory the Hypervisor is using to manage the virtual machine. This counter does not capture all the overhead because another component called the Virtual Interface Driver (VID) also has overhead to manage partitions. Note that in Windows 2008 the counter <strong><em>Hyper-V VID Partition</em></strong> does not work, but it does in Windows Server 2008 R2.</p>
<p>In our next article in this series we’ll discuss the Processor, Memory, and Storage counter sets in detail. We will also provide a custom monitor for Hyper-V that utilizes most of the metrics that are discussed in this series.</p>
<p>See also <a title="Permanent Link to Monitoring Hyper-V With PowerShell on Monitis" href="http://blog.monitis.com/index.php/2011/09/15/monitoring-hyper-v-with-powershell-on-monitis/" rel="bookmark">Monitoring Hyper-V With PowerShell on Monitis</a></p>
<p>&nbsp;</p>
Share Now:<a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-1%2F&amp;title=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%201&amp;notes=In%20this%20article%20we%E2%80%99ll%20go%20into%20VDI%20%28virtual%20desktop%20interface%29%C2%A0monitoring%20on%20Windows%20Server%20Hyper-V%20and%20in%20particular%20what%20and%20where%20to%20monitor%20and%20what%20counters%20to%20utilize%20to%20determine%20of%20your%20virtual%20machine%20is%20overloaded%20and%20what%20resources%20are%20u" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-1%2F&amp;title=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%201&amp;bodytext=In%20this%20article%20we%E2%80%99ll%20go%20into%20VDI%20%28virtual%20desktop%20interface%29%C2%A0monitoring%20on%20Windows%20Server%20Hyper-V%20and%20in%20particular%20what%20and%20where%20to%20monitor%20and%20what%20counters%20to%20utilize%20to%20determine%20of%20your%20virtual%20machine%20is%20overloaded%20and%20what%20resources%20are%20u" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-1%2F&amp;t=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%201" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-1%2F&amp;title=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%201&amp;source=Uptime+%26amp%3B+Performance+Tips+Tips+for+SysAdmin%2C+Webmaster%2C+Network+Admin&amp;summary=In%20this%20article%20we%E2%80%99ll%20go%20into%20VDI%20%28virtual%20desktop%20interface%29%C2%A0monitoring%20on%20Windows%20Server%20Hyper-V%20and%20in%20particular%20what%20and%20where%20to%20monitor%20and%20what%20counters%20to%20utilize%20to%20determine%20of%20your%20virtual%20machine%20is%20overloaded%20and%20what%20resources%20are%20u" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-1%2F&amp;Title=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%201" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/blinklist.png" class="sociable-img sociable-hovers" title="BlinkList" alt="BlinkList" /></a><a rel="nofollow"   href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-1%2F&amp;title=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%201" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/dzone.png" class="sociable-img sociable-hovers" title="DZone" alt="DZone" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-1%2F&amp;title=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%201&amp;annotation=In%20this%20article%20we%E2%80%99ll%20go%20into%20VDI%20%28virtual%20desktop%20interface%29%C2%A0monitoring%20on%20Windows%20Server%20Hyper-V%20and%20in%20particular%20what%20and%20where%20to%20monitor%20and%20what%20counters%20to%20utilize%20to%20determine%20of%20your%20virtual%20machine%20is%20overloaded%20and%20what%20resources%20are%20u" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="http://reddit.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-1%2F&amp;title=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%201" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/reddit.png" class="sociable-img sociable-hovers" title="Reddit" alt="Reddit" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-1%2F&amp;title=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%201" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://twitter.com/home?status=VDI%20on%20Windows%20Server%202008%20R2%20Hyper-V%3A%20Performance%20Monitoring%20Explained%26ndash%3BPart%201%20-%20http%3A%2F%2Fblog.monitis.com%2Findex.php%2F2012%2F01%2F30%2Fvdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-1%2F" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://blog.monitis.com/index.php/feed/" ><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.monitis.com/index.php/2012/01/30/vdi-on-windows-server-2008-r2-hyper-v-performance-monitoring-explainedpart-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

