Investigate Slow Disk I/O in Windows 8.1 or Windows 2012 With Xperf

I experienced some serious issues lately in my Windows 8.1 VM’s. Most of the time the resource monitor diplays a 100% disk I/O.

Now I had to be sure that it is disk I/O because this cannot always be redirected to I/O issues, for this I used Xperf. It’s a very nice tool to dig a bit deeper in the performance of your Windows OS. It can also be used in Windows 7, Windows 2008 and Windows 2012.

Download Windows Assessment and Deployment Kit (Windows ADK) for Windows 8.1 here (you only have to choose Windows Performance Toolkit):

After installing create a new batchfile with the following content (the best would be to create the kernel.etl on a disk that has no high disk I/O):

@echo off

xperf -on PROC_THREAD+LOADER+CSWITCH+FILENAME+FILE_IO+FILE_IO_INIT+DRIVERS -f C:\Performance\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

Double clicl to start the batchfile and it will start a trace which can be stopped when the slow I/O occurs. After this is completed you will see a kernel.etl file in C:\Performance. Double click the file and it will be opened in Windows Performance Analyzer.

You’ll need to trace the processes, read/write, wait-time and so on. If you would like to have more information tracking things like high I/O and CPU you should definately check these resources (great write-ups):