Get Ready for tomorrow's Private Cloud - Today!

Private Clouds are increasingly important to the efficient operations of your business. The System Center 2012 products provide everything you need to build, secure, maintain and manage your Private Cloud. You can get all of the latest Betas, Release Candidates and Evaluations by clicking one button!

  • chris e. avis - writing about microsoft and technology....

    March Blog Series - 20+ Days of Server Virtualization….

    • 1 Comments

    First of all, YOU have made our blog series from January and February very successful!  We often wonder if what we write will get read and you have proven to us that it is a fruitful endeavor. Thank you very much for taking the time to read and provide feedback on these series.

    The first post for our March series – The Hyper-V Primer – 20+ Days of Server Virtualization (Part 1 of 20) – by Kevin Remde is up on his blog.

     

    WHAT IS IT HYPER-V?

    Hyper-V is just a part of the full Microsoft virtualization solution.  It is the engine that supports running multiple virtualized installations of operating systems on top of a single physical operating system.  Hyper-V is a “microkernalized hypervisor”, which is fancy-talk for “it’s a very thin layer that runs underneath the installed operating system”, to support many “machines” (including the main OS) running on and sharing the resources of the hardware.  Even though your Windows Server 2012 or even Windows 8 with Hyper-V enabled is installed on hardware, virtualization is actually even supporting that main operating system as what is known as the “Parent (or Root) Partition”; still running on top of virtualization, but having higher-priority than the “child partitions” that are the virtualized machines.

     

     

    The Hyper-V Primer – 20+ Days of Server Virtualization (Part 1 of 20)

     

    Hyper-V architecture overview

     

    The Hyper-V Primer – 20+ Days of Server Virtualization (Part 1 of 20)

  • chris e. avis - writing about microsoft and technology....

    Part 2 of 20–Virtualization: You Want to Hot Add What?!….Now Live!

    • 0 Comments

    Yesterday, Kevin Remde posted the 2nd in our March series of blog posts on Virtualization. Kevin talks about this different virtualized components of a hyper-V virtual machine and which pieces can be added and removed while the VM is up and running.

     

    “For Part 2 of our “20+ Days of Server Virtualization” series, we wanted to give you an overview of what is allowed, and what’s not, with regard to making “hot add” or removal (or configuration) of a virtual machine’s settings.  To do this, I’m going to use a picture of the Virtual Machine Settings dialog, and walk right down the list…”

    And that he does!  If you are new to Hyper-V, this is a great way to familiarize yourself with the components that make up a VM, the configurations that can be made, and what you can do with them while a VM is running.

    Check out his blog post here -

    You Want to Hot-Add What?! : 20+ Days of Server Virtualization (Part 2 of 20)

    Hardware

    You Want to Hot-Add What?! : 20+ Days of Server Virtualization (Part 2 of 20)

    Cheers!

  • chris e. avis - writing about microsoft and technology....

    Monitoring Dynamic Memory in Windows Server Hyper-V 2012….

    • 0 Comments

    Question – How do you determine how much memory to assign to a virtual machine?

    Real Answers from Administrators -

    “We add up the recommended memory on the box for all the apps that will run then assign that to the VM”

    “We add up the recommended memory on the box for all the apps that will run, add 25%, then assign that to the VM”

    “Every VM gets <insert number here> gigs of RAM. We don’t change it unless someone complains”

    “We only virtualize Exchange….so it gets all of the available RAM”

    I have asked this question many times since the introduction of Dynamic Memory several years ago. I almost never hear the following -

    “We use Operations Manager or Performance Monitor to track usage over time, establish a baseline, then adjust the memory of the VM. We then continue to monitor over time to see if there are trends that warrant adjustments.”

    I know that is exactly what IT Pros do though. Because you are Pros. But maybe you are new to Windows, new to the IT field, or just trying to correct some bad behavior in your department. For those scenarios, I want to give you the tools you need to do things the right way.

    ---------------

    With the release of Windows Server 2008 R2 SP1, Microsoft introduced a new feature called Dynamic Memory for Hyper-V hosts. Prior to this feature being introduced, all guest virtual machines were give a static assignment for memory. To change the memory allocation required administrators to shut down the guest VM, change the memory assignment, then restart the VM. This of course is inefficient and requires downtime.

    Dynamic Memory allows Hyper-V administrators to assign a dynamic allocation of memory to a VM that draws from a pool of memory on the host. The goal of Dynamic Memory is to optimize memory utilization without sacrificing performance. This also opens the door to greater virtual machine density per host which allows for a lower TCO.

    In this post we will walk through the options for Dynamic Memory and investigate how we can further optimize memory using monitoring. Let’s lay the groundwork….

    Hyper-V Host Requirements -

    Windows Server 2008 R2 + SP1 (or later) or Windows Server 2012

    Guest VM Requirements – See Chart Below

    image

     

    There are no global configuration for Dynamic memory at the Hyper-V host level. All of the settings are managed on a per VM basis. Once you have created a virtual machine, you can look at the settings of the VM and see the Dynamic Memory options. However, there are some subtle differences in the options between versions of Hyper-V. Let’s do Windows Server 2008 R2 + SP1 first.

    Windows Server 2008 R2 + SP1 Hyper-V (below)

    image

    Note that we can still specify a Static amount of memory for a VM. Dynamic memory is not a requirement. We can also have a mix of static and dynamic memory VM’s on the same host.

    When we enable Dynamic memory we get some additional options -

    Startup RAM – The amount of memory required to start the virtual machine. There needs to be enough here to allow the VM to start up. But you don’t want to over-allocate because the memory will be wasted and reduce the total number of VM’s you can run on the host.

    Maximum RAM – The maximum amount a RAM a VM can request and be assigned. Can be a low as the Startup RAM value or up to a max of 64GB or the max of what the Guest VM O/S Supports. (ie, 4GB for a 32 bit Windows 7 Guest)

    Memory Buffer – Specifies how much memory Hyper-V will attempt to assign to the virtual machine compared to the amount of memory actually needed by the applications and services running inside the virtual machine. Not to exceed the Maximum RAM amount.

    Memory Weight – Tell Hyper-V which VM’s have a higher or lower priority for dynamic memory allocations.

     

    The settings used in Windows Server 2012 are a tad bit different.

    Windows Server 2012 Hyper-V (below)

     

    clip_image002

     

     

    Startup RAM – Serves double duty in Windows Server 2012 Hyper-V

    1) If Dynamic Memory is NOT enabled, Startup RAM acts as the “Static” memory value

    2) If Dynamic Memory IS enabled, it represents the amount of memory required to start the virtual machine. (same as Windows 2008 R2 + SP1)

    Minimum RAM – *NEW* This is the minimum amount of RAM that must be assigned to the VM at all times. This number must be less than or equal to the Startup RAM value. It effectively lets Hyper-V reduce the amount of memory assigned to the VM if it requires less and another VM requests more.

    Maximum RAM – The maximum amount a RAM a VM can request and be assigned. Can be a low as the Startup RAM value or up to a max of 64GB or the max of what the Guest VM O/S Supports. (ie, 4GB for a 32 bit Windows 7 Guest)

    Memory Buffer – Specifies how much memory Hyper-V will attempt to assign to the virtual machine compared to the amount of memory actually needed by the applications and services running inside the virtual machine. Not to exceed the Maximum RAM amount.

    Memory Weight – Tell Hyper-V which VM’s have a higher or lower priority for dynamic memory allocations.

    Windows Server 2012 Hyper-V also introduces a feature called Smart Paging. Prior to Windows Server 2012, if you attempt to start a guest VM when all available memory is assigned to other VM’s, you receive an error message and the VM fails to start. With Smart Paging, we allow the VM to start using a page file on a hard drive as virtual memory. This allows the VM to start up and for Hyper-V to manage memory allocations. There is a significant reduction in performance because hard disk paging operations take much greater time then RAM paging operations, but it does allow for the VM to start. After it comes up, Hyper-V will begin re-allocating memory to reduce the usage of the Smart Paging feature.

    There is no GUI configuration for Smart Paging other than where to place the Smart Paging file location. This should be a low I/O spindle to reduce the impact of paging operations as much as possible.

    Now What?

    Note – For the remainder of this article, I will be using Windows Server 2012 Hyper-V/Dynamic Memory. The concepts apply to Window Server 2008 R2, but the location of the information on screen is different.

    Now that you are familiar with the settings, how do we determine how much memory to allocate to a VM then monitor it over time?  For the initial configuration of memory, you will just have to use your own best judgment for the values based on the workloads you are running. A good baseline to start with is to consider what you would run in a physical implementation then measure that out for a virtual. if you are running an Exchange Server role with 16 GB of memory on a physical machine, use that 16 GB value as the initial Maximum RAM entry. The Minimum RAM could be the amount of RAM recommended for running Windows Server + Microsoft Exchange. The memory Buffer can be left at 20% for now and the Memory Weight should be adjusted based on the priority you specify for your server roles.

    Once this has been configured, you can monitor ongoing performance and changes in two different ways -

    Monitoring Virtual Memory in Real Time –

    Using the Hyper-V MMC, you will see that we display some information about memory in real time -

    clip_image002[5]

    Assigned Memory – This is how much memory is allocated to the Guest VM at this time.

    When you select a VM, you will also have an info pane below the list of VM’s with more specific information about memory for the selected VM -

    clip_image002[7]

    Memory Demand – Derived from performance counters, this is the amount of memory required at this time to fulfill the requirements of what is going on in the running VM.

    Memory Status – There are only 3 things that will display here -

    OK – Hyper-V has enough memory to provide a full memory buffer to the selected VM

    Low – Hyper-V is reporting that it does not have enough memory to satisfy the memory buffer in full

    What this really means - Generally not a critical issue. Some attention should be paid to how much memory is allocated across all guest VM’s and possible changes made to adjust for proper buffer allocations.

    Warning – Hyper-V is reporting that it does not have any available memory to dedicate to the memory buffer

    What this really means – There isn’t enough memory to allocate to the memory buffer. This means that you will possibly end up using Smart Paging and thus take a performance hit, or, based on Weight, you may starve another lower priority machine of memory. You should evaluate how much memory is allocated across all VM’s and adjust accordingly. The only solution may be to migrate some of the VM’s to a different Hyper-V server or add more physical RAM to the Host Hyper-V server.

     

    Monitoring Virtual Memory with Performance Counters -

    Dynamic Memory has a collection of Performance Monitor Counters and Objects for digging deep into what is really going on with memory allocations.

    clip_image002[9]

    The Memory Balancer is the process that handles allocation of memory to the guest VM’s. It relies on other performance counters information to determine when, where, and how much memory to move around at any given time.

    Available Memory – Exactly that, how much memory we have available right now.

    Average Pressure – Pressure is synonymous with availability. This is a calculation of how much memory the VM wants divided by the amount of memory the VM currently has and then multiplied by 100 [ie; (Mem Wanted/Mem allocated)*100  ]   Average pressure at this level is the average pressure of all VM’s at any given time. As long as this number stays under 100, you have enough available memory to service all virtual machines. If you go over 100, then you have VM’s that are doing paging operations with the VM itself and you will see performance degradation. For best performance with less risk of paging operations, this number should consistently be below 100 with no spikes above. Ideally around 80, though highly tuned systems that are very dense may run higher.

    clip_image002[13]

    These counters allows you to choose individual VM instance objects by name as they appear in the Hyper-V Manager.

    Average Pressure – Same as above but for a specific VM

    Current Pressure – This is the current available memory for a VM instance

    Guest Visible Physical Memory – The amount of memory visible within a VM instance

    Maximum Pressure – Maximum memory available to the VM instance

    Minimum Pressure – Minimum memory available to the VM instance

    Physical Memory – Current amount of memory in the VM instance

    Smart Paging Working Set – The size of the Smart Paging Working Set for a VM Instance

    ---------------

    Of all the counters listed here, the ones you will likely spend the most time monitoring are - 

    Hyper-V Dynamic Memory Balancer –> Average Pressure – This will allow you to see what the average available memory is at the host level over a period of time. This is great for establishing a baseline and continued monitoring over time to determine if workloads need to be shifted or more memory should be added to the host.

    Hyper-V Dynamic Memory VM –> Average Pressure, Maximum Pressure, Minimum Pressure – These will allow you to look at the memory performance of individual VM instances. Again to establish a baseline as well as ongoing monitoring for future optimizations.

    To monitor this with performance Monitor, you can make a Collector Set

     

    To create a Data Collector Set to monitor memory allocation

    1. Start Performance Monitor and add one or more of the new performance counters.
      1. Click Start, right-click Computer, and click Manage. In the Microsoft Management Console navigation tree, click Reliability and Performance.
      2. In the navigation tree, expand Reliability and Performance, expand Monitoring Tools, and click Performance Monitor.
      3. In the menu bar above the Performance Monitor graph display, either click the Add button (+) or right-click anywhere in the graph and click Add counters from the menu. The Add Counters dialog box opens.
      4. In the Available Counters section, scroll through the list to find Hyper-V Dynamic Memory VM and then click the plus (+) sign to expand the group. Select one or more counters from this group.
    2. On the left hand side, right click on Performance Monitor, point to New, and click Data Collector Set. The Create New Data Collector Set Wizard starts. The Data Collector Set created will contain all of the data collectors selected in the current Performance Monitor view.
    3. Type a name for your Data Collector Set and click Next.
    4. The Root Directory will contain data collected by the Data Collector Set.  Change this setting if you want to store your Data Collector Set data in a different location than the default.  Browse to and select the directory, or type the directory name.
    5. Note: If you enter the directory name manually, you must not enter a back slash at the end of the directory name.
    6. Click Next to define a user for the Data Collector Set to run as, or click Finish to save the current settings and exit.

    You now have a Data Collector Set that you can run in the background to collect performance data for the Hyper-V Counters and Objects you have selected. This will let you establish baselines, monitor ongoing performance of the Hyper-V Host as well as the VM’s and ultimately give you the answer to “How much memory should I assign to a virtual machine?”. Additionally, you can use this data to increase the density of VM’s on a per host basis without compromising on performance. This leads to more VM’s per host which hopefully means fewer hosts needed and ultimately a lower TCO across the board.

     

     

    References  and Additional Resources -

    Hyper-V Dynamic Memory Configuration Guide (2008 R2)

    Hyper-V Dynamic Memory Overview

    Tracking Hyper-V Dynamic Memory (So Many Questions. So Little Time. Part 6.)

    Looking at Dynamic Memory Performance Counters

    A Guide to Hyper-V Dynamic Memory – Aidan Finn

    Looking at Dynamic Memory Performance Counters

     

    Cheers!

  • chris e. avis - writing about microsoft and technology....

    Last Chance to Register for FREE IT Camps!

    • 0 Comments

    This week we kick off a new series of IT Camps in the Western US. We still have a handful of seats available at select venues. If you would like to get some FREE hand-on training on Windows 8 Deployment, Azure IaaS, and Upgrading to Windows Server 2012, find a city near you then get yourself registered.

    Be sure to read the requirements for the hands-On-Lab section to ensure you have a proper machine configuration and ample space for images.

     

    -Cheers!

     

    clip_image0012 

     

    You're invited.
    Select a date below to register online or call 1-877-MSEVENT

    Location                Date
    Mountain View, CA 3/13
    San Francisco, CA 3/14
    Bellevue, WA 3/19
    Tempe, AZ 3/20
    Portland, OR 3/21
    Los Angeles, CA 3/26
    Irvine, CA 3/27
    San Diego, CA 3/28
    Boise, ID 4/2
    Denver, CO 4/4

     

    If you are unable to attend in person, you may be interested in a Hands-on Lab Online (HOLO) on Windows 8 or Windows Azure.

    If you cannot make one of these events, you may be able to find a similar event at a New Horizons learning center here.

     

    clip_image005_thumb1
    Please join us at a Microsoft IT Camp as we dive into how to get your datacenter ready for the cloud and beyond
    Join us at a FREE Microsoft IT Camp for hands-on labs, demos, and interactive discussions with Microsoft technical experts. Here's your chance to learn more about getting your datacenter ready for the cloud, whether you want to upgrade your on-premise datacenter or get connected to the cloud. This IT Camp will showcase the next generation of datacenter technologies featuring Windows Server 2012, System Center 2012 SP1, and Windows Azure IaaS.
    According to a recent IDC report commissioned by Microsoft, an estimated 1.7 million cloud-related IT jobs are open worldwide right now and there will be as many as 7 million cloud computing jobs available by 2015. Attending an IT Camp in your local area is the perfect way to elevate your IT skills, build your cloud knowledge and propel your career to new heights.


    To participate in the afternoon hands-on lab session, you will need to bring your own computer (laptop preferred) with the following minimum configuration:

    FREE Events
    Seating is limited, so register today. Events run from 8:30am - 4:00pm.

    clip_image0063

    For more information or to register, visit > www.technetevents.com OR CALL 1-877-MSEVENT

     
     

     

    -Cheers!

  • chris e. avis - writing about microsoft and technology....

    Current IT Camp Resources….

    • 0 Comments

    For those of you have taken part in the recent IT Camps, you know that we attempt to cover a LOT of information during this camp. It can be a little overwhelming so I have sorted through the content and provided some links to further reading on the topics that may be more interesting to your particular role.

    I have included links to all the slides, Hands-On-Lab documentation and download links to the appropriate lab files if you would like to recreate the HoL outside of the IT Camp classroom. I very highly recommend that if you only do a single lab, that it be the Windows Azure IaaS lab. I believe Cloud based Infrastructure as a Service to be the future of infrastructure deployments.

    image

     

    Why is Azure IaaS so important?

    I bring up this same point in out IT Camps.  Think back to 1995 when the Internet really started to take off. Windows 95 has been on the market for about a year at this point and the everyday computer user is connecting to the Internet is droves. Businesses are taking notice but they are wondering – Is the Internet safe? Is it secure? Is my data protected? What about downtime? – These are the exact same question businesses are asking about “cloud computing” today. The very same cloud computing that we have been doing on the Internet for the past 15+ years.

    Virtualization has reduced our infrastructure deployment, configuration and maintenance times to a fraction of what we used just 10 years ago. With Azure IaaS, we optimize these even further by eliminating the need to acquire and provision the base Hyper-V server that is required to run all of the Infrastructure components. It is conceivable for a startup to simply use a credit card to sign up for Azure, then start building servers and services within Azure to support their entire development, test, and production environments – all without buying any hardware to support their infrastructure. Established companies with a robust on-premise infrastructure can reduce future hardware acquisitions by planning future deployments in Azure IaaS. the ease with which we can migrate workloads between Azure IaaS and on-premise makes it a perfect scenario for proof of concept development that can easily be rolled directly into production.

    IT departments have already reduced their hardware costs dramatically by becoming highly virtualized. This also provides for a tremendous amount of flexibility in placing and moving workloads as necessary. now with the option of placing the workloads directly within the Azure fabric and securely connecting Azure IaaS to existing infrastructure, IT Departments will be able to further reduce hardware costs and extend the mobility and flexibility of their virtual infrastructure.

    **Do the Azure IaaS Lab!**

    I promise you it will be worth your time!

     

    Cheers!

    Slides -

    Download Slides for all 3 sessions here

    Hands-on-Labs -

    Download Hands-On-Labs Manuals here

    Downloads LAB Virtual machines here

    Download BootToVHD Image here – Be sure to select the VHD file, not the .ISO

    Download Base Image for Lab Virtual machines here - – Be sure to select the VHD file, not the .ISO

    SC2012 SP1 and Azure IaaS Links -

    Activate an Windows Azure 90 Day Trial Account

    Download Windows Azure PowerShell Tools

    Download System Center with SP1

    Upgrading/Migrating with Windows Server 2012 Links -

    Understanding Domain and Forest Functional Levels

    Active Directory Services Deployment CMDlets in PowerShell

    Migrate Active Directory Federations Role Services to Windows Server 2012

    Migrate Health Registration Authority to Windows Server 2012

    Migrate Hyper-V to Windows Server 2012

    Manage IP Configuration in Windows Server 2012

    Migrating Network Policy Server to Windows Server 2012

    Migrate Print and Document Server to Windows Server 2012

    Migrate Remote Access Services to Windows Server 2012

    Migrate Windows Server Update Services (WSUS) to Windows Server 2012

     

    Deploying Windows 8 Links -

    Download the Microsoft Deployment Toolkit and Technical Information

    Download the Windows Assessment and Deployment Kit

    User State Migration Tool (USMT 5.0 Technical Reference

    Windows Performance Toolkit Technical information

    Windows Assessment Toolkit Technical information

    Internet Explorer Administration Kit Download and Technical Information

  • chris e. avis - writing about microsoft and technology....

    Performance Management: Monitoring CPU Resources….

    • 0 Comments

    CPU Performance and Monitoring is one of the most important aspects for what we do in computing every day. End users and information workers want a performant system, the help desk doesn’t want “my machine is running slow” calls, and the IT staff has to manage power consumption to keep operating costs in check. In this post I am going to discuss how was can satisfy all three groups using some of the built in tools on our Windows Systems.

    Of course we are also going to address this from a virtualization aspect as that is the direction of this series. Fortunately for us though, monitoring CPU Performance across virtualized workloads is almost identical to monitoring physical machines. We still leverage Task Manage and Performance Monitor as our primary tools. If you have a System Center Operation manager install, then you have the additional benefit of very granular monitoring, reporting and alerting features

    Let’s start with the basics….

    Picture of performance graphs

    The most basic form of monitoring comes from the Task Manager. The Task Manager has seen many improvements over the years. In Windows Server 2012 and Windows 8, we now have a very detailed and robust, built-in means of monitoring many performance aspects in real time. As you can see from the screen shot below, the new Task Manager has a significantly different look to it. We now list all Applications, Windows Processes, and Background Processes and allow each item to be expanded out for more detail. In the screen shot below, you can see that we have expanded out the Internet Explorer process so that it shows each window or tab that is open. This allows us to see what CPU resources are being utilized be each open windows or tab. This is very useful for troubleshooting an web page or app that may be frozen or causing a performance on a machine.

    image

    When we select the Performance tab in Task manager, we also have a new view into the big 4 items. For CPU monitoring, the default view consolidates all physical and logical CPU’s into a single CPU view. in the sample from my machine, the default view shows the cumulative performance across all CPU’s. Even though it only shows a single CPU in this view, my machine is actually a quad-processor machine. To change the view to chow all logical CPU’s, right click in the main window, and select Change graph to –> Logical Processors

    Default View

    image

    Showing all Logical Processors

    image

    Another feature we have in the Task Manager is access to the Resource Monitor. It is the link at the bottom of the previous screen shot. When you open the Resource Monitor we cab get a detailed real time view of CPU usage across any process. You can check the box to the left of a process to add/remove it from the graphed processes on the far right hand side.

    image

     

     

    On Windows 8 client machines, here is also an App History tab where we can find historical CPU performance of the apps on our systems. This data is reflected for the previous 30 days and can manually be reset at anytime from this screen. Double-clicking an application in the list will launch that application.

    image

    Finally, we have a Users Tab that allows us to get information about what apps and processes are consuming resources in different user sessions. Below we see my active session as well as another user that logged in but is currently disconnected.

     

    image

     

    Now….if we really want to dig into CPU performance monitoring, we need to leverage Performance Monitor and the new Hyper-V counters. However, we have to be careful to select the appropriate counters. When the Hyper-V role is enabled on a Windows Server, there are a whole host of new PerfMon counters and objects that are added to allow us to monitor performance of the virtualized workloads. These can be found in PerfMon by selecting to add counters then scrolling to the “Hyper-V” section where you will see a large number of new Hyper-V related counters. What you choose to monitor will depend on what information you are trying to retrieve.

     

    image

    Processor:

    Once you have an idea of the overall system capabilities and configuration though the “Hyper-V Hypervisor” counter set you will want to monitor the processors on the system. The most important counter set to monitor is the “Hyper-V Hypervisor Logical Processor”. This counter set allows you to determine how much of the physical processor are being used. The virtual processor counter sets only show a slice of the “Hyper-V Hypervisor Logical Processor”.

    • Hyper-V Hypervisor Logical Processor
    • Hyper-V Hypervisor Root Virtual Processor
    • Hyper-V Hypervisor Virtual Processor

    The Hyper-V Hypervisor Logical Processor - The most useful counters in this counter set are the following;

    • %Guest Run
    • %Hypervisor Run Time
    • %Idle Run Time
    • %Total Run Time

    There is one logical processor that that carries more load than the rest and that is LP0. This LP is where all interrupts in the system are directed and if there is too much load you can see this LP hit 100% which likely means IO is a bottleneck in the system.

    The “Hyper-V Hypervisor Root Virtual Processor” and “Hyper-V Hypervisor Virtual Processor” are just slices of the LP counter and can help you understand how much total CPU the root and guests are using on the system. There are real no limits one should expect for these counters however I generally expect to see the “% Hypervisor Time” be below 25%. Any higher and this could indicate you are not running with integration services installed. You should always make sure you have Integration Services installed for the best performance.

    You should also monitor the “Processor” counter set. This counter set is only for the root CPU and does suffer from skew as detailed here - http://blogs.msdn.com/tvoellm/archive/2008/03/20/hyper-v-clocks-lie.aspx. Even with the skew this counter set is useful because it gives you an idea of how busy the root is. Remember the root is involved in all IO. This means that when 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.

     

    Over all, the counters you will be interested in for CPU monitoring are -

    Hyper-V Hypervisor Logical Processor – This one lets us select stats for each logical processor available to Hyper-V.

    · %Guest Run Time – This is the percentage of time guest code is running on an LP or for the _Total the average percentage across all LP. For example if you have 2LP and one VM running CPU tests you might see the value be 95% for LP(0), 0% for LP(1) and 47.5% for the _Total. For this you can see you VM is running on LP(0).

    · %Hypervisor Run Time – This is the percentage of time the Hypervisor is running on an LP or for _Total the average percentage across all LP. This is similar to % Kernel Run Time in the Processor counter set.

    · %Idle Run Time – This is the percentage of time the LP is waiting for work for _Total the average percentage across all LP. This is similar to % Kernel Run Time in the Processor counter set.

    · %Total Run Time – This is a sum of %Guest Run Time + % Hypervisor Runtime.

    · %C1 Time – C1 is a power saving mode in a CPU. This counter keeps track of how often the process is able to enter a power saving state when idle. So %C1 Time is the percentage of time the LP is in the C1 state and for _Total the average percentage across all LP. If you want to know more about C state and other power modes in windows check out - Processor Power Management in Windows Vista and Windows Server 2008

    · %C2 Time – Similar to %C1 Time. C2 is a deeper power state than C1.

    · %C3 Time – Similar to %C1 Time. C3 is a deeper power state than C2.

    · C1 Transitions / Sec – The is the number of times the LP has entered the C1 state in one second or for _Total the number of C1 transitions across all LP.

    · C2 Transitions / Sec – Similar to C1 Transitions / Sec. C2 is a deeper power state than C1.

    · C3 Transitions / Sec – Similar to C1 Transitions / Sec. C3 is a deeper power state than C2.

    · Hardware Interrupts / Sec – Number of hardware interrupts per second the LP is processing. _Total is the total for all LP. Hardware interrupts are delivered to the root VP’s corresponding the LP on which it was received. For example a network card will create and interrupt when a packet is received.

    · Total interrupts / sec – Total number of interrupts of all kinds the LP is processing. For _Total this is the total number of interrupts happening on the system per second.

    · Monitor Transition Cost – This is a measure of the cost to enter the Hypervisor via an Intercept on a Logical Processor (LP). For _Total it is the total cost across all processors. Intercepts are like User mode to Kernel Mode context switches except here is User/Kernel Mode to Virtual Machine Monitor (VMM) aka Hypervisor mode. The smaller this value the better. The only real use it has is to figure out the relative performance of processors.

    · Context Switches / sec – These are the number of times a new Virtual Processor (VP) had been scheduled to a particular Logical Processor (LP). For _Total it is the total number of VP to LP switches. Ideal time context switches of around 1000 for a single guest running are not uncommon. This is due to the fact the VP will “Halt” and allow something else to run if it has no work to do.

    · Scheduler Interrupts / sec – These interrupts are sent by the Hypervisor scheduler from one Logical Processor (LP) to another to reevaluate their runlist. The runlist is the list of Virtual Processors (VP) waiting to run on a given LP. This is also a “wake-up” mechanism for an LP that might be sitting idle in a lower power state. _Total is the total number of scheduler interrupts happen per second across all LPs.

    · Inter-processor interrupts sent /sec – These interrupts are from one processor to another to get the processor to do memory coherency (like TLB, cache, …). High counts > 20ish per Logical Processor (LP) can indicate lots of guest pages modification (like page access). _Total is the total number of Inter-processor interrupts (IPIs) set per second.

    · Inter-processor interrupts /sec – This counters is the total number of Inter-processor interrupts (IPI)received per second of a give Logical Processor (LP). _Total is the total number of IPI’s received by all LP.

    · Timer interrupts / sec – There are a number of timers that the Hypervisor supports – APIC timer, PM Timer, … This is the number of times an LP is interrupted to service a timer interrupt. )

     

    Hyper-V Hypervisor Root Virtual Processor – Details on what the root Virtual Processors. There is one root VP for every Logical Processor. You can think of a logical processor as similar to a core on a physical processor.

    · %Guest Run Time – For guest VM’s this is the percentage of time the guest VP is running in non-hypervisor code on an LP or for the _Total the total across all guest VP’s. For the root this is the percentage of time the root VP is running in non-hypervisor code on an LP or for _Total the total across all root VP’s. If you sum the _Total for both the guest VP’s and root VP’s this will equal the % Guest Run Time _Total of the Logical Processor counter set.

    · %Hypervisor Run Time – For guest VM’s this is the percentage of time the guest VP is running in hypervisor code on an LP or for the _Total the total across all guest VP’s. For the root this is the percentage of time the root VP is running in hypervisor code on an LP or for _Total the total across all root VP’s. If you sum the _Total for both the guest VP’s and root VP’s this will equal the % Hypervisor Run Time _Total of the Logical Processor counter set.

    · %Total Run Time – This is just a sum of %Guest Run Time + % Hypervisor Runtime on a per VP basis. If you sum the %Total Run Time across the Root Virtual Processor and Virtual Processor counter sets it will equal  the sum of %Total Run Time from all the Logical Processor counters.

    · Total Intercepts/sec – Whenever a guest VP needs to exit is current mode of running for servicing in the hypervisor this is called an intercept. Some common causes of intercepts are resolving Guest Physical Address (GPA) to Server Physics Address (SPA) translations, privileged instructions like hlt / cupid / in / out, and the end of the VP’s scheduled time slice.

    · Total Intercepts Cost – This is a relative measure of cost of intercepts. The cost can vary based on the types of intercepts and the machine architecture.

    · Hypercalls/sec – Hypercalls are one form of enlightenment. Guest OS’s use the enlightenments to more efficiently use the system via the hypervisor. TLB flush is an example hypercall. If this value is zero and says zero this is an indication that Integration Components are not installed. New OS’s like WS08 can use hypercalls without enlightened drivers so it is only a prereq. not a guarantee of having Integration Components installed.

    · Hypercalls Cost – This is a relative measure of cost of hypercalls. The cost can vary based on the types of calls and the machine architecture.

    · HLT Instructions/sec – Number of CPU halts per second on the VP. A HLT will cause the hypervisor scheduler to de-schedule the current VP and move to the next VP in the runlist.

    · HLT Instructions Cost - This is a relative measure of cost of halt. The cost can vary based on the machine architecture.

    · IO Instructions/sec – Number of CPU in / out instructions executed per second. Many older or low bandwidth devices use “programmed I/O” via in / out instructions.

    · IO Instructions Cost - This is a relative measure of cost of the in / out instructions. The cost can vary based on the machine architecture.

    · Page Fault Intercepts/sec – Whenever guest code accesses a page not in the CPU TLB a page fault will occur. This counter is the number of Page Faults per second. This counter is closely correlated with the Large Page TLB Fills /sec Small Page TLB Fills / sec counters.

    · Page Fault Intercepts Cost - This is a relative measure of cost of a page fault. The cost can vary based on the machine architecture.

    · Large Page TLB Fills/sec – There are two types of TLB entries (and some three). Small TLB which generally means a 4K page and Large Page which generally means 2MB. There are fewer Large TLB entries on the order of 8 – 32. This counter is the number of Large Page TLB fills / second. A non-zero value indicates the guest OS is using large pages.

    · Small Page TLB Fills/sec – There are two types of TLB entries (and some three). Small TLB which generally means a 4K page and Large Page which generally means 2MB. There are fewer Large TLB entries on the order of 64 – 1024+. This counter is the number of Small Page TLB fills / second.

    · Emulated Instructions/sec – Some instructions require emulation to complete in the Hypervisor. One such example is APIC access. This counter is the number of emulated instruction completed per second.

    · Emulated Instructions Cost - This is a relative measure of cost of emulation. The cost can vary based on the machine architecture.

    · CPUID Instructions/sec – The CPUID instruction is used to retrieve information on the local CPU’s capabilities. This counter is the number of CPUID instructions calls per second. Typically CPUID is only called when the OS / Application first start so this value most likely will be 0 most of the time.

    · CPUID Instructions Cost - This is a relative measure of cost of the CPUID instruction. The cost can vary based on the machine architecture.

    · MSR Accesses/sec – Machine specific register instruction calls per second. There are many types of MSRs such as C-state config, Synthetic Interrupt (Synic) Timers, and control functions such as shutdown.

    · MSR Accesses Cost - This is a relative measure of cost of the MSR instruction. The cost can vary based on the machine architecture.

    · Control Register Accesses/sec – Number of CPU Control Register accesses per second. Control registers are used to set up address mapping, privilege mode, etc.

    · Control Register Accesses Cost - This is a relative measure of cost of changing the control register. The cost can vary based on the machine architecture.

    · MWAIT Instructions/sec – Number of MWAIT Instructions per second. MWAIT is the monitored wait instruction where the CPU waits for a memory location between a and b to change.

    · MWAIT Instructions Cost - This is a relative measure of cost of the MWAIT instruction. The cost can vary based on the machine architecture

     

    Hyper-V Hypervisor Virtual processor - This allows us to retrieve stats on logical processors assigned to individual running VM instances

    Resources:

    Processor Power Management for Windows 7 and Windows Server 2008 R2

    View CPU Utilization and other Performance Information

    MSDN Blogs – Monitoring Hyper-V Performance

    -Cheers!

  • chris e. avis - writing about microsoft and technology....

    Upcoming Jump Start Course: Microsoft Tools for VMware Integration & Migration….

    • 0 Comments

    The IT Pro Evangelism team, Microsoft Learning and the Microsoft Virtual Academy are pleased to announce the next Jump Start course Microsoft Tools for VMware Integration & Migration on Thursday, March 14th from 8am – 12pm PST

    This is a live, public, free, online event so ask your customers to sign up today: http://aka.ms/vmtools.  This event will be recorded and available on the Microsoft Virtual Academy (MVA) several weeks later, so even if you cannot make the live event, sign up so that you receive a notification once the course is available on the MVA.

    This course is designed for IT professionals who need to manage, monitor and automate VMware in their datacenter using System Center 2012 SP1.  During this half-day Jump Start, Microsoft Technical Evangelist Symon Perriman (MCSE and VMware Certified Professional) will be joined by four different Microsoft and VMware experts during the team-taught learning experience.  First, Eric Winner will share how Virtual Machine Manager (VMM) and App Controller can run VMware infrastructure, hypervisor and VMs.  Next Michael Stafford from Veeam will show how the Veeam Management Pack for Operations Manager monitors and reports on the VMware infrastructure.  Third, Justin Incarnato demonstrates how VMware can be integrated and automated using Orchestrator.  Finally, Anupama Vedapuri walks through the Microsoft Virtual Machine Converter (MVMC), a free Solution Accelerator that converts VMware-based VMs and disks to Hyper-V.

    Agenda

    · 8am – 9am | Manage VMware with SC2012 SP1 Virtual Machine Manager

    · 9am – 10am | Monitor VMware with SC2012 SP1 Operations Manager and Veeam

    · 10am – 11am | Automate VMware with SC2012 SP1 Orchestrator

    · 11am – 12pm | Migrate VMware VMs using Microsoft Virtual Machine Converter (MVMC)

     

    Sign Up Here - http://aka.ms/vmtools

    Cheers!

Page 1 of 1 (7 items)
Get Ready Today for Private Clouds Tomorrow!

Private Clouds are increasingly important to the efficient operations of your business. The System Center 2012 products provide everything you need to build, secure, maintain and manage your Private Cloud. You can get all of the latest Betas, Release Candidates and Evaluations by clicking one button!