-
Notifications
You must be signed in to change notification settings - Fork 4
FAQ_HDD ultimate performance guide
It has been years, and I'm sure no other people have summarized how one can make the HDD go faster.
For HDD, it's always good to get "less random read". There is no magic, but simply:
- Enable file system compress to reduce total read amount
- Defrag file system fragment to make file more continuously
However, misuse the tools do can bring bad overall effect to make one to questioning its role.
To go fast, less read is a good idea, so NTFS compress become a common opinion.
That is, in single user PC, pay CPU performance to exchange disk performance.
However, due to the actual implementation, NTFS compress not perform good by default,
and brings a lot of misuse, for example, the terrible idea to compress the entire system drive.
To use a tool good, first to know the tool.
NTFS compress use Lempel-Ziv
by default read/write compress.
Recently, XPRESS4K (fastest and default value)
, XPRESS8K
, XPRESS16K
and LZX (most compact)
were introduced
for "CompactOs", the new fancy stuff, but these new algorithms not support in-place modification.
That means if a file is modified, you need to run compact command again on that file,
or it remains uncompressed.
Most of the software today are updated frequently,
so unless the new stuff adds in-place modification support,
default Lempel-Ziv
is the only choice.
This algorithm split file to 4K block to do compression,
during the process, a whole file is heavy fragmented.
And NTFS compress won't clean the mess, if you use the file directly,
it can be a nightmare for your HDD to work.
That is why people clarify NTFS compression go slower instead of fast.
See defrag section to know how to fix this.
Before defrag, a newly compressed file continuously read is limited to about 12~25 MB/Sec.
After defrag, read increased to 175 MB/Sec, but write still limited.
Ultradefrag report the file is 24030 fragmented.
If you have a ram disk image, or some file modifies commonly,
no compress on the file is faster.
The file never going to modify is good to compress like Qt and boost library.
To measure you are actually benefit from compression,
do compress and defrag, clear the standby ram and do test,
can either copy to another disk, or open software.
Look at the task manager, if disk utilize go to 100%, you are good to go.
If disk utilize not go to 100%, then it's the disk to wait CPU,
in this case, your CPU is weak, do not enable compression.
If you go with new NTFS compress, LZX may fit most situation.
On E3 1231 V3, LZX read 318 MB/s on SSD, far faster than any HDD random read.
Also avoid "decompress twice", for example,
if file is already compressed by any algorithm, do not enable LZX.
Most game resource is already well packaged to improve speed,
so there is no need to bother with.
For more information about new compress algorithm, see:
https://github.com/IridiumIO/CompactGUI/wiki/Important-Information
You may also find the software is useful:
https://github.com/IridiumIO/CompactGUI
Good modern defrag algorithm will move files under same folder along together.
The means files not just more continuously, but also more "neighbor".
Assume one software install to one folder, when HDD working on the software,
after reading a file at "home", 2nd file no need to grab from two miles away,
then back to home to grab the 3rd one.
After defrag, disk read/write head only need to work in a limited space, so milliseconds were saved.
A typical defrag process is expensive, either time and best to pause doing things.
Lucky, you can find software Diskeeper, which is:
- Defrag only few files a time
- Defrag from time to time
- Only defrag when system is idle
The one not designed to completely remove fragment, you also need UltraDefrag 7,
first, use Diskeeper "Action\Perform manual operation" to defrag,
then use UltraDefrag "Defragment only (F6)" to clean up the rest of the fragments.
The prefetch software has a timer, on defragmented, no compression drive,
Firefox takes about 50 second to load, after compression and DEFRAG,
timer says Idle, Time: 28.27 Sec
.