Using Xperf to investigate slow I/O issues


Here’s another short video of the type of triage possible with Xperf, this time Bob shows us how to track down a slow I/O issue. Since I/O Manager is instrumented at IoCallDriver and IoCompleteRequest we can often use this information to diagnose a Slow I/O or SAN issue. The steps to enable the tracing are in the video description and here again below.




Video Description: (

Here’s how you can use the Windows Performance Toolkit aka Xperf to investigate slow I/O issues on Windows 2008, Vista, and higher versions. Put the following into a batch file (modifying the -f to point the etl file generation elsewhere than the slow storage) and it will start a circular trace which can be stopped when the slow I/O occurs.

@echo off

xperf -on PROC_THREAD+LOADER+CSWITCH+FILENAME+FILE_IO+FILE_IO_INIT+DRIVERS -f kernel.etl -stackwalk CSwitch+DiskReadInit+DiskWriteInit+DiskFlushInit+FileCreate+FileCleanup+FileClose+FileRead+FileWrite -BufferSize 1024 -MaxBuffers 1024 -MaxFile 1024 -FileMode Circular

echo Reproduce the problem now, hit any key to finish, collect Merged Etl file


echo merging etl…

xperf -d XperfSlowIOcir.etl

@echo on


Share this post :
Comments (2)

  1. raymond says:

    the download url is invalid right now。

    [Thank you for your comment.  The download version of the video is no longer available.  Please use the streaming video.]

  2. says:

    Thank you, great post!

    I am trying to do this with the Windows 8 version of Windows Performance Analyser (ver 6.2.9200.16384) but I cannot find the 'Driver Delays' graph. What graph should I use in the new version to get the information you showed in this video ?

    [The Storage Driver Delays graph is under the Storage graph.  The screenshots in this article may help,]