Share via


Setting a local perfmon in 64-bit Hyper-V 2012 R2 and/or 64-bit Windows Server 2012 R2 Hyper-V.

Applies to:
Windows Server 2012 R2

 

This post comes courtesy of Carlos Mayol one of my colleagues here in Southern California.

Previously, I had published steps to collect a perfmon using logman locally on a machine which was for a "member server" and/or "guest O.S.".

Setting a local perfmon in a Windows client or Windows Server.

If you are troubleshooting and/or investigating performance and/or scalability of your 64-bit Hyper-V 2012 R2 / 64-bit Windows Server 2012 R2 running the Hyper-V Role these are performance counters that you should consider.

 

Setup the two perfmon’s, one short interval and the other one, long interval.

 

Short-interval:
==========

:: Start a local Perfmon
logman.exe create counter %ComputerName%_short_interval -c "\Cache\*" "\Cluster Resource Control Manager\*" "\Cluster Global Update Manager Messages\*" "\Cluster Network Reconnections(*)\*" "\Cluster Resources(*)\*" "\Cluster NetFt Heartbeats(*)\*" "\Cluster CSV Block Redirection(*)\*" "\Cluster CSV Volume Cache(*)\*" "\Cluster CSV Volume Manager(*)\*" "\Cluster CSV Coordinator(*)\*" "\Cluster CSV File System(*)\*" "\Hyper-V Dynamic Memory Balancer(*)\*" "\ICMP\*" "\ICMPv6\*" "\IPv4\*" "\IPv6\*" "\Hyper-V Dynamic Memory Integration Service\*" "\Hyper-V Dynamic Memory VM(*)\*" "\Hyper-V Hypervisor Logical Processor(*)\*" "\Hyper-V Hypervisor Partition(*)\*" "\Hyper-V Hypervisor Root Partition(*)\*" "\Hyper-V Hypervisor Root Virtual Processor(*)\*" "\Hyper-V Hypervisor Virtual Processor(*)\*" "\Hyper-V Hypervisor\*" "\Hyper-V Legacy Network Adapter(*)\*" "\Hyper-V Replica VM(*)\*" "\Hyper-V Shared VHDX(*)\*" "\Hyper-V Virtual IDE Controller (Emulated)(*)\*" "\Hyper-V Virtual Machine Bus\*" "\Hyper-V Virtual Machine Health Summary\*" "\Hyper-V Virtual Network Adapter(*)\*" "\Hyper-V Virtual Storage Device(*)\*" "\Hyper-V Virtual Switch Port(*)\*" "\Hyper-V Virtual Switch Processor(*)\*" "\Hyper-V Virtual Switch(*)\*" "\Hyper-V VM Live Migration(*)\*" "\Hyper-V VM Remoting(*)\*" "\Hyper-V VM Save, Snapshot, and Restore(*)\*" "\Hyper-V VM Vid Numa Node(*)\*" "\LogicalDisk(*)\*" "\Memory\*" "\Netlogon\*" "\Network Interface(*)\*" "\Network Inspection System\*" "\NUMA Node Memory(*)\*" "\Paging File(*)\*" "\Per Processor Network Activity Cycles(*)\*" "\Per Processor Network Interface Card Activity(*)\*" "\PhysicalDisk(*)\*" "\Physical Network Interface Card Activity(*)\*" "\Process(*)\*" "\Processor(*)\*" "\Processor Information(*)\*" "\RDMA Activity(*)\*" "\Redirector\*" "\RemoteFX Network(*)\*" "\RemoteFX Root GPU Management(*)\*" "\SMB Client Shares\*" "\SMB Server Shares(*)\*" "\SMB Server Sessions\*" "\Server\*" "\Server Work Queues(*)\*" "\System\*" "\TCPv4\*" "\TCPv6\*" -f bincirc -v mmddhhmm -max 500 -si 00:00:02

logman.exe start %ComputerName%_short_interval

 

Note:  I personally like to capture all the counters and instances.  The reason is, I cannot tell you how many times, where I was looking at a perfmon, that I went, ok, the bread crumbs lead this way, let me look at that counter, just to find out, it wasn’t collected.  And then having to wait for the problem to reoccur.

 

::Stop perfmon

logman.exe stop %ComputerName%_short_interval

 

Long-interval:
=========

:: Start a local Perfmon
logman.exe create counter %ComputerName%_long_interval  -c "\Cache\*" "\Cluster Resource Control Manager\*" "\Cluster Global Update Manager Messages\*" "\Cluster Network Reconnections(*)\*" "\Cluster Resources(*)\*" "\Cluster NetFt Heartbeats(*)\*" "\Cluster CSV Block Redirection(*)\*" "\Cluster CSV Volume Cache(*)\*" "\Cluster CSV Volume Manager(*)\*" "\Cluster CSV Coordinator(*)\*" "\Cluster CSV File System(*)\*" "\Hyper-V Dynamic Memory Balancer(*)\*" "\ICMP\*" "\ICMPv6\*" "\IPv4\*" "\IPv6\*" "\Hyper-V Dynamic Memory Integration Service\*" "\Hyper-V Dynamic Memory VM(*)\*" "\Hyper-V Hypervisor Logical Processor(*)\*" "\Hyper-V Hypervisor Partition(*)\*" "\Hyper-V Hypervisor Root Partition(*)\*" "\Hyper-V Hypervisor Root Virtual Processor(*)\*" "\Hyper-V Hypervisor Virtual Processor(*)\*" "\Hyper-V Hypervisor\*" "\Hyper-V Legacy Network Adapter(*)\*" "\Hyper-V Replica VM(*)\*" "\Hyper-V Shared VHDX(*)\*" "\Hyper-V Virtual IDE Controller (Emulated)(*)\*" "\Hyper-V Virtual Machine Bus\*" "\Hyper-V Virtual Machine Health Summary\*" "\Hyper-V Virtual Network Adapter(*)\*" "\Hyper-V Virtual Storage Device(*)\*" "\Hyper-V Virtual Switch Port(*)\*" "\Hyper-V Virtual Switch Processor(*)\*" "\Hyper-V Virtual Switch(*)\*" "\Hyper-V VM Live Migration(*)\*" "\Hyper-V VM Remoting(*)\*" "\Hyper-V VM Save, Snapshot, and Restore(*)\*" "\Hyper-V VM Vid Numa Node(*)\*" "\LogicalDisk(*)\*" "\Memory\*" "\Netlogon\*" "\Network Interface(*)\*" "\Network Inspection System\*" "\NUMA Node Memory(*)\*" "\Paging File(*)\*" "\Per Processor Network Activity Cycles(*)\*" "\Per Processor Network Interface Card Activity(*)\*" "\PhysicalDisk(*)\*" "\Physical Network Interface Card Activity(*)\*" "\Process(*)\*" "\Processor(*)\*" "\Processor Information(*)\*" "\RDMA Activity(*)\*" "\Redirector\*" "\RemoteFX Network(*)\*" "\RemoteFX Root GPU Management(*)\*" "\SMB Client Shares\*" "\SMB Server Shares(*)\*" "\SMB Server Sessions\*" "\Server\*" "\Server Work Queues(*)\*" "\System\*" "\TCPv4\*" "\TCPv6\*" -f bincirc -v mmddhhmm -max 500 -si 00:05:00

 

logman.exe start %ComputerName%_long_interval

 

Note:  I personally like to capture all the counters and instances.  The reason is, I cannot tell you how many times, where I was looking at a perfmon, that I went, ok, the bread crumbs lead this way, let me look at that counter, just to find out, it wasn’t collected.  And then having to wait for the problem to reoccur.

Note 2:  You could change the interval for the long from to -si 00:05:00 to anything depending on how long you want to capture.  For more info on the sample interval that you need to choose, check out:  How often should Perfmon Sample?

 

::Stop perfmon

logman.exe stop %ComputerName%_long_interval

 

More information:
============
The three (3) ways of setting up a perfmon log

*  If you use my colleague Clint Huffman’s Performance Analysis of Logs (PAL), the “Hyper-V” performance is named “Microsoft Windows Server 2012 Hyper-V”.

How to setup an in-flight recorder:
•How To Equip Your Windows Server Environment With A Blackbox Flight Recorder
or
•How to create a “black box” performance counter data collector
or
•Put a BlackBox (Black Box) on your server!