We are running multiple processes on our servers, which are mostly CPU intensive, but also use the local HDDs for reading the data. I can trivially look at the CPU load and memory usage in TaskManager on these boxes, how can I monitor the HDD IO? I would like to figure out:
- If the current load is in any way bottlenecked by the HDD
- Asses how many of these processes I can run on the box without bottlenecking the HDD
The simplest metric is disk queue. It is basically the number of operations waiting in the queue to be written to disk. The rule of thumb is that if the queue has a sustained size that is greater than the number of disks you have in the array then you need more disk.
All this can be measured using perfmon.
Or you can use Nagios to monitor your Windows Server disk load. This plugin works perfectly to monitor disk load of any disk on any Windows Server. It will also calculate read and write latency, read and write queue, number of reads and writes, read rate and write rate.
https://outsideit.net/check-ms-win-disk-load/