One of the things that system managers should (and sometimes do) care passionately about is the detail of the file I/O performance of their systems. Modern applications are often extremely disk-intensive, and the average system manager is largely unaware of the real performance of his or her disk subsystems, aside from the high-level "total bytes in/out" statistics provided by the average management tool. hIOmon from HyperIO aims to solve this problem by providing real low-level statistics, down to a per-file level if desired, for disk input and output.

The package uses WMI (Windows Management Instrumentation) to acquire its information WMI is built into Windows, and is Microsoft's way of allowing management and monitoring applications low-level information about the system – including disk traffic. hIOmon provides a means of dipping into this information and pulling data out as per manager-defined criteria.

When you install the package, it places some background services on the machine that perform the actual data collection. The interface between this stuff and the user is provided by a pair of applications: the WMI Browser and the presentation client.

The WMI browser is the more functional of the two applications. You use it to define exactly how the system is to be monitored – notably by telling it what directory and files to include/exclude in its monitoring, and what type of activity to monitor for each set of files – but it also provides a wide selection of reporting facilities as well. It also contains the various startup options for the hIOmon services (you can flag which services to start automatically with Windows and which you'll do by hand, and you can tell it what file/facility filters to use by default).

Aside from being the configuration system, the WMI browser will also report on the status of the hIOmon system – what log files are in use, how the system is performing, and so on – so that you can ensure everything's working as you expect (and that it's not filling up your disk because you've chosen to log too much). A particularly useful part of the browser's functionality, though, is its "Top Ten" report, which gives an instant view of activity based on your chosen criteria. You specify a metric (total data read, file size, and so on) and a sort sequence option (% idle time, file size, and so on) and it'll produce an instant report showing the top ten items that fit your criteria and a simple total based on your metric (so if you'd said "number of bytes read" it'd tell you how many bytes had been read since startup for each item). There are dozens of options in the metric and sort option menus, but it can be interesting to go through some and understand what's going on.

For example, if you ask it to tell you the top ten processes that are accessing files, you'll probably see that your AV package sits at the top of the list, because it's processing pretty well every document you open.

When you've used the WMI browser to get a feel for the behaviour of the system, you can then use the presentation client to drill down into the data. The main difference between the two packages is that while the WMI browser works in a Web browser window (so you have to refresh pages between operations) the presentation client is a Java applet that can sit and provide you data (either summary information or the full detail) in real time, just like a Windows application. The client lets you make your file selections and then reports the activity of the related files; it'll also replay stats from saved activity sets if you so wish.

Aside from the supplied applications, it's also worth mentioning that the vendors provide a couple more ways into the data. One is a set of VBScript scripts, which use the hIOmon low-level interfaces to retrieve data programmatically. These are useful if you're thinking of producing your own applications, as they provide examples of accessing the various parameters (both performance stats and interfaces into extra stuff such as the hIOmon status data) which you can build upon for your own custom solutions. The other extra gadget is a command-line executable that interfaces to the hIOmon functionality, which again is useful if you want to build your own, automated scripts that use I/O performance stats.

There's only one thing that lets this product down, and that's its friendliness. The presentation client is okay, but the WMI browser GUI is pretty abysmal – they could at least have applied some basic design to it and made it a bit more intuitive. Using the package requires at least some comprehension of the internals of WMI, because although we said earlier than you define metrics and whatnot in terms of things like the number of bytes read, the options in the pull-down menus are all things like "DataXfer_SizeMin_Read" and "IOPCount_ControlOpenCreate" - not exactly the stuff of high usability ratings. Sadly the lack of friendliness continues into the documentation too – although the user guide does include some reasonably comprehensible "quick start" content, it reads more like a degree-level computer science textbook than a guide for the average system manager.

This lack of usability is a shame, because the underlying functionality of the product itself appears to be sensibly implemented and is, once you've figured out how the hell to use it, potentially very valuable to the system manager. And in fact, it's clear that someone at HyperIO can do GUI design, because the presentation client's actually not bad – it's mainly the WMI browser that looks bad. So please, HyperIO, sort out your usability – it'll make a potentially useful product usable.


As we've alluded to in the review, some of the terms used in the user interface will be hard to grasp; we'd suggest that you get a book on WMI and how it works if you're to stand a chance of using this product properly.