Troubleshooting performance issues can be some of the toughest problems to diagnose, particularly those involving storage performance issues.  In many cases, a system administrator must be intricately familiar with the underlying storage architecture to effectively troubleshoot storage slowdowns.  Fortunately, there are a variety of free tools that can be used to monitor storage performance metrics to help determine what is causing your storage woes.

Task Manager

To get a cursory view of the problem, use the Task Manager (Ctrl+Shift+Esc) to select the Processes tab.  Use the View pull-down menu to Select Columns… specifying I/O Reads, I/O Writes, I/O Other, I/O Read Bytes, I/O Write Bytes, and I/O Other Bytes.  These I/O metrics will identify if a particular process is responsible for causing the I/O bottleneck.  Keep in mind that the I/O metrics include both disk and network I/O operations.  As you can see below, the Rtvscan.exe process (real time virus scan) is consuming significantly large amounts of I/O.  While this is typical for a virus scanner to consume large amounts of I/O, they are often blamed for storage performance slowdowns.

Storage Performance Monitoring with Windows Task Manager


If you need to shed some more light on your storage performance problems, it may be necessary to gather some performance metrics in a log file.  This will allow you to collect the data while the problem is occurring, and then analyze the data with charts and graphs to identify any problem areas.  Windows provides a built-in system tool known as the Performance Monitor, Perfmon for short.  Perfmon allows you to graph various performance counters illustrating the minimum, maximum and average values across a time range.  There is also a handy utility called PerfWiz from Microsoft that provides a menu-driver interface to automate the collection of Perfmon data.

The performance metrics are divided into various objects, counters and instances.  For example, the Perfmon objects that would be used to troubleshoot a storage performance issue would include the LogicalDisk and PhysicalDisk objects.  Within these objects, you would specify all the various disk-related counters such as % Disk Read Time, Avg. Disk Bytes/Read, etc…, and for each counter specify all the instances (i.e. all the disk drives).  You can see below how Perfmon is used to specify the PhysicalDisk object and all the various disk-related counters for all instances.

Storage Performance Monitoring with Windows Perfmon

Once the performance metrics are collected in a binary log file (BLG), the data can be read into Perfmon and then used to generate graphs.  By graphing a particular counter, for example Avg. Disk Bytes/Read, for all instances (disks), you can typically determine which disk drive is causing the perceived slowdown.  Keep in mind, there are numerous counters which must be reviewed to determine if there are multiple I/O bottlenecks, or correlations between counters (e.g. high read-rate on disk D:, high write-rate on E:).

--> The rest is on :