file fragmentation project

B

Bart Nessux

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
 
K

Kirk Strauser

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

At 2004-06-02T21:10:02Z said:
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.

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.
Anyway, would Python be acceptable for this type of project? Speed is
somewhat important, but not extremely.

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+Y0CpvERAkm9AKCOeYJZ3aEbgcFERo8Iy5dxAKD6aQCeMWEO
bnwx/bkTjkWo+JE/pCrMjvU=
=CmhE
-----END PGP SIGNATURE-----
 
B

Bart Nessux

Thanks for the advice Kirk, I appreciate it.

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




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.




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+Y0CpvERAkm9AKCOeYJZ3aEbgcFERo8Iy5dxAKD6aQCeMWEO
bnwx/bkTjkWo+JE/pCrMjvU=
=CmhE
-----END PGP SIGNATURE-----
 
J

JanC

Bart Nessux said:
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.

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top