Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This is the table of contents (TOC) for the Microsoft Premier Field Engineer (PFE) Performance Guide (PerfGuide). Use this TOC to help you navigate to a specific article or to view the hieretical view of the perfguide. We will link articles to this TOC as they are written.
Performance Monitor
Basic Usage
- Starting Performance Monitor
- Adding/Removing counters
- Network considerations of remote counters
- Graph types
- Highlighting counters
- Show/hide console tree
Performance counters
- Counter paths
- Counter descriptions
- Overhead of viewing counters
- Special counter instances
- PID in process instances
- Understanding the fields
- Scaling counters
- Changing the scale of the chart
- Pattern matching
Creating a data collector
- Using the wizard
- From a template
- Using the command line
- Remotely
- Using PowerShell
Modifying data collector sets
- Starting and stopping data collector sets
- Data Collector Set properties
- Data Collector properties
- Saving a template
- Creating a data collector set from a template
- Contents of a template
- SQL Server named instances
- Using the PAL tool to create data collector templates.
- Sample counter log templates provided at [HTTP address] for various products.
- Viewing a counter log
Performance Monitor related tools
Logman
- Security considerations
- Common parameters
- Querying data collectors
- Creating a data collector on another computer
- Creating a data collector using a counter list file
- Creating a binary circular data collector
- Deleting a data collector
- Managing data collectors on remote computers
- Starting and stopping data collectors
- PowerShell
LODCTR
- Detecting corrupt counters
- Performance counters are in a linked list.
- Repairing operating system counters.
- Rebuilding application counters
Relog
- Log merging
- Filtering
- Converting log format
PowerShell
- Get-Counter
- Import-Counter
- Export-Counter
- Get-OdbcPerfCounter
- Enable-OdbcPerfCounter
- Disable-OdbcPerfCounter
Storage Media
- Initial indicators of storage media conditions
- Disk in Depth
- What's new in Windows 8 and Windows Server 2012
- Storage concepts
- Terminology
- I/O operations per second (IOPS)
- Dedicated spindles compared to shared spindles
- Physical disks compared to logical disks
- Choosing a RAID type
- Software RAID compared to hardware RAID
- Partition alignment
- Strip size
- I/O request packes (IRPs) and disk queues
- I/O priorities
- Processor conditions that can lead to poor storage performance
- How storage counter data is gathered
- PhysicalDisk and LogicalDisk counter objects
- How free space conditions can lead to poor storage performance
- The disk queue and idle time
- Disk transfers
- Measuring I/O sizes and split I/O
- How I/O size effects response times
- How to measure storage response times
- Storage related process counters
- Hyper-V storage counters and considerations
- Identifying storage performance conditions
- Analyzing storage performance
- Disk fragmentation and storage performance
- Identifying storage media failures
- Balancing power and storage performance
- Storport tracing
- How to look at Storport ETW Trace logs?
Virtual Memory
- Initial indicators of virtual memory conditions
- What’s new in Windows 8 and Windows Server 8
- Supplementary counters and thresholds
- The 32-bit x86 Virtual address space
- The 64-bit IA64 virtual address space
- The 64-bit x64 virtual address space
- Why is x64 at 16 TB instead of 16 EB?
- Many processes. One kernel
- The advantages of virtual memory
- Virtual memory and paging files
- Understanding the "Virtual memory minimum too low" error message
- Understanding process virtual address space
- How to determine the maximum virtual address space of a process
- Identifying application out of memory conditions
- Troubleshooting application out of memory conditions
- Working around application out of memory conditions
- Understanding reserved, committed, and free process memory
- Dynamic and static kernel virtual memory
- How to determine the maximum size of kernel virtual memory pools using LiveKD or WinDBG
- How to determine the maximum size of kernel virtual memory pools Using Process Explorer
- Troubleshooting Pool Paged and Pool NonPaged kernel memory
- Understanding the PFN database, RAM, and virtual memory
- Troubleshooting lack of System Page Table Entry (PTE) conditions
- Altering the 32-bit virtual address space
- Setting IncreaseUserVa with BCDEdit
- How to identify if an executable is large address aware
- Adjusting UserVA
- Understanding Address Width Extensions (AWE)
- How RAM impacts virtual address space
- Balancing power and performance
- Case studies
Physical Memory, Paging Files, and System Committed Memory
- Initial indicators
- What’s new in Windows 8 and Windows Server 8
- Physical memory limits in Windows 8 and Windows Server 8
- Monitoring the system commit limit
- Monitoring the system commit charge
- When the system commit limit is reached
- Hot-plug memory
- Free space and paging file considerations
- Page file sizing and monitoring
- The maximum number of page files
- Paging files and Crash dumps
- Dedicated dump files
- Accommodating the system commit charge peak
- What is written to a paging file?
- Monitoring modified memory
- Working Set trimming
- Pages/sec can be misleading
- The maximum size of a paging file
- Page file fragmentation
- Does having more than one page file help with performance?
- How physical memory is managed
- Page Frame Number (PFN) database
- The page file writer and the lazy writer
- Identifying a low physical memory condition
- Using Process Monitor to monitor reads and writes to a paging file
- Where did all of the physical memory go?
- Monitoring the kernel memory usage
- Pages locked in memory
- Hard page faults and hard drive performance
- Hard page faults and paging files
- Sizing RAM for new or used systems
- Available versus free memory
- Monioring Ready Boost performance
- Prefetch and Superfetch performance
- How process memory allocations effect physical resources
- What is a process working set?
- Monitoring process working sets
- Soft page faults and hard page faults
- Sharable and shared memory
- When working sets trim and a paging file increases
- When working sets trim, but no paging file has increased
- Identifying a process working set leak
- The effects of setting a minimum or maximum process working set size
- Managing large working sets
- Pages locked in memory
- Memory profiling an application
- Do EXE and DLL sizes affect the working set?
- Comparing process committed memory and process working sets
- How much process memory is on the page file?
- Monioring the performance of the .NET Garbage Collector
- Identifying a memory leak using Performance Monitor
- Identifying a memory leak using Process Explorer
- Troubleshooting a memory leak using VMMap
- Troubleshooting a memory leak using DebugDiag
- Troubleshooting a memory leak using Server Performance Advisor 3.0
- Troubleshooting a memory leak using UMDH
- Troubleshooting a memory leak using WinDBG
- Troubleshooting physical memory conditions on a Hyper-V host
- Balancing power and performance
- Case studies
Network
- Initial indicators
- What’s new in Windows 8 and Windows Server 8
- Monitoring bandwidth and utilization
- Queuing and other considerations
- Identifying high network usage
- Analyzing high network usage using Resource Monitor
- Analyzing high network usage using Process Monitor
- Analyzing high network usage using Microsoft xperf
- Identifying network conditions on Hyper-V
- Case studies
Startup and Shutdown
- Initial indicators
- What’s new in Windows 8 and Windows Server 8
- ReadyBoot
- Capturing boot performance using bootmgr.exe.
- Analyzing the ETL trace.
- Capturing boot performance using Process Monitor
- Capturing shutdown performance
- Example: Disk drive set to “quiet” mode.
- Hyper-V considerations
- Balancing power and performance
- Case studies
Processor
- Initial indicators
- What’s new in Windows 8 and Windows Server 8
- Terminology
- The Idle processIdentifying high processor usage using Task Manager
- Identifying high processor usage using Performance Monitor
- Identifying high processor usage using Resource Monitor
- Identifying high processor usage using Process Explorer
- Identifying high processor usage on Hyper-V
- Identifying user mode or privileged mode processor usage
- Identifying high DPC or interrupt processor usage
- Identifying high processor usage by process
- Identifying low processor usage
- Analyzing high privileged mode processor usage using Microsoft xperf
- Analyzing high privileged mode processor usage using the Microsoft Visual Studio Profiler
- Analyzing high privileged mode processor usage using the Debugging Tools for Windows
- Processor affinity and thread priority
- Context switching and transitions
- NUMA computer systems
- Balancing power and performance
- Case studies
Startup and Shutdown
- Initial indicators
- What’s new in Windows 8 and Windows Server 8
- ReadyBoot
- Capturing boot performance using bootmgr.exe.
- Analyzing the ETL trace.
- Capturing boot performance using Process Monitor
- Capturing shutdown performance
- Example: Disk drive set to “quiet” mode.
- Hyper-V considerations
- Balancing power and performance
- Case studies
Hyper-V
- Initial indicators
- What’s new in Windows 8 and Windows Server 8
- Terminology
- Hyper-V Architecture
- Hardware selection
- Analyzing physical memory and paging file performance
- Analyzing storage performance
- Virtual hard drive considerations
- Analyzing network performance
- Balancing power and performance
Case studies
Performance Analysis of Logs (PAL) Tool
- Choosing a threshold file
- Collecting counter log data
- Analyzing the counter log
- Interpreting the report
Microsoft xperf
- What is ETW?
- ETW versus performance counters
- Collecting an Event Tracing for Windows log (ETL)
- Analyzing the ETL file
- An end-to-end tracing with ETW example
Microsoft Semantic Logging Application Block
- EventSource tutorial
- Overview of Semantic Logging
- Video walkthrough
- Get it via NuGet
Microsoft Server Performance Advisor (SPA) 3.0
- Collecting data
- Analyzing the report
Process dumps
- Using operating system tools
- Using ProcDump
- Using the Debugging Tools for Windows
- Checking the dump file
Debug symbols
- What are debug symbols?
- The symbol path
- Using the Microsoft symbol server
- Creating and maintaining a symbol server
- When internet access is not available