Using Xperf to investigate slow I/O issues
Debuggers,
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.
Thanks,
Tate
Video Description: (https://www.youtube.com/watch?v=0h-i_EfzadA)
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
pause
echo merging etl...
xperf -d XperfSlowIOcir.etl
@echo on
Share this post : |
Comments
- Anonymous
January 18, 2011
The comment has been removed - Anonymous
October 31, 2012
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, http://blogs.msdn.com/b/ntdebugging/archive/2012/05/31/hotfix-to-enable-mini-filter-performance-diagnostics-with-xperf-for-windows-server-2008r2.aspx.]