What do you do when your computer reacts sluggishly to even the simplest commands? You probably look at its hard disk LED to determine if the disk is busy, because if it is, the only thing that really helps is waiting (apart from buying a faster disk or SSD). Problem solved – if you are sitting right next to the machine. But what if you are using a protocol like RDP or ICA to connect to a remote computer or VM? No HDD LED, no quick and simple way to check for hard drive activity. This has been bugging me enough to write a software replacement: DiskLED.
DiskLED is a little application that sits in the system tray and flickers whenever the hard disk is accessed. It looks like this:
That could be all there is to say, but I decided to make the tool a little more flexible.
DiskLED queries performance counters for disk activity data. Basically, what it does is periodically query a specific counter and display the current value graphically. The cool thing is it is not limited to hard disk activity data. Using a simple INI file, DiskLED can be configured to display any counter’s data.
Obviously an LED type display is well-suited for activity data only. When dealing with many other counters, a different visualization method is needed. Here you go: DiskLED has a second display mode, similar to how Task Manager shows CPU utilization. It can be used to display the disk queue length, for example, and looks like this:
When dealing with remoting protocols like RDP or ICA one generally tries to reduce screen updates to a minimum. For that reason the frequency with which DiskLED updates its icon can be configured freely.
DiskLED comes as a standalone EXE file. No need to install anything. If you run the executable all by itself, it uses the following built-in parameters:
- Display mode: flickering LED (first example shown above)
- Performance counter used as data source (localized!): \PhysicalDisk(_Total)\% Disk Time
- Update interval: 30 ms
So if you have an English version of Windows and just need a HDD activity LED, there is nothing you need to do except run DiskLED.
If there is anything you want to modify, create a text file, name it DiskLED.ini and put it in the same folder as the executable. A sample INI file is included in the download. Here are two different configurations for reference purposes:
Default configuration, but for a German system:
; ; Configuration file for DiskLED by Helge Klein ; ; https://helgeklein.com/wp-content/uploads/2010/05/animation-2.gifhelge/ ; [Performance Counter 1] ; The type of LED indicator to show LEDType=Flicker ; The localized (!) path to the performance counter used as a data source for the LED Path=\Physikalischer Datenträger(_Total)\Zeit (%) ; The update interval of this counter in ms UpdateInterval=30
The second sample configuration uses a bar-style display mode to display the disk queue length (\PhysicalDisk(_Total)\Current Disk Queue Length). It updates every 500 ms only. With this display mode, you have to tell DiskLED which numerical value corresponds to 100% utilization. In the case of disk queue length, this is typically 2 on single-disk systems:
; ; Configuration file for DiskLED by Helge Klein ; ; https://helgeklein.com/wp-content/uploads/2010/05/animation-2.gifhelge/ ; [Performance Counter 1] ; The type of LED indicator to show LEDType=ColoredBar ; The localized (!) path to the performance counter used as a data source for the LED Path=Path=\PhysicalDisk(_Total)\Current Disk Queue Length ; The update interval of this counter in ms UpdateInterval=500 ; This value is considered as 100% utilization 100% Utilization=2
Download DiskLED here.
Once you have tried it out, let me know what you think of DiskLED and how it can be improved by commenting on this article.