Connecting Tech Pros Worldwide Help | Site Map

file fragmentation project

Bart Nessux
Guest
 
Posts: n/a
#1: Jul 18 '05
Python may not be suitable for this, but I thought I'd ask the experts:

I'm doing a summer project that will attempt to measure exactly how file
fragmentation affects disk drive and OS performance. I'd like to use
Python for some of this. In particular, I'd like to write a file
fragmentor in Python that will randomly fragment x% of files on a NTFS
filesystem into y number of fragments. For example, assuming that we
start with a 100% defragmented drive, run the program to randomly
fragment 20% of the drive's files into 7 different fragments (may also
base the number of fragments on the file's size).

Anyway, would Python be acceptable for this type of project? Speed is
somewhat important, but not extremely.

All comments and advice are welcomed.

Bart
Kirk Strauser
Guest
 
Posts: n/a
#2: Jul 18 '05

re: file fragmentation project


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

At 2004-06-02T21:10:02Z, Bart Nessux <bart_nessux@hotmail.com> writes:
[color=blue]
> In particular, I'd like to write a file fragmentor in Python that will
> randomly fragment x% of files on a NTFS filesystem into y number of
> fragments.[/color]

You may or may not be able to do so, depending on how smart your exact
version of NTFS decides to be on that given day. Still, the standard
algorithm to fragment a file m bytes long into n pieces is:

1) Create n * 2 files, each (m/n) bytes long.
2) Delete every other file.
3) Write the file to be fragmented, and hope that the filesystem naively
shoves it into the empty holes.
4) Delete the remaining "pad" files.

A similar algorithm is to replace step 1 with:

1) Fill the entire drive with files (m/n) bytes long.

If the filesystem isn't smart enough to rearrange empty blocks, then that
should to the trick.
[color=blue]
> Anyway, would Python be acceptable for this type of project? Speed is
> somewhat important, but not extremely.[/color]

You bet. Filesystem speed will be the limiting factor.
- --
Kirk Strauser
The Strauser Group
Open. Solutions. Simple.
http://www.strausergroup.com/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFAvky35sRg+Y0CpvERAkm9AKCOeYJZ3aEbgcFERo8Iy5 dxAKD6aQCeMWEO
bnwx/bkTjkWo+JE/pCrMjvU=
=CmhE
-----END PGP SIGNATURE-----
Bart Nessux
Guest
 
Posts: n/a
#3: Jul 18 '05

re: file fragmentation project


Thanks for the advice Kirk, I appreciate it.

Kirk Strauser wrote:[color=blue]
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> At 2004-06-02T21:10:02Z, Bart Nessux <bart_nessux@hotmail.com> writes:
>
>[color=green]
>>In particular, I'd like to write a file fragmentor in Python that will
>>randomly fragment x% of files on a NTFS filesystem into y number of
>>fragments.[/color]
>
>
> You may or may not be able to do so, depending on how smart your exact
> version of NTFS decides to be on that given day. Still, the standard
> algorithm to fragment a file m bytes long into n pieces is:
>
> 1) Create n * 2 files, each (m/n) bytes long.
> 2) Delete every other file.
> 3) Write the file to be fragmented, and hope that the filesystem naively
> shoves it into the empty holes.
> 4) Delete the remaining "pad" files.
>
> A similar algorithm is to replace step 1 with:
>
> 1) Fill the entire drive with files (m/n) bytes long.
>
> If the filesystem isn't smart enough to rearrange empty blocks, then that
> should to the trick.
>
>[color=green]
>>Anyway, would Python be acceptable for this type of project? Speed is
>>somewhat important, but not extremely.[/color]
>
>
> You bet. Filesystem speed will be the limiting factor.
> - --
> Kirk Strauser
> The Strauser Group
> Open. Solutions. Simple.
> http://www.strausergroup.com/
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.4 (GNU/Linux)
>
> iD8DBQFAvky35sRg+Y0CpvERAkm9AKCOeYJZ3aEbgcFERo8Iy5 dxAKD6aQCeMWEO
> bnwx/bkTjkWo+JE/pCrMjvU=
> =CmhE
> -----END PGP SIGNATURE-----[/color]
JanC
Guest
 
Posts: n/a
#4: Jul 18 '05

re: file fragmentation project


Bart Nessux <bart_nessux@hotmail.com> schreef:
[color=blue]
> Python may not be suitable for this, but I thought I'd ask the experts:
>
> I'm doing a summer project that will attempt to measure exactly how file
> fragmentation affects disk drive and OS performance. I'd like to use
> Python for some of this. In particular, I'd like to write a file
> fragmentor in Python that will randomly fragment x% of files on a NTFS
> filesystem into y number of fragments. For example, assuming that we
> start with a 100% defragmented drive, run the program to randomly
> fragment 20% of the drive's files into 7 different fragments (may also
> base the number of fragments on the file's size).
>
> Anyway, would Python be acceptable for this type of project? Speed is
> somewhat important, but not extremely.
>
> All comments and advice are welcomed.[/color]

Read this: <http://www.sysinternals.com/ntw2k/info/defrag.shtml>

--
JanC

"Be strict when sending and tolerant when receiving."
RFC 1958 - Architectural Principles of the Internet - section 3.9
Closed Thread