╔═══════════════════════════════════════
Windows Performance Recorder

┌───────────────────────────────────────
Plainspeak

WPR (Windows Performance Recorder) and WPA (Windows Performance Analyzer) allow for extremely comprehensive data on the operating system's activities to be generated. Recording information can be made very basic by the WPR GUI and the use of the settings described here. Interpretation of the data using WPA is a whole, other matter and requires knowledge of how Microsoft Windows works under the hood.

This document describes the generation of data, not its interpretation.

To understand how to interpret the data, see the second and third items in the heading 'References' and PSPro also recommends the book 'Windows Internals'.

┌───────────────────────────────────────
References

Windows Performance Recorder
Windows Performance Analyzer
ETW Central
Windows SDK and emulator archive
Wikiwand - Microsoft Windows SDK
Operating System Version
User Account Control

┌───────────────────────────────────────
Acquire

• Determine the latest Windows SDK whose components are compatible with the target OS:
    · Typically a Windows SDK is compatible with an OS version one downlevel from the OS version the Windows SDK targets.
        · e.g. the Windows 8.1 SDK is largely compatible with Windows 6.1, and the Windows 10 SDK 1507 is largely compatible with Windows 8.1.
    · However, individual components within the Windows SDK may not be downlevel compatible.
        · e.g. Windows Performance Toolkit may not be downlevel compatible.
    · Windows SDK and emulator archive

• Install the Windows SDK component: Windows Performance Toolkit

• PSPRO recommends installing the following Windows SDK components:
    · Application Verifier for Windows
    · Debugging Tools for Windows
    · Windows Performance Toolkit

┌───────────────────────────────────────
Configure

• On Windows 6.0-6.1 x64 computers: Disable paging of Windows Executive kernel code.
    · In an administrative, UAC-elevated cmd.exe window:
        · Execute: "C:\Program Files (x86)\Windows Kits\<versionindicator>\Windows Performance Toolkit\wpr.exe" –disablepagingexecutive on
            · Where '<versionindicator>' is the Windows SDK version.
                · Determine '<versionindicator>' by viewing the folder: C:\Program Files (x86)\Windows Kits\
        · Reboot.

    · Alternately, open Registry Editor:
        · Set: HKEY_LOCAL_MACHINE\System\<controlset>\Control\Session Manager\Memory Management  DisablePagingExecutive  REG_DWORD  1
            · Where '<controlset>' is the control set intended.
                · Typically: CurrentControlSet
        · Reboot.

• PSPRO recommends disabling paging of Windows Executive kernel code on every Windows 6.0 and uplevel x64 operating system:
    · This option increases physical RAM consumption by only a few MBs of non-paged pool.
        · On x64 operating systems with modern amounts of physical RAM the non-paged pool limit is orders of magnitude larger than this option will consume.
    · This option prevents a few more writes to an SSD hosting the system paging file.
    · PSPro is aware that an operating system with modern amounts of RAM may not page Windows Executive kernel code at all.
        · PSPro recommends this option regardless simply to ensure that Windows Executive kernel code is not paged.

┌───────────────────────────────────────
Procedures

• For most issues that are able to be reproduced in a timely manner:
    · Open Windows Performance Recorder: Windows Button | Windows Kits | Windows Performance Recorder
        · The window 'User Account Control' will appear.
            · Click: OK
            · The window 'User Account Control' will close.

        · The window 'Windows Performance Recorder' will appear.
            · In the section 'Select additional profiles for performance recording | First level triage', select: First level triage
            · In the section 'Select additional profiles for performance recording | Resource analysis', the following may be selected as appropriate:
                · CPU Usage
                · Disk I/O activity
                · File I/O activity
                · Registry I/O activity
                · Networking I/O activity

            · In the section 'Performance scenario', select: General

            · In the section 'Detail level', select: Verbose
                · This option enables the Flame Chart which is extremely useful for finding performance bottlenecks.

            · In the section 'Logging mode', select: Memory

            · Click: Start
                · This will commence data generation.

            · Reproduce the problem under investigation.

            · Click: Save
                · This will conclude data generation.

            · In 'Type in a detailed description of the problem', note the timestamps of principal events.
            · Click: Save
            · Await the message: General Trace information was successfully saved
            · Click: OK
            · The window 'Windows Performance Recorder' will return to its original interface.
            · Close the window 'Windows Performance Recorder'.

┌───────────────────────────────────────
Credits

Any external referenced material in this document is hyperlinked. Authors responsible for referenced work should be sought through the reference(s) listed.



I am Christopher Etter, a Professional Services consultant.

Because you are using this, I welcome you as my customer. These documents are free for you to use. I work diligently to serve you with material such as this. I would appreciate it if PSPRO (professionalservices.pro), my name, and this 'Credits' section remain attached to this work so that I accrue name recognition via your success and peer recommendation. Thank you very much, and I hope this document helps you solve your current information technology issue!