Microsoft – Windows – Performance Tools – Kernrate


Reading through Mark Russinovich’s Blog I got a wind of Kernrate.  The specific Blog is:

The Case of the System Process CPU Spikes

Kernrate tool allows one to Profile Applications & Device Drivers CPU Usage \ 
Consumption.  It accomplishes this by measuring code as it makes it with through the OS\Windows Kernel.

Installation Media

Depending of your OS, there are a couple of avenues to get KernRate.

Windows 7 • Windows Server 2008 • Windows Server 2008 R2 • Windows Vista (all versions) • Windows Server 2003 with Service Pack 1 (SP1) or later • Windows Server 2003 x64 editions • Windows XP Service Pack 3 (SP3) or later

  • Windows Device Driver Kit

MS Windows 2003

  • Windows Server 2003 Resource Kit


Windows Device Kit

Download & Extract

  • Once downloaded you will have a copy of GRMWDK_EN_7600_1.ISO
  • Extract the ISO File (BTW, 7-Zip is a good tool for extracting compressed files)
  • Run kitsetup.exe
  • Install Steps

Install Steps

  • Choose the following features [Tools & Help (Documentation Collection)]
  • Press OK once you’re satisfied with your selection
  • Choose the “Install Path” – In our case, we selected “D:\WinDDK\7600.16385.1\”
  • End-User License Agreement – Agree to the “License Agreement”
  • During the Install, the progress of the Install is indicated from an “Install Progress” bar
  • Once Install is completed indicated through the 100% Complete Indicator, click on the “Finish” button

Installation – Windows Server 2003 Resource Kit Tools

If you choose to install via “Windows Server 2003 Resource Kit Tools”

  • Download “Link
  • Install “Windows Server 2003 Resource Kit Tools”
  • Note install folder


To execute the installed Application, please do the following:

  • Start Command Shell
    • Using cmd.exe in administrator mode
  • Depending on the “Install Location” selected during the Installation, proceed to the base of the Install
  • Navigate to Tools\Other folder
  • Depending on your “Processor & OS Architecture”, choose from the following choices – amd64 (64-bit Intel or AMD Architecture), i386 ( 32-bit), ia64 (Itanium [HP\Intel Collaboration).
  • Execute kernrate.exe

Allow the System to run for at least 15 minutes or so.  Try your best to have it running
while the system is under heavy load.

Once you think you have generated enough data, press Ctrl-C to terminate your kernrate session.

The Application quickly aggregates and shows the captured data.


Parameter Description
 -a By Default only system apps are monitored, to review user Processes, try the -a option
 -n When the -a option is specified and user processes are profiled as well, you can use the -n option to filter on specific process names
 -s This allows the user to specify duration in seconds. Otherwise, issue control-break to end session
 -yo Creates an ASCII output file
 -yr Creates a binary output file; this is usable to companion products such as krview
 -z To zero-in or zoom-in on specific apps, use the -z option


Environment Information:



  • Machine Hardware make-up – Number of Processors (note that the number reported is not the number of physical processors, but Logical Processors), Physical Architecture (AMD64, Intel, etc), Physical Memory, PageFile, PageFile location, OS Version, etc.
  • Listing of any parameters passed to Kernrate
  • Processor Utilization breakdown for each time-slice that was measured – Kernel, User (Application),  Idle, DPC, Interrupt
  • Summarized Stats for “Available Physical Memory”, “Available Pagefile”, “Available Virtual”, Non-Paged, Paged Pool, Free System PTE
  • Summarized Stats for “Context Switches”, “System Calls”, “Page Faults”, “I/O Reads”, “I/O Writes”
  • Percentile breakdown for each Module that was operated on by the Kernel Code       


  • Local Security Policies \ “Profile System Performance”  – If not granted then the following error message: 0xc0000061 –> “STATUS_PRIVILEGE_NOT_HELD” is displayed


Output Result:

Once CTRL-C is pressed, here is what we see:

Overall Summary:








  • The Case of the System Process CPU Spikes
  • Analyze Driver Performance
  • Kernrate User Guide
  • Where in the World is KernRate?
  • How to troubleshoot high CPU in the System Process
  • Nynaeve – An Introduction to Kernrate
  • Kernrate Utility RtlAdjustPrivilege Error
  • System CPU Usage
  • Troubleshooting CPU Spikes in the System Process (Ricardo Vicente)
  • 3 Steps to TroubleShooting Device Drivers

18 thoughts on “Microsoft – Windows – Performance Tools – Kernrate

  1. First of all thank you for your instructive post.

    However, I am having a problem for wich I haven’t found an answer anywhere on the net, i would really appreciate it if you might know something about it:

    i have now finally found and downloaded the kernrate that is compatibe with my x64 system, and it works, i open it and wait but when I press ctrl+c do collet the data the programm just closes almost instantly, so i can’t see the result..
    And i am thinking that maybe the data log is stored in a folder, it would make sense, but i have no idea in which one it might be stored, i searched in all the folders that might contain the data but found nothing.

    I believe a driver is hogging my CPU but I just can’t find out which one without kernrate as far as i know, so any help would be greatly appreciated 😀

  2. Thank you very much for your quick response, wow, since the post was kind of old i wasn’t even expecting an answer at all ! 😀

    I am also using windows 7 on a local machine..

    Maybe I should explain a little bit more : when i press ctrl-c, the program shows the results, but only for half a second until it scrolls down to the end (where it says “end of run”), then it immediately closes..
    So this leaves me no time to see anything, and since the program doesn’t seem to be saving the results somewhere, it doesn’t help me..

    Is there really no folder where kernrate keeps the collected data in some basic text document??

    Meanwhile I will check out the other tool tough, and come back here to keep you informed.

  3. I did, but it doesnt change anything as far as i know, kernrate.exe still closes as soon as it gets the results, and cmd.exe is unaffected by this operation..

  4. Daniel, I had to comment and pat you on the back for your willingness to help Fabian and others. I’ve been using the internet since ’89 and I’ve never seen anyone sat “or you can call my cell”! Spectacular offer and I hope you never lose that helping nature.

    Now back to tracking down my own rogue process…

    • Andrew:

      Thanks for your beautiful words.

      Something about “Candles not being dimming through lighting others candles” is relatable.

      With Wordsmiths like you around, eternity will never be boring – Pope Francis.

  5. Hi, do you know if this is possible to run on server 2012? I’m continuing to have performance issues with my sql server and not sure of the exact problem. Thanks in advance.

  6. Sorry if this is repetitive …I didn’t see my comment post. I’m looking to run this on Server2012. I’ve tried searching for it but haven’t had much luck. I’m having a lot of performance problems between our RD servers and our sql server. We are running in a virtual mode (if that matters). I did see some process threads I want to investigate but process explorer shows them as “unable to access”. I’m hoping that kernrate will help.
    Thanks in advance!

    • Rene:

      yes, Kernrate should work in MS Windows 2012.

      Specifically, which Application ( MS SQL Server or another application) are you benchmarking?

      As you are running in a virtualized environment, you have other worries such as Storage, Memory, and CPU.

      All of those are shared and can exhibit varying performance based on what other clients on the same hardware are doing.

      Are you using Task Manager & Resource Monitor, as well?

      Also, anything showing up in you MS Windows Event Viewer.

      And, specifically if your Application is MS SQL Server, what does it say in terms of what is dragging down performance.

      I mean to say your Wait Stats.

      How big is your Database and what type of Virtualized hardware have you provisioned?

      Thanks for asking,


Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s