Comment 1 for bug 243287

Revision history for this message
Szabolcs Szakacsits (szaka) wrote :

Here are some info what kind of fragmentations exist. It's important to read because fragmentation types are often misunderstood: http://en.wikipedia.org/wiki/Fragmentation_(computer)

The NTFS-3G driver tries hard not to fragment files and if you're doing a lot of concurrent writes then you will find that it's much more efficient than the Microsoft NTFS driver which fragments files usually at every 16 clusters meanwhile NTFS-3G fragments them only at around 4000 clusters. This means the elimination of 250 very costly, slow disk seeks and result much better write and read performance.

What you're seeing is external fragmentation. The NTFS-3G driver indeed places different files a bit far from each other to eliminate and optimize file fragmentation to improve the disk performance. How much does it matter? Usually technically and performance wise it's absolutely irrelevant.

If you don't believe me then please feel free to send your NTFS debug info to szaka AT ntfs-3g.org folllowing the instructions at http://www.linux-ntfs.org/doku.php?id=ntfsclone#store_only_ntfs_metadata
and I will tell you the TRUTH about your real fragmentation and what you can check yourself to be true by reading all the open source code we are using to do these REAL analyzes.

About the "system" blocks. These are always Windows deficiencies explained nicely to Windows users. There are many reasons for them. For instance files in use by Windows are unmovable. Sadly Windows caches a lot of attributes absolutely needlessly and prevents defragmenters to do their jobs. The built-in Windows defragmenter code, what all the Windows defragmenters use, apparently also has technical limitations, like not being able to relocates files having attribute list attribute. In such case they don't say "We are very sorry, this functionality is not implemented!" but instead "System block". So users won't be upset with Microsoft but try to find somebody else to blame and people always do: the defragmenter, a file system driver, etc.

What you can do is offline defragmentation, i.e. Windows should not be running during the process.

Regards, Szaka

--
NTFS-3G Lead Developer: http://ntfs-3g.org