Skip to content

bgeneto/windows-disk-trace-vis

Repository files navigation

Windows Disk Trace Visualizer

Windows Disk Trace Visualizer is a simple but useful web application designed to streamline the process of analyzing Event Trace Log (ETL) files, specifically focusing on Disk I/O activities. This tool offers an intuitive and user-friendly interface to effortlessly navigate through complex ETL data, providing insightful summaries and statistics for a thorough understanding of your disk performance requirements. Key Features:

  • Data Analysis: Uncover the most frequently requested data size, the percentage of random reading or writing, the average access time, and more.
  • Performance: Identify the average throughput and IOPS for each disk, and compare the performance of sequential and random requests.
  • Filter Capability: Filter data by process name or request size.

All this info is valuable for understanding where the performance of your disk/ssd matters most for your desired/traced workload/application.

Usage

The webapp is hosted here. You will need my custom view profile to convert the .etl trace log file to a .csv file.

First, you need to record a trace of your 'Disk I/O activity' with WPRUI.exe (or via command line). You can trace your Windows boot process or a specific application/workload. Then you need to convert the saved .etl file to a .csv file using the wpaexporter.exe tool that comes with Windows ADK. The wpaexporter.exe tool is typically located in the C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit folder, an example usage follows:

wpaexporter.exe -i boottrace.etl -profile DiskIO.wpaProfile -delimiter ;

You can also trace your boot process as follows:

  • Open an elevated command prompt and run:

    wpr -addboot GeneralProfile.Light -filemode -recordtempto D:\\Temp

After this, the trace will start automatically at the early stage of the next (re)boot.

  • The command syntax to save the boot trace (.etl file) is the following:

    wpr -stopboot D:\\Temp\\boottrace.etl

Now you can upload the (compressed) .csv file to this page. The page script — written in Python{python_svg}using Pandas{pandas_svg} — will analyze the single trace record using the provided profile and show you the results in tabular and graphical formats.

Note: tested with WPR v10.0.25931.1000 on Windows 11 Pro version 22H2.

Example Output

Here is an excerpt from the application's output, which demonstrates a typical result from our Windows 11 boot trace example file.

Value
Monitoring time 52.25 seconds
Average access time 83.93 µs
Read requests 150704
Write requests 15948
Total requests 166652
Percent READ 90.43%
Percent WRITE 9.57%
Percent RANDOM 90.07%
Percent SEQUENTIAL 9.93%
Read data size 3.65 GB
Write data size 0.29 GB
Total data size 3.95 GB
Min. read request size 0.5 KB
Avg. read request size 25.4 KB
Max. read request size 43132.5 KB
Min. write request size 0.5 KB
Avg. write request size 19.3 KB
Max. write request size 1136 KB

image

☝ Note the predominant number of 4KB random read requests (56%), followed by 16KB requests (18% read|30% write).

image

☝ Time spent in every request size.

image

☝ Note how much faster is an SSD vs HDD in terms of latency/access time.

image

☝ Random vs Sequential requests by IO Type.

About WPR

Windows Performance Recorder (WPR) is a performance recording tool that is based on Event Tracing for Windows (ETW). It records system and application events that you can analyze by parsing the generated Event Trace Log (ETL) file. The ETL file format is a proprietary binary file format used by Microsoft Windows for collecting and storing event traces generated by various components of the operating system. Since it is a poorly documented and proprietary format, we need to use the WPA Exporter tool in order to convert the .etl file to a .csv file and then perform the desired trace analysis via csv file. Both WPR and WPA Exporter are part of the Windows Assessment and Deployment Kit Windows ADK.

About

A simple but useful web application designed to streamline the process of analyzing Event Trace Log (ETL) files, specifically focusing on Disk I/O activities

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages