Jump to content

Simultaneous defraggling of multiple drives


Chaky

Recommended Posts

I agree.

 

It is becoming common to have to defrag multiple drives, whether through USB, direct IDE (Pata), direct Sata, or other.

 

It is sooooo frustrating to have to wait for drives to run sequentially, when parallel processing would be so much faster & quicker on today's multi-GHZ computers!

 

Please do give us at least the option of simultaneous multi-drive defrag!

Link to comment
Share on other sites

  • 2 weeks later...

You won't see any speed difference in defragging 4 hard drives at the same time because your IDE/SATA controller would have to share data bandwidth equally between them making the total bandwidth allocated to one hard drive 1/4.

In other words defragging 4 hard drives in parallel with 25% data bandwidth would take about the same amount of time as defragging 4 hard drives sequentially with 100% data bandwidth.

 

Richard S.

Link to comment
Share on other sites

You won't see any speed difference in defragging 4 hard drives at the same time because your IDE/SATA controller would have to share data bandwidth equally between them making the total bandwidth allocated to one hard drive 1/4.

When I'm defragging a file, it's often painfully obvious that "gathering" the scattered sectors is rather slow (perhaps taking several seconds for even 10MB), suggesting the read/write head movements is the bottle neck, not the bandwidth to/from main memory. They appear possibly to be synchronous for data safety reasons reallocating an extent.

 

On RAID 0, 1, 10 or 0+1 setups, with multiple diskarms one would not see a performance improvement if disk access was controller bandwidth limited, but you do, the extra disk arms really do help.

 

Given many Mobo's have more than 1 SATA controller, or it's possible to use PCIexpress cards, wouldn't they see a benefit from simultaneiously defragging 2 disks? In past with PATA one did see benefits with multiple UDMA hard disks despite the read/write speed having less headroom, now only the fastest SDD's are saturating 3 GB/s SATA controllers. Disks just have never been able to sustain peak transfer rates.

 

If your disk is not able to read fragmented files to max out the controller throughput, then you would see a benefit; if the disk can max out the throughput despite the fragmentation then why bother defragging in the first place?

Link to comment
Share on other sites

I have (not using at the moment, but do have) extra IDE controller PCI card. Simultaneous defragging using embedded and extra HD controller would improve speed of total defragging, but my embedded controller handles all 5 drives (2 IDE, 2 SATA + 1 external) simultaneously with ease. Real bottleneck would be CPU. But that's not the point. My point is I want to defrag all drives at once and leave them defragging unattended. Schedule is not my preferred choice.

Link to comment
Share on other sites

You do know that you can highlight multiple drive holding CNTRL key, then choose "Defrag" or "Quick Defrag" with them processed in a queue one aftern another.

 

From your last post, it seems that might help you, though it doesn't defrag the physical drives in parallel, the quick defrag is likely to be fast enough to be done by time you return to machine.

Link to comment
Share on other sites

You won't see any speed difference in defragging 4 hard drives at the same time because your IDE/SATA controller would have to share data bandwidth equally between them making the total bandwidth allocated to one hard drive 1/4.

In other words defragging 4 hard drives in parallel with 25% data bandwidth would take about the same amount of time as defragging 4 hard drives sequentially with 100% data bandwidth.

 

Richard S.

 

What IDE/Sata controller?

 

I use USB2 connectors a lot.

Besides, if I defrag a drive on my systems, it rarely takes much mem or CPU time.

I use a combination of SATA/PATA (IDE) USB 2, USB3, internal, external drives at times.

 

Why not allow people like me to go ahead & take advantage of their Multi-CPU cores & finish faster?

Other programs do finish faster & allow multi-drive processing parallel processing.

 

Sequential takes soooooo long!

 

Parallel definitely saves time!

Link to comment
Share on other sites

  • 2 weeks later...

Why not allow people like me to go ahead & take advantage of their Multi-CPU cores & finish faster?

Other programs do finish faster & allow multi-drive processing parallel processing.

 

Sequential takes soooooo long!

 

Parallel definitely saves time!

It ought be faster even with single core, because the disks can operate in parallel unless Windows serialises things itself (modern disk transfers use DMA so interrupt driven and using little CPU time).

 

If your Defrags are taking a very long time, I suggest considering partitioning the disk which significantly reduces the amount of compaction work and allows greater use of "Move Large File to End" option, without paying a significant performance penalty.

Link to comment
Share on other sites

It ought be faster even with single core, because the disks can operate in parallel unless Windows serialises things itself (modern disk transfers use DMA so interrupt driven and using little CPU time).

 

