Why does HDD activity slow the whole System down (on Windows 7)?

If I copy a large amount of data from on drive to another (physical) drive my whole system is running slow.

I am using Windows 7 64bit version on an Intel Core 2 Duo 3 GHz.

This is the situation:

  • Very fast copying between two SATA disks.
  • Resource Monitor shows 80MB/s read, 70MB/s writes and 150MB/s total
  • The total CPU load is about 3%
  • There is plenty (>2GB) of free physical RAM left
  • All partitions have enough (>10gb, >10%) of free space left and show low fragmentation
  • Anti-Virus software is not active

This is the problem: No matter what I want to do while copying, it takes forever. Even tasks that do not need a lot of disk access (as they should work from RAM only), are extremely slow. The moment I stop the copying process, all the unfinished tasks finish at once. For example trying to open a new browser windows or explorer window will not work. If the copying is stopped 5 explorer windows popup at once.

My question is: why? What resource is exhausted, if CPU and memory are idle? And what part of my computer hardware I need to upgrade to get better behavior? Also read Psycogeek's comment for further questions in this direction.

If your answer is, that everything needs HDD Access, which is blocked by such an activity, then my question is: Is there a way to copy something on your system without rendering it unusable until its done? (which can be hours, if >500g have to be copied).


Solution 1:

If you're using multiple resources on the same hard drive, then this is normal behaviour. Hard drives are big, mechanical devices which are good at one thing - only doing one thing at a time. You can only read/write to a single sector at a time, so attempts to use the hard drive simultaneously usually result in thrashing. This isn't a side effect of anything other than the hardware working as designed.

If you're doing multiple things on a mechanical hard drive at once, you might find better results by performing these actions one at a time. If you're talking about file transfers, considering replacing the Explorer file copy handler with another program which supports transfer queuing (such as TeraCopy, which will also allow you to pause the transfer if you need fast disk access temporarily).

You can also help to mitigate these effects with the use of a solid-state drive, but it is no guarantee - it only helps because of the drastically reduced random access time. You can still have thrashing with an SSD, and an SSD still has the same limitation - it can only read or write to a single sector at a time.

If an SSD isn't the route you want to go, consider using a RAM disk, performing any data processing in-place in memory, add additional drives (not partitions) for each task, or performing I/O intensive tasks on non-OS drives.

Solution 2:

There are ways to copy, that can be throttled.

"FastCopy" can be used to replace the systems copy operations, and it can be set to throttle its own operations. The throttle can be set "globally" or set manually while it is copying. Reverse that :-) allowing fastcopy to go full speed, it can copy way faster, but can choke the system down worse, use a whole core of processor and make high use of ram to do the copy. it allows for either , but I have not tested it in Win7 yet.

"TerraCopy" a popular replacment for the systems copy , allows for pausing of the copy operations. with it you can get something else going, then un-pause to continue. Terracopy is known to be working in win7.

I Have used both the above for copying, but I avoid having it takeover all operations, each of them can have things that it cant do exactally the same as the system. so I make sure that the original system copy is still available somehow.