home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
misc
/
volume5
/
fsanalyze4.1
/
part01
/
Changes
next >
Wrap
Text File
|
1989-02-03
|
5KB
|
95 lines
Revision History:
Version 2.0 was a major rewrite of fsanalyze that added the following new
features:
- The ability to analyze individual files
- Display of the 10 most fragmented files in a file system
- Enhanced error checking on the file system argument
Version 2.01 contains a minor modification in which fsanalyze executes
/etc/fsstat to determine the health of the file system before analyzing
it.
Version 2.02 contains a minor modification to print out a warning message
if the file system being analyzed is currently mounted.
Version 2.03 contains a fix for a minor bug in which the size of the
volume data block size would be printed out incorrectly for large
file systems.
Version 2.04 incorporates the library function l3tol to access inode
block numbers. This is the first version that was posted to the net
a few months back.
Version 3.00 contains major revisions for porting to Xenix, System
V Release 3, and the BSD fast file system, as well as fixing many
bugs and improprieties. Specific changes include:
- Sparse files are now handled correctly. Thanks to John Limpert
(johnl@gronk.uucp) for this one!
- A bug in the way indirect blocks were factored into the
fragmentation analysis was corrected.
- Fragmentation has been re-defined as cylinder-to-cylinder seeks.
Suboptimum placement within a cylinder is handled separately as
"rotational delay". This resulted from the discovery by a number
of people (thanks esp. to Steve Paddock and Dave Olson
(olson@altos86.uucp)) that block interleaving wasn't handled
correctly. After doing some experimenting with the System V mkfs,
I came to the conclusion that its algorithm for optimal record
placement is rather crude. For example, it does not take number
of heads into account. So rather than enforce an algorithm that I
couldn't duplicate very well anyway, I split it out as a separate
statistic. This decision was confirmed when I ported fsanalyze to
BSD, since the fast file system also makes the distinction between
cylinder seeks and rotation delays.
- new command-line arguments have been added to override file system
block size, interleave factor, and number of sectors per cylinder.
Normally, these numbers are derived from information in the super-
block. However, not all file systems may store the information
in a way expected by fsanalyze. Use these flags to override.
Although all of the flags are supported for the BSD port, I doubt
if they are useful.
- Some function names and variables have been renamed to
ensure uniqueness within 7 characters. Thanks to John
Limpert for catching this.
- The IS_SPECIAL macro has been rewritten. Thanks to Larry
Cipriani and Dave Olson for catching the bugs here.
- A number of new macros have been defined to make porting to
BSD file systems easier. These are described in the new file
fsconfig.h.
- The relative cost of fragmentation is now reported as the average
distance of each seek (in number of cylinders). This is reported
as an average for the entire file system, as well as for each file.
- Some files must span more than one cylinder simply because they are
too large. Single-cylinder seeks due to size are ignored in the
fragmentation calculation.
- A makefile has been created to enhance portability. The
makefile contains instructions for configuration of fsanalyze.
Release 3.01 contains a few simple changes to enhance portability to
XENIX/286, and adds the NUMOFFEND configuration parameter, which
determines how many of the "top offender" (most fragmented) files
are reported.
Release 3.02 changes the rotation delay algorithm slightly to more closely
reflect the BSD placement algorigthm. I still don't trust the results,
since they are non-intuitive, and always too high for what I would expect
from BSD. The other major change is the addition of a "wasted space"
metric which reports unuseable space due to partial use of the last block
of each file.
Release 3.03 reports the total number of blocks used for indirection (and
thus unavailable for data). I also made more changes to the rotation
delay algorithm, providing a formula for BSD Opt_interleave that makes
more sense than previous versions. The results still seem a bit too
high, but they're more reasonable than before. This version also
includes a complete code re-organization which makes it easier to pack
into shell archives, and some other general cleanup in preparation for
posting to Usenet.
Release 3.04 contains minor changes to avoid namespace conflicts in the
FS_TYPE and OS_TYPE macros. NFS support is also disassociated with the
OS_TYPE.
Release 4.1 contains no major changes from 3.04, but resulted from
placing the code under SCCS.