If your Defrags are taking a very long time, I suggest considering partitioning the disk which significantly reduces the amount of compaction work and allows greater use of "Move Large File to End" option, without paying a significant performance penalty.

Well, see now, I have to defrag disks for other people at times. Which includes removing trash. Did you know that some people have computers that actually crashed because they ran OUT of free space? They never thought to clear the internet trash! I had one computer that had over 10 GB free space appear after running CCleaner to remove temp & other garbage.

 

Some people never defrag their drives either, so do you know what its like to have drives with over 45,000 to over 100,000 + fragments?

 

Anyway, so sometimes you can't always partition drives like that when it involves other people's things. Definitely, the parallel disk processor that allows simultaneous defrag of multiple drives would be much faster than serial. I have tried parallel, & that is the one thing I definitely wish Defraggler had. It is MUCH faster on my machine that way! Don't get me wrong, serial is ok, but it simply cannot touch the speed of parallel (Multiple drives defragged at the same time, not in sequence).

 

I used both ways (with a different defragger) & parallel blows serial out of the water.

 

No question which one wins. Parallel support, please!

 

Thanks!

Link to comment
Share on other sites

Parallel support is needed. I have a half-dozen disks in one box and four in another. It takes longer and longer to defrag drives sequentially, while the time to completion increases only minimally with parallel operation when the number of drives is increased.

 

I'm already looking for another app that can do parallel defrag.

 

PS. Don't forget develpers! When it's time to add this feature, MAKE SURE TO CHECK THAT MULTIPLE PARTITIONS ON THE SAME DRIVE CANNOT BE SIMULTANEOUSLY SELECTED IN THE GUI!. Otherwise one or more drives will be forced to do two or more move operations simultaneously, drastically decreasing performance and wearing out the drive.

 

The command-line version will have to handle that situation a bit differently.

Link to comment
Share on other sites

PS. Don't forget develpers! When it's time to add this feature, MAKE SURE TO CHECK THAT MULTIPLE PARTITIONS ON THE SAME DRIVE CANNOT BE SIMULTANEOUSLY SELECTED IN THE GUI!. Otherwise one or more drives will be forced to do two or more move operations simultaneously, drastically decreasing performance and wearing out the drive.

Ideally parallel defrag would support 1 queue per physical disk, with drive letters queued for defrag getting assigned to appropriate disks queue, then the user doesn't have to think about serial v parallel but simply choose which drives to defrag.

Link to comment
Share on other sites

Some people never defrag their drives either, so do you know what its like to have drives with over 45,000 to over 100,000 + fragments?

Windows since Vista has a scheduled defrag that the lazy & incompentent would have to find to turn off; so as people move off XP as it End of Life's you'll find less and less benefit to manually defragging (fewer fragments even if defraggler reports high frag %).

 

I agree parallel defrag is a benefit and should help even on a single core system, as defrag speed ought for much of the run be mainly dependant on number of disk arms, rather than CPU time.

Link to comment
Share on other sites

Windows since Vista has a scheduled defrag that the lazy & incompentent would have to find to turn off; so as people move off XP as it End of Life's you'll find less and less benefit to manually defragging (fewer fragments even if defraggler reports high frag %).

 

I agree parallel defrag is a benefit and should help even on a single core system, as defrag speed ought for much of the run be mainly dependant on number of disk arms, rather than CPU time.

Rob, now, the thing with Vista/7 is that they took so long to get here, that there are things that will not work with them, even in compat mode. Have someone who had a ribbon printer, & the only solution that worked was installing XP.

 

I am in the process of trying to simplifying 7 with tabbed explorer along with other quirky behavior. Don't like the start menu at all. XP was much better at finding all the files you needed. But, Classic Shell is helping a lot with that. Along with Locate 32.

 

Just wish MS weren't so flaky when developing apps that are so totally incompat with each other!

Media player is a big step backwards from the one in XP WMP11. Media player in 7 doesn't allow EQ settings to stick, but always reverts to default when you re-open it. Additionally, way too hard to find bass/treble controls like in XP.

 

I am trying to be patient here, but sometimes I get angry, lol!

 

Anywho, yes, yes, yes, parallel defrag please! I neeeeeeed it! I agree also that if you have multiple partitions on a drive, it should be treated as a single drive & processed in sequence!

Link to comment
Share on other sites

  • 4 years later...

I have seen excuse after excuse from Piriform's developer(s) why they cannot or should not enable / code Defraggler to execute multiple simulataneous deframentations on separate drives.

 

These excuses have included (not all on this thread):

 

1. Multithreading Defraggler would not result in a performance improvement since quote 'the bottleneck is the I/O (ie. physical drives):

 

