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!