How to control disk utilization

This How To explains how to monitor the disk utilization of a Window Server or workstation. The SNMP service should be activated on the Windows system and support the Host Resource MIB.

Warning: The SNMP objects used in this how to come from our Windows perfmib.mib file. Our examples will not work with any other mib available on the Internet. The configuration and installation of this MIB is explained in the How to add SNMP performance monitoring to WIndows 2000 / XP

You should download the set of file including the perfmib.mib file from this page. We do have a working perfmib.mib before continuing.

 The following table comes from Microsoft recommendation. You could use it a reference for setting your thresholds. 

Resource Object\Counter Suggested threshold Comments
Disk Physical Disk\% Free Space
Disk Physical Disk\\% Disk Time
Disk Physical Disk\Disk Reads/sec, Physical Disk\Disk Writes/sec Depends on manufacturer's specifications Check the specified transfer rate for your disks to verify that this rate does not exceed the specifications. In general, Ultra Wide SCSI disks can handle 50 to 70 I/O operations per second.
Disk Physical Disk\Current Disk Queue Length Number of spindles plus 2 This is an instantaneous counter; observe its value over several intervals. For an average over time, use Physical Disk\Avg. Disk Queue Length.

 Control disk space

 Disk space utilization is store in the Host Resource MIB define in the rfc2790.mib 

The table that store the disk utilization is : 

Object Name          : [ hrstorageentry ]
Children of Object   : [ hrstoragetable ] 

OID LEN (10) :


 The table below is obtained form the LoriotPro MIB tree by clicking on the hrstorageentry object: 

disk utilization 

Mib Table 

For each Storage unit an index exist in this table.

In our example the Window XP server contains a C drive with the index (hrstorageindex) number 2. It has a cluster size of 4096 Bytes and a total capacity of 10034592 clusters. The total amount of disk space is (10034592 x 4096) 41 101 688 832 bytes or 38,2 Gb. 

The current disk space utilization is given by the hrStorageUsed oid. 

To control the utilization of disk space a threshold could be set on this value. To calculate the threshold the hrStorageSize  has to be used.
In our example if we want to receive an event when 80 % of the disk space is used, we calculate the value from hrStorageSize.

(10 034 592 x 80 ) / 100 = 8 027 673. 

Now we set the configuration of the threshold within LoriotPro. We use the LoriotPro Sample Plugin Loriot Graph Gauge3 V2.2. Follow the documentation for attaching the plug-in to the host you want to control. 

The configuration of the Plug-in is done below: 


First we should specify the OID to collect and the instance of the interface, here instance 2 that correspond to our disk C. 

Next we define the maximum value (Max Value)  that our OID can reach (10034592 in our example). 

We choose the “No Differential” mode because the value is not a counter value but a gauge (remember, a counter could not decrease !). 

Finally we set an event number and a level (the color seen in the LoriotPro Event Manager) and the threshold (here, 80 % of the maximum value). 

We do have a graphical view and events should appear in the event manager if the threshold is reached. 

hrstorageused  Example of view 

The value could also be display in a Line Graph. Use our LoriotPro Sample Plugin LoriotGraphCounter2 V2.2 to perform this graph. 

The configuration is quite similar. This Plug-in is not able to send Event. 


The graph shows two lines, the red line is the Maximum disk space and the blue one is the current disk space used. 


The event in the Event Manager (the threshold has bee raised to 2027673) 

This event could be used to send E-mail to the administrator. Refer to Event filtering and SMTP Event scheduler Plug-in for doing such forwarding. 

The same control could be set in the Bulk Threshold Plug-in. The Bulk Threshold Plug-in allows you to define threshold for multiple Hosts and Multiple OID in the same screen.

Here our example with the same settin use previously 

Bulk oid control 

Refer to our documentation available on our web site for configuring this Plug-in. 

Control Disk performance 

The disk performance could be check with the following counters: 

The %disk time  is the percentage of elapsed time that the selected disk drive is busy servicing read or write requests, including time waiting in the disk driver queue. 

The Avg. Disk Queue Length is the average number of both read and write requests that were queued for the selected disk during the sample interval. Requests are queued when the disk is busy to serve too much requests. 

Both counters could be collected in our perfmib.mib file. We provide the MIB tree detail for finding these objects. There are located in the private branch of the MIB under the Microsoft branch. 


Before using it, it is necessary to find the disk instance that you want to control. If you have multiple disks on your system you have multiple instances (index). The following screen shows you how to find a particular instance of a disk. In our example below the index of the only installed disk in the system is 4. We should use it in our performance SNMP object collect.
One of the ways for finding instances is opening the Mib table. The first object of the table is the index object. In LoriotPro if you click on the ms-pdisk-physicaldiskindexyou get the following table. 


We have everything for setting up threshold and graph. 

Setting thresholds 

We define 2  thresholds, one on the ms-pdisk-avgdiskqueuelength at 10 and one on ms-pdisk-percentdisktime at 60 %. 


Warning: These counters are sometimes not responding to requests. The support of these counters within your system is not guarantee. If you have trouble verify your SNMP service agent installation. 

A graph on the Disk queue length 

End of document