1A. Answer for Single Drive with Multiple Selected Partitions: As other multidrive-capable defragmenters do, Defraggler could check the disk source of all the partitions selected by the user for defragmenting and then defragment them one-by-one-per drive but in parallel to other defragmentations on other drives.

 

2. Simultaneous defragmentation of multiple drives would not result in significant/any increase in performance due to Controller I/O Limitations:

 

2A: Answer for Single IDE Controller: All modern IDE controllers use Busmastering UDMA which provides 100 / 133 MB/s transfer rate per cable which is far faster than two physical hard drives [Master & Slave] can transfer data on that single cable with both drives at maximum linear sequential read speed - unless they are the now-rare IDE-SSDs - which since they are SSDs don't require defragmentation anyway.

 

2B: Answer for Multiple IDE Controllers: The only limitation on I/O in this case is the PCI/PCIe bus which is fully capable of carrying all data from parallel reads on multiple drives with tons of bandwidth to spare.

 

2C: Answer for a Single SATA Controller: Each SATA port is entirely separate with no cross-contention and provides 150/300/600 MB/s per port which is far more datarate than any mechanical drive can read at and faster than many SSDs's datarates. When the data gets to the controller chip it also travels in parallel paths or is merged into higher-clocked sequential lanes for transfer to PCI/PCIx/PCIe or via proprietary Southbridge-CPU links that many Intel boards now use. These links provide far more than enough datarate to handle parallel operations on multiple drives and indeed that is their exact purpose.

 

2D: Answer for Multiple SATA Controllers: Same answer as 2B.

 

Bus Data Rates:

 

PCI 32-bit x 33MHz: 133 MB/s (Common)

PCI 32-bit x 66MHz: 266 MB/s (Uncommon)

PCI 63-bit x 33MHz: 266 MB/s (Uncommon)

PCI 64-bit x 66MHz: 533 MB/s (Uncommon)

 

PCI-X: 1064MB/s (Uncommon)

PCI-X 2.0-1: 2132MB/s (Uncommon)

PCI-X 2.0-2: 4266MB/s (Uncommon)

 

PCIe v.1: 250 MB/s PER SEPARATE LINK

PCIe v.2: 500 MB/s PER SEPARATE LINK

PCIe v.3: 985 MB/s PER SEPARATE LINK

PCIe v.4: 1969 MB/s PER SEPARATE LINK

 

Parallel simultaneous defragmentation of multiple drives equals a massive speed improvement that exceeds by as many times as drive-independent selected partitions the equivalent one-at-a-time speed. A velocity improvement that increases in linear proportion to the number of drive-independent partitions selected for defragmentation.

 

I can offer an explanation why Defraggler's developer(s) have so far resisted the upgrade of this application to MSDD (Multiple Simultaneous Drive Defragmentation). It's due to Defraggler's legacy code which was written to defragment only one drive at a time.

 

Despite all the versions issued since the first, that engine has never been fundamentally altered. Certainly bugs were removed in newer versions. Definitely new capabilities were added to allow the defragmentation of USB drives for example. However, even the newest version of this software still uses the same single engine under the hood.

 

There is a way users can force Defraggler to defragment multiple drives simultaneously.

 

Notice that if you try to run two copies of Defraggler in an attempt to do parallel defragmentation, the second copy of Defraggler pops a window with the text: "Defraggler is already running.".

 

When Defraggler starts up it checks system memory space for another copy of itself and if it finds this copy it pops the dialog and clicking this dialog's OK button sends the second executable to self-termination.

 

Duplicating the Defraggler.exe executable then renaming it doesn't stop the detection, thus Defraggler is checking the Process Name in memory, not the process's image file on-drive.

 

Using Resource Hacker to change the renamed executable's string identifiers does not prevent the code from identifying a duplicate upon execution.

 

Disassembly will allow a code-trace to find both the method at tree-breakpoint where the check is performed. Then the check can be disabled thus allowing multiple copies of Defraggler to run in memory simultaneously.

 

This will be less work than further lobbying Defraggler's unresponsive developers to rewrite the obviously dated, shortsightedly single-engined code.

Link to comment
Share on other sites

  • Moderators

Have you done the code dis-assembler already?

Pretty sure Piriform, and for that matter, all software houses I know of, expressly forbid such activity.

 

Unless you have insider knowledge of the code at Piriform, all your assumptions on what Defraggler does under the hood are just that, assumptions and the one advice you do give is illegal.

 

But maybe I've missed the point of your

Backup now & backup often.
It's your digital life - protect it with a backup.
Three things are certain; Birth, Death and loss of data. You control the last.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.