What is Disk Active Time and how do I decrease it?
Solution 1:
The graph is literally taken a measure of time the HDD (in your case) is reading or writing data.
What exactly is "disk active time"?
Disk active time is the time the HDD is working. The higher the time/percentage, the more you utilize the HDD.
If you hit 99%, you are actually bottle-necked by the read/write performance of your HDD.
See this question for that.
What properties in a hard drive should I buy to speed this up? (The disk transfer rate doesn't seem to relate)
You need a storage device (HDD or SSD) that has both: high throughput and low random access time.
High throughput allows you to read large files fairly quickly, which helps with, well, large files or sequentially arranged files.
Low random access time allows you to read many small files that are scattered around the storage device; your usual use case for any kind of application outside of content creation (Photoshop, After Effects etc often create huge files)
Are certain apps going to cause a higher active time versus others?
Yes: applications that utilize large files like games, Adobe After Effects and other large applications benefit from high throughput.
Applications like your usual web browser, Office applications etc benefit from low access times to read caches and safe small files.
What benefit does the bus type offer?
Some buses have higher latencies than others.
USB 3, for example, has a lower latency than USB 2 because of changes in how the communication is done [Source].
Thunderbolt is even better, especially for audio where low latency is extremely important [Source].
PCIe has a dynamic latency, based on the packet size (data is always sent in packets). The smaller the packet, the lower the latency [Source 1] [Source 2].
In general: An SSD is the way to go, if you need a fast and responsive system as it offers the best of both: high throughput and low access time
If you need bulk storage (very high capacity, like multiple terabytes): The best you can get are 10.000 RPM SAS Enterprise hard drives that offer: high sequential throughput (good for large files) and relatively low access times (in contrast to consumer HDDs).
Solution 2:
What exactly is "disk active time"?
Many sources that I can find said that 100% disk usage means the controller is saturating with requests, i.e. the request queue is full
Active Time (%). This shows the percentage of time that the disk is not idle and is actively serving requests. If a disk is constantly running at very, very high levels (say, more than 80%), it may point to a storage-related bottleneck. If your users are seeing performance issues, and you're seeing 100% active times, you might need faster or more disks.
Use Resource Monitor to monitor storage performance
However according to someone at Microsoft that's not quite true, although it still represents how busy your disk is, which relates to responsiveness and performance
%Disk Time (% Disk Read Time, % Disk Write Time)
The “% Disk Time” counter is nothing more than the “Avg. Disk Queue Length” counter multiplied by 100. It is the same value displayed in a different scale.
If the Avg. Disk queue length is equal to 1, the %Disk Time will equal 100. If the Avg. Disk Queue Length is 0.37, then the %Disk Time will be 37.
This is the reason why you can see the % Disk Time being greater than 100%, all it takes is the Avg. Disk Queue length value being greater than 1.
Windows Performance Monitor Disk Counters Explained
PhysicalDisk : % Disk Time. Much like % Processor time, this counter is a general mark of how busy the disk is. You will see many similarities between the disk and processor since they are both transaction-based services. This counter indicates a disk problem, but must be observed in conjunction with the Current Disk Queue Length counter to be truly informative. Recall also that the disk could be a bottleneck prior to the % Disk Time reaching 100%.
PhysicalDisk : Avg. Disk Queue Length. This counter is actually strongly related to the %Disk Time counter. This counter converts the %Disk Time to a decimal value and displays it. This counter will be needed in times when the disk configuration employs multiple controllers for multiple physical disks. In these cases, the overall performance of the disk I/O system, which consists of two controllers, could exceed that of an individual disk. Thus, if you were looking at the %Disk Time counter, you would only see a value of 100%, which wouldn't represent the total potential of the entire system, but only that it had reached the potential of a single disk on a single controller. The real value may be 120% which the Avg. Disk Queue Length counter would display as 1.2.
Performance Monitor Counters
So basically if you have a long queue, your disk is not capable of serving your requests and the requests must be queued up waiting for its turn. If the queue is short then pretty much any new requests will be finish almost immediately and you'll feel the PC running fast
The similar thing in Linux is the percent IO in iotop
which shows the percentage of the disk queue:
- What does "% IO" mean in iotop?
- How does iotop calculate the relative I/O activity?
- Understanding iotop
- If reducing it would in fact improve my responsiveness, how do I resolve this?
- What properties in a hard drive should I buy to speed this up? (The disk transfer rate doesn't seem to relate)
- Are certain apps going to cause a higher active time versus others?
The property that you want to know is Input/output operations per second, A.K.A IOPS. Due to its mechanical nature, HDDs are only able to serve ~50-150 IOPS. OTOH flash drives have extremely low access time, therefore they can sustain more operations in the same amount of time, i.e. higher IOPS
That's what MS uses in their ReadyBoost technology: using the USB flash drives as another pagefile. Even though they're slow to read and write, they're quick to access which makes them a perfect choice for small reads/writes. Bigger disk accesses are still redirected to the normal pagefile on HDD. That improves the responsiveness on systems with less RAM
SSDs are also flash drives, but with much better controller for even more performance and they can achieve ~50000-500000 IOPS. So you should definitely use an SSD nowadays. It's not only fast to read/write but also fast to access. After that you don't need to care about the disk active time anymore
Further reading
- In the Resource Monitor of Windows 7, what does the "disk queue length" really mean?
- Disk Activity? What does it mean?
- What does 'Highest active time' for disk activity in Windows resource monitor mean?