[comp.unix.sysv386] File system performance

rcd@ico.isc.com (Dick Dunn) (11/01/90)

larry@nstar.uucp (Larry Snyder) writes:

> I am wondering just how fast the FFS is as compared against other fast
> file systems --

Not too surprisingly, we've looked at that a bit.  One answer stands out
like a sore thumb:  If you're running V.4, *don't* use the old-style s5
file system unless you really need it.  The BSD-style file system is a far
better performer.

Terminology:  The main two file system types in V.4 are called "s5" and
"ufs"--these are the old-style System V (V 7 style, if you will:-), and the
BSD-style, respectively.  (There are others like the boot file system,
proc, etc.  They're special-purpose.)

Looking at performance of V.4 ufs vs s5, ufs wins hands-down.  For example,
Tim Bray's "bonnie" takes about 50% longer, overall, on s5.  There's a lot
more CPU time burned in s5.  It's fair to say that the V.4 s5 file system
has the same performance as a stock V.3 file system.

Comparing V.4 ufs to ISC's FFS (our V.3.2 "fast file system") is a much
more interesting exercise.  They're really pretty close.  This isn't
surprising, since they both get their major performance gains from two
factors:  intelligent allocation and dealing in larger chunks.  The
interesting part is that FFS performs better on a smaller machine; ufs
pulls ahead of it a bit on a machine with lots of memory.  The reason, it
turns out, is not really related to the file system implementation.
Rather, V.3 has a statically-allocated buffer cache, while V.4 allocates
memory dynamically.  On a V.4 system, if the memory load due to program
space is low, the buffer cache will grab more memory...so if you've got
oodles of memory to start with, you can get a pretty substantial cache
going.  On V.3, you can allocate a huge cache, of course, but it stays
allocated; if the machine load shifts away from I/O and toward large
processes, you're wasting memory.  I suspect (but haven't really con-
firmed) that the reason the V.3.2 FFS does better on non-huge machines is
just that the code is cleaner and spends a little less time fiddling with
special cases that turn out not to matter.  I suspect that cylinder groups
(present in ufs but not FFS) don't help much; they may actually be the
hindrance that makes the performance difference.
-- 
Dick Dunn     rcd@ico.isc.com -or- ico!rcd       Boulder, CO   (303)449-2870
   ...but Meatball doesn't work that way!

larry@nstar.uucp (Larry Snyder) (11/01/90)

rcd@ico.isc.com (Dick Dunn) writes:

>Not too surprisingly, we've looked at that a bit.  One answer stands out
>like a sore thumb:  If you're running V.4, *don't* use the old-style s5
>file system unless you really need it.  The BSD-style file system is a far
>better performer.

Yes - but 8K blocks - just think what that would do to your partition
with all the news articles --

-- 
       Larry Snyder, Northern Star Communications, Notre Dame, IN USA 
 {larry@nstar, uunet!sco!romed!nstar!larry, nstar%larry@iuvax.cs.indiana.edu}
                     backbone usenet newsfeeds available
         Public Access Unix Site (219) 289-0282 (5 high speed lines)

larry@nstar.uucp (Larry Snyder) (11/01/90)

rcd@ico.isc.com (Dick Dunn) writes:

>just that the code is cleaner and spends a little less time fiddling with
>special cases that turn out not to matter.  I suspect that cylinder groups
>(present in ufs but not FFS) don't help much; they may actually be the
>hindrance that makes the performance difference.

The Intel release 4 manuals go to great details to explain the gap/cylinder
paramters and their "sample setting" whening making filesystems - but their
examples are basically for 3b2 drives (all the way up to a big 72 meg drive).

-- 
       Larry Snyder, Northern Star Communications, Notre Dame, IN USA 
 {larry@nstar, uunet!sco!romed!nstar!larry, nstar%larry@iuvax.cs.indiana.edu}
                     backbone usenet newsfeeds available
         Public Access Unix Site (219) 289-0282 (5 high speed lines)

arnold@audiofax.com (Arnold Robbins) (11/02/90)

rcd@ico.isc.com (Dick Dunn) writes:
>  The BSD-style file system is a far better performer.

In article <1990Nov01.114726.14348@nstar.uucp> larry@nstar.uucp (Larry Snyder) writes:
>Yes - but 8K blocks - just think what that would do to your partition
>with all the news articles --

The BSD file system has both blocks and fragments.  On an 8K file system
the fragment size will be 1K; files that are less than that in size only
take up a single 1K fragment.  This is even more efficient than the 2K
file system which uses 2K blocks.  So, go right ahead and put your news
partition on BSD file system'ed partition.

I have to testify as to the speed of the BSD filesystem.  When we switched
to it with ESIX rev D our systems sped up very noticeably!
-- 
Arnold Robbins				AudioFAX, Inc. | Laundry increases
2000 Powers Ferry Road, #200 / Marietta, GA. 30067     | exponentially in the
INTERNET: arnold@audiofax.com Phone:   +1 404 933 7612 | number of children.
UUCP:	  emory!audfax!arnold Fax-box: +1 404 618 4581 |   -- Miriam Robbins

cpcahil@virtech.uucp (Conor P. Cahill) (11/02/90)

In article <1990Nov01.114726.14348@nstar.uucp> larry@nstar.uucp (Larry Snyder) writes:
>Yes - but 8K blocks - just think what that would do to your partition
>with all the news articles --

Read a little more on the structure of the BSD file system.  While the major
allocation segment is 8K, the BSD file system has a fragment block for
the last segment of a file.  The size of this block is also configurable,
but it is usually on the order of 1K.

So a file system with thousands of small files will eat up thousands
of 1K blocks (just like in the 1K system V file system).
>
>-- 
>       Larry Snyder, Northern Star Communications, Notre Dame, IN USA 
> {larry@nstar, uunet!sco!romed!nstar!larry, nstar%larry@iuvax.cs.indiana.edu}
>                     backbone usenet newsfeeds available
>         Public Access Unix Site (219) 289-0282 (5 high speed lines)


-- 
Conor P. Cahill            (703)430-9247        Virtual Technologies, Inc.,
uunet!virtech!cpcahil                           46030 Manekin Plaza, Suite 160
                                                Sterling, VA 22170 

larry@nstar.uucp (Larry Snyder) (11/02/90)

arnold@audiofax.com (Arnold Robbins) writes:

>I have to testify as to the speed of the BSD filesystem.  When we switched
>to it with ESIX rev D our systems sped up very noticeably!

How long (since what release) has ESIX supported the BSD file system?

-- 
       Larry Snyder, Northern Star Communications, Notre Dame, IN USA 
 {larry@nstar, uunet!sco!romed!nstar!larry, nstar%larry@iuvax.cs.indiana.edu}
                     backbone usenet newsfeeds available
         Public Access Unix Site (219) 289-0282 (5 high speed lines)

tim@delluk.uucp (Tim Wright) (11/03/90)

In <1990Nov01.114726.14348@nstar.uucp> larry@nstar.uucp (Larry Snyder) writes:

>rcd@ico.isc.com (Dick Dunn) writes:

>>Not too surprisingly, we've looked at that a bit.  One answer stands out
>>like a sore thumb:  If you're running V.4, *don't* use the old-style s5
>>file system unless you really need it.  The BSD-style file system is a far
>>better performer.

>Yes - but 8K blocks - just think what that would do to your partition
>with all the news articles --

Can you say 1/2K frags ? I knew you could :-) :-)
--
Tim Wright, Dell Computer Corp. (UK) | Email address
Dell Computer Corp. (UK), Bracknell  | Domain: tim@dell.co.uk
Tel: +44-344-860456                  | Uucp: ...!ukc!delluk!tim
"What's the problem? You've got an IQ of six thousand, haven't you?"

pcg@cs.aber.ac.uk (Piercarlo Grandi) (11/03/90)

On 1 Nov 90 11:47:26 GMT, larry@nstar.uucp (Larry Snyder) said:

larry> rcd@ico.isc.com (Dick Dunn) writes:

rcd> Not too surprisingly, we've looked at that a bit.  One answer stands out
rcd> like a sore thumb:  If you're running V.4, *don't* use the old-style s5
rcd> file system unless you really need it.  The BSD-style file system is a far
rcd> better performer.

larry> Yes - but 8K blocks - just think what that would do to your partition
larry> with all the news articles --

What about fragments? They cure the wasted space problem. Naturally it
would have been better to just do allocations of runs of small blocks,
like the ISC FFS does, but the fragment approach works almost equally
well, excep that it is much more complex.

There is some recent paper in some conference proceedings on how to make
even faster file systems.
--
Piercarlo "Peter" Grandi           | ARPA: pcg%uk.ac.aber.cs@nsfnet-relay.ac.uk
Dept of CS, UCW Aberystwyth        | UUCP: ...!mcsun!ukc!aber-cs!pcg
Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk

pcg@cs.aber.ac.uk (Piercarlo Grandi) (11/03/90)

Note that foloowups have been redirected to comp.unix.internals, because
this is a discussion not limited to the 386 case.

On 1 Nov 90 11:51:48 GMT, larry@nstar.uucp (Larry Snyder) said:

larry> rcd@ico.isc.com (Dick Dunn) writes:

rcd> just that the code is cleaner and spends a little less time
rcd> fiddling with special cases that turn out not to matter.  I suspect
rcd> that cylinder groups (present in ufs but not FFS) don't help much;
rcd> they may actually be the hindrance that makes the performance
rcd> difference.

Well, actually the purpose of cylinder groups is to spread out the
ilist, and to put related inodes together and nearer the file blocks
rooted on them, not to improve IO rates for files; it does not help
bandwidth or file-based applications, but it does help interactive
performance, i.e. applications that are directory based, and open lots
of files with little IO (e.g. 'file *') or of inodes (e.g. 'ls -F').

The real problem with the BSD FFS is that the block/fragment scheme is
equivalent to allocating runs of blocks and doing synchronous 8 block
read ahead all the time, only it limits the length of the runs to 8, and
forces all reads, even random reads, to do 8 blocks of synchronous read
ahead. The authors simply did not understand the design principles of
the Unix V7 filesystem, and its author's well motivated reluctance to
souble the block size to 1024 bytes, and their use of asynchronous read
ahead instead.

Another win would have been to put the first page of the file just after
the inode.

larry> The Intel release 4 manuals go to great details to explain the
larry> gap/cylinder paramters and their "sample setting" whening making
larry> filesystems - but their examples are basically for 3b2 drives
larry> (all the way up to a big 72 meg drive).

Note that the gap should be dependent on the *CPU* and ther kernel
speed, not on the drive (for a given rotational speed). The filesystem
gap is there to compensate for interrupt and processing time.
--
Piercarlo "Peter" Grandi           | ARPA: pcg%uk.ac.aber.cs@nsfnet-relay.ac.uk
Dept of CS, UCW Aberystwyth        | UUCP: ...!mcsun!ukc!aber-cs!pcg
Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk

bill@unixland.uucp (Bill Heiser) (11/03/90)

In article <1990Nov02.124206.5434@nstar.uucp> larry@nstar.uucp (Larry Snyder) writes:
>
>How long (since what release) has ESIX supported the BSD file system?

Rev D of Esix has what they call the FFS (Fast File System).  I don't
know if that is a BSD file system or not...


-- 
home:	...!{uunet,bloom-beacon,esegue}!world!unixland!bill
	bill@unixland.uucp,  bill%unixland.uucp@world.std.com
	Public Access Unix  - Esix SYSVR3 - (508) 655-3848
other:	heiser@world.std.com   Public Access Unix (617) 739-9753

dawes@suphys.physics.su.OZ.AU (David Dawes) (11/03/90)

From article <294@audfax.audiofax.com>, by arnold@audiofax.com (Arnold Robbins):
> rcd@ico.isc.com (Dick Dunn) writes:
>>  The BSD-style file system is a far better performer.
> 
> In article <1990Nov01.114726.14348@nstar.uucp> larry@nstar.uucp (Larry Snyder) writes:
>>Yes - but 8K blocks - just think what that would do to your partition
>>with all the news articles --
> 
> The BSD file system has both blocks and fragments.  On an 8K file system
> the fragment size will be 1K; files that are less than that in size only
> take up a single 1K fragment.  This is even more efficient than the 2K
> file system which uses 2K blocks.  So, go right ahead and put your news
> partition on BSD file system'ed partition.
> 
> I have to testify as to the speed of the BSD filesystem.  When we switched
> to it with ESIX rev D our systems sped up very noticeably!

I too am using ESIX rev D with ffs.  One of my file systems became heavily
fragmented, and got to the point where there were 0 free blocks, and
5000 free frags.  df reported 10000 blocks free, but attempting to write
to the file system resulted in "Disk full" errors.  This meant that I
had an unusable 5MB on a 65MB file system. (BTW, there were plenty of free
inodes.)

Is this how FFS is supposed to work, or is there a problem with the ESIX
implementation?

David
--
------------------------------------------------------------------------------
 David Dawes (dawes@suphys.physics.su.oz.au) DoD#210   | Phone: +612 692 2639
 School of Physics, University of Sydney, Australia    | Fax:   +612 660 2903
------------------------------------------------------------------------------

cpcahil@virtech.uucp (Conor P. Cahill) (11/04/90)

In article <1990Nov3.124110.2155@metro.ucc.su.OZ.AU> dawes@suphys.physics.su.OZ.AU (David Dawes) writes:
>I too am using ESIX rev D with ffs.  One of my file systems became heavily
>fragmented, and got to the point where there were 0 free blocks, and
>5000 free frags.  df reported 10000 blocks free, but attempting to write
>to the file system resulted in "Disk full" errors.  This meant that I
>had an unusable 5MB on a 65MB file system. (BTW, there were plenty of free
>inodes.)

If the ESIX ffs is a BSD file system, the file system code will only
allow the super user to write to the last 10% of the partition.  This 
is because the performance of the system is supposed to degrade substantially
when you go over 90% utilization.


-- 
Conor P. Cahill            (703)430-9247        Virtual Technologies, Inc.,
uunet!virtech!cpcahil                           46030 Manekin Plaza, Suite 160
                                                Sterling, VA 22170 

rmtodd@servalan.uucp (Richard Todd) (11/04/90)

dawes@suphys.physics.su.OZ.AU (David Dawes) writes:
>I too am using ESIX rev D with ffs.  One of my file systems became heavily
>fragmented, and got to the point where there were 0 free blocks, and
>5000 free frags.  df reported 10000 blocks free, but attempting to write
>to the file system resulted in "Disk full" errors.  This meant that I
>had an unusable 5MB on a 65MB file system. (BTW, there were plenty of free
>inodes.)

>Is this how FFS is supposed to work, or is there a problem with the ESIX
>implementation?

  Well, that's how FFS works on other machines (I've hit it on Apple Unix
2.0, which includes Berkeley FFS).  Hitting the no-free-blocks limit when
you've got 5M free in fragments is a little unusual; I was hitting the
limit with only ~250K of fragments free on a 282MB filesystem, and on the
(frequent) occasions when the local campus BSD machine fills a partition it
gets down to fairly small values of free-fragment-space (again, in the 
neighborhood of a couple hundred K on ~200MB filesystems).  Evidently you
managed to stumble on a pathological worst-case....
--
Richard Todd	rmtodd@uokmax.ecn.uoknor.edu  rmtodd@chinet.chi.il.us
	rmtodd@servalan.uucp
7 days until the season premiere of WISEGUY! 

john@jwt.UUCP (John Temples) (11/05/90)

In article <1990Nov03.193936.665@virtech.uucp> cpcahil@virtech.UUCP (Conor P. Cahill) writes:
>If the ESIX ffs is a BSD file system, the file system code will only
>allow the super user to write to the last 10% of the partition.

Yes, this is how the ESIX FFS works.  The 10% figure is a default
which can be configured when you make the file system.
-- 
John W. Temples -- john@jwt.UUCP (uunet!jwt!john)

dawes@suphys.physics.su.OZ.AU (David Dawes) (11/05/90)

In article <2239@jwt.UUCP> john@jwt.UUCP (John Temples) writes:
>In article <1990Nov03.193936.665@virtech.uucp> cpcahil@virtech.UUCP (Conor P. Cahill) writes:
>>If the ESIX ffs is a BSD file system, the file system code will only
>>allow the super user to write to the last 10% of the partition.
>
>Yes, this is how the ESIX FFS works.  The 10% figure is a default
>which can be configured when you make the file system.

I have found that ESIX FFS with less than 10% free space can still be written
to by a non-super user.  ffsdump shows the minfree parameter, but it doesn't
seem to be doing anything.  Also all BSD df's I've seen show disk usage as a
percentage of (total space - min free space) -- so the max usage is 110% for
the default minfree.  Esix df doesn't work like this.

David
--
------------------------------------------------------------------------------
 David Dawes (dawes@suphys.physics.su.oz.au) DoD#210   | Phone: +612 692 2639
 School of Physics, University of Sydney, Australia    | Fax:   +612 660 2903
------------------------------------------------------------------------------

richard@pegasus.com (Richard Foulk) (11/05/90)

>>How long (since what release) has ESIX supported the BSD file system?
>
>Rev D of Esix has what they call the FFS (Fast File System).  I don't
>know if that is a BSD file system or not...
>

It has long file names doesn't it?


-- 
Richard Foulk		richard@pegasus.com

bill@unixland.uucp (Bill Heiser) (11/06/90)

In article <1990Nov3.222929.2164@servalan.uucp> rmtodd@servalan.uucp (Richard Todd) writes:
>
>  Well, that's how FFS works on other machines (I've hit it on Apple Unix
>2.0, which includes Berkeley FFS).  Hitting the no-free-blocks limit when
>you've got 5M free in fragments is a little unusual; I was hitting the

Is there something that can be done "on-line" to de-fragment Unix partitions?
Or is the best bet to just backup and restore the partition using something
other than 'dump'?  My /usr partition is at 6% fragmentation (according to
fsck) -- The system has only been up for a couple of months, and I've been
getting usenet news for a few weeks.  That seems like a lot for such a short
time.  I'm using the Esix ffs.  (I haven't done anything with the Esix
"2K file system utility" yet -- I'm not sure what is on that disk-- been too
busy to experiment...)



-- 
home:	...!{uunet,bloom-beacon,esegue}!world!unixland!bill
	bill@unixland.uucp,  bill%unixland.uucp@world.std.com
	Public Access Unix  - Esix SYSVR3 - (508) 655-3848
other:	heiser@world.std.com   Public Access Unix (617) 739-9753

bill@unixland.uucp (Bill Heiser) (11/06/90)

In article <1990Nov5.154056.4737@pegasus.com> richard@pegasus.com (Richard Foulk) writes:
>>Rev D of Esix has what they call the FFS (Fast File System).  I don't
>>know if that is a BSD file system or not...
>>
>It has long file names doesn't it?
>

No, Esix has a 14 character limit on filename length.


-- 
home:	...!{uunet,bloom-beacon,esegue}!world!unixland!bill
	bill@unixland.uucp,  bill%unixland.uucp@world.std.com
	Public Access Unix  - Esix SYSVR3 - (508) 655-3848
other:	heiser@world.std.com   Public Access Unix (617) 739-9753

john@karnak.cactus.org (John B. Meaders Jr.) (11/06/90)

In article <1990Nov5.154056.4737@pegasus.com> richard@pegasus.com (Richard Foulk) writes:
>>
>>Rev D of Esix has what they call the FFS (Fast File System).  I don't
>>know if that is a BSD file system or not...
>>
>
>It has long file names doesn't it?

No; for compatibility.
-- 
2LT John B. Meaders, Jr.  510 Manchester Ct., Hopewell, VA  23860
Voice:  804-458-2983  Net: john@karnak.cactus.org or john@karnak.sigma.com
Uucp: ...!{sequoia,letni,ditka}!karnak!john        "Cowabunga dude" - TMNT
Disclaimer:  These are my opinions, not those of DA or DOD.

larry@nstar.uucp (Larry Snyder) (11/06/90)

bill@unixland.uucp (Bill Heiser) writes:

>Is there something that can be done "on-line" to de-fragment Unix partitions?
>Or is the best bet to just backup and restore the partition using something

karl@ddsw1 put together a diskpack package a year or so ago - I don't
know if it runs under ESIX - or if it works on the FFS - but in any
case, it's available on nstar.

-- 
       Larry Snyder, Northern Star Communications, Notre Dame, IN USA 
 {larry@nstar, uunet!sco!romed!nstar!larry, nstar%larry@iuvax.cs.indiana.edu}
                     backbone usenet newsfeeds available
         Public Access Unix Site (219) 289-0282 (5 high speed lines)

john@jwt.UUCP (John Temples) (11/07/90)

In article <1990Nov5.154056.4737@pegasus.com> richard@pegasus.com (Richard Foulk) writes:

>It [ESIX FFS] has long file names doesn't it?

No, it doesn't.
-- 
John W. Temples -- john@jwt.UUCP (uunet!jwt!john)

larry@nstar.uucp (Larry Snyder) (11/07/90)

bill@unixland.uucp (Bill Heiser) writes:

>No, Esix has a 14 character limit on filename length.

that's a real shame - I believe that Intel release 4 with
the FFS supports long file names - but the manuals don't
mention how long is long...

-- 
       Larry Snyder, Northern Star Communications, Notre Dame, IN USA 
 {larry@nstar, {uunet|backbone}!nstar!larry, larry%nstar@iuvax.cs.indiana.edu}
                     backbone usenet newsfeeds available
         Public Access Unix Site (219) 289-0282 (5 high speed lines)

bill@bilver.UUCP (Bill Vermillion) (11/08/90)

In article <1990Nov3.124110.2155@metro.ucc.su.OZ.AU> dawes@suphys.physics.su.OZ.AU (David Dawes) writes:
>From article <294@audfax.audiofax.com>, by arnold@audiofax.com (Arnold Robbins):
>> rcd@ico.isc.com (Dick Dunn) writes:
>>>  The BSD-style file system is a far better performer.
>> 
>> In article <1990Nov01.114726.14348@nstar.uucp> larry@nstar.uucp (Larry Snyder) writes:
>>>Yes - but 8K blocks - just think what that would do to your partition
>>>with all the news articles --
   
>> I have to testify as to the speed of the BSD filesystem.  When we switched
>> to it with ESIX rev D our systems sped up very noticeably!
 

>I too am using ESIX rev D with ffs.  One of my file systems became heavily
>fragmented, and got to the point where there were 0 free blocks, and
>5000 free frags.  df reported 10000 blocks free, but attempting to write
>to the file system resulted in "Disk full" errors.  This meant that I
>had an unusable 5MB on a 65MB file system. (BTW, there were plenty of free
>inodes.)
 
>Is this how FFS is supposed to work, or is there a problem with the ESIX
>implementation?

That's about the right amount.  Check your manual in the newfs entry or the
ffsmkfs entry, and you will see that 10% of the disk is reserved and can
NOT be used by anyone except the super user.  That disk is full 0%, as far
as a regular user is concerned.

I just remade a fs last night, and found one other interesting thing.
You can set how many inodes there are in the system, but the -i flag
doesn't work, but changing the number of cylinder groups does.

I made a fs with 95000+ inodes, and got a warning installing it saying it
may (it did not say would, just may) cause a system PANIC.

So I decided to take a look.  I had cpio'ed the entire news hierarchy onto
another partition to be able to add more inodes (I took default the first
time and didn't have enough).

When I cpio'ed them back, many attempts to put files in their proper place
came back with "not a directory" type error messages.  Sometimes
directories would be created, other times files with directory names would
be created and then subsequent writes went awry.

I remade the fs with just about 65000 inodes using a smaller numbers of
cylinders per cylinder group, and it came out to about 6.5 megs per c/g,
and appears to be working just fine.

There is a description of the file system in the manual.  Talking with a
friend of mine about this problem last night, it appears the Esix ffs is
only partially BSD, because he said I should have no inode limits on a pure
BSD file system.   Other than that the ffs system seems to be a good
performer.


-- 
Bill Vermillion - UUCP: uunet!tarpit!bilver!bill
                      : bill@bilver.UUCP

pcg@cs.aber.ac.uk (Piercarlo Grandi) (11/08/90)

On 5 Nov 90 22:27:33 GMT, bill@unixland.uucp (Bill Heiser) said:

bill> In article <1990Nov3.222929.2164@servalan.uucp> rmtodd@servalan.uucp (Richard Todd) writes:

rmtodd> Well, that's how FFS works on other machines (I've hit it on
rmtodd> Apple Unix 2.0, which includes Berkeley FFS).  Hitting the
rmtodd> no-free-blocks limit when you've got 5M free in fragments is a
rmtodd> little unusual;

Very unusual.

bill> Is there something that can be done "on-line" to de-fragment Unix
bill> partitions?

You are confusing the BSd with the V7 filesystem designs. The BSD
filesystem does not get fragmented. You cannot unfragment it.

bill> Or is the best bet to just backup and restore the partition using
bill> something other than 'dump'?

This will not change anything. The BSD filesystem has several block
sizes; a file is made up of 4/8KB blocks, up to the last one, which is
0.5/1/2/3/4/5/6/7KB long (a fragment) if the filesize is not a multiple
of 4/8KB. If a fragment of the right size cannot be found, a larger one
will be split. Eventually you can get to the situation where all full
4/8KB blocks have been split, and so you cannot write any new file large
than that.

A partial solution is to use as the large block size the smallest that
you can define, e.g. 4KB instead of 8KB, which is in general advisable
anyhow on a 386. So if you have a choice define your filesystems to have
a 4KB fundamental size and a 1KB fragment size, not 8KB/1KB or 4KB/512B.

bill> My /usr partition is at 6% fragmentation (according to fsck)

This means that 6% of files have a length that is not a multiple of
4/8KB. This seems very low for a news partition.

bill> -- The system has only been up for a couple of months, and I've
bill> been getting usenet news for a few weeks.  That seems like a lot
bill> for such a short time.

In the BSD filesystem fragementation is not a function of time, but only
of the file sizes.

In the V7 filesystem fragmentation has a completely different meaning,
which could be better described with the word "scattering". As time goes
by free blocks and therefore the free list and so new files tend to get
scattered around the disc. This often takes very little time (two weeks)
to manifest itself.

It does not happen with the BSD (or the ISC) filesystems, which keep the
free blocks well packed and the free list in order.
--
Piercarlo "Peter" Grandi           | ARPA: pcg%uk.ac.aber.cs@nsfnet-relay.ac.uk
Dept of CS, UCW Aberystwyth        | UUCP: ...!mcsun!ukc!aber-cs!pcg
Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk

mburg@unix386.Convergent.COM (Mike Burg) (11/08/90)

In article <1990Nov5.225213.11920@unixland.uucp> bill@unixland.uucp (Bill Heiser) writes:
>In article <1990Nov5.154056.4737@pegasus.com> richard@pegasus.com (Richard Foulk) writes:
>>>Rev D of Esix has what they call the FFS (Fast File System).  I don't
>>>know if that is a BSD file system or not...
>>It has long file names doesn't it?
>No, Esix has a 14 character limit on filename length.

Well, when I was still working at ESIX and porting the FFS to System V, I did
add a "directory flag" into the super block stating which directory style
to use. Either the System V style of 14-characters, or the original BSD 255
character style. However, that was over a year ago and I haven't really kept
in contact with them to see what was the final turnout. (It seems that either
some notes of mine got lost, or someone didn't like that feature after
I left :-) :-))

The reason for the two directory layouts was for those programs that still were
using the old open("."), read(.., &dir, sizeof(struct dir)), method instead
of using opendir/readdir to retrieve the filenames in a directory. I was
very surpised to see a mass of system utilities in 3.2 that still used the
former method.
-- 
----------------------------------
Michael Burg -  Unisys/Convergent Corp.  Unix Intel Platforms Division San Jose
Phone: (408) 456-5934 UUCP: uunet!pyramid!ctnews!unix386.Convergent.com!mburg

cpcahil@virtech.uucp (Conor P. Cahill) (11/08/90)

In article <1990Nov07.120135.3300@nstar.uucp> larry@nstar.uucp (Larry Snyder) writes:
>that's a real shame - I believe that Intel release 4 with
>the FFS supports long file names - but the manuals don't
>mention how long is long...

System VR4 has a UFS file system (otherwise known as a BSD FFS) that will
support directory entries of 255 bytes.


-- 
Conor P. Cahill            (703)430-9247        Virtual Technologies, Inc.,
uunet!virtech!cpcahil                           46030 Manekin Plaza, Suite 160
                                                Sterling, VA 22170 

davidsen@sixhub.UUCP (Wm E. Davidsen Jr) (11/08/90)

In article <1990Nov07.120135.3300@nstar.uucp> larry@nstar.uucp (Larry Snyder) writes:

| that's a real shame - I believe that Intel release 4 with
| the FFS supports long file names - but the manuals don't
| mention how long is long...

  The beta was compiled for 256. 
-- 
bill davidsen - davidsen@sixhub.uucp (uunet!crdgw1!sixhub!davidsen)
    sysop *IX BBS and Public Access UNIX
    moderator of comp.binaries.ibm.pc and 80386 mailing list
"Stupidity, like virtue, is its own reward" -me

pb@idca.tds.PHILIPS.nl (Peter Brouwer) (11/08/90)

 In article <1990Nov06.120947.13551@nstar.uucp> larry@nstar.uucp (Larry Snyder) writes:
>bill@unixland.uucp (Bill Heiser) writes:
>>Is there something that can be done "on-line" to de-fragment Unix partitions?
>>Or is the best bet to just backup and restore the partition using something
>karl@ddsw1 put together a diskpack package a year or so ago - I don't
>know if it runs under ESIX - or if it works on the FFS - but in any
>case, it's available on nstar.

I saw source of a diskpack utility posted sometime ago that will defragment
your disk but will use and set the gap size to 1. Be aware that this will not
always be the optimal value and it might decrease yoyr file system performance.





-- 
#  Peter Brouwer,                | Philips Information Systems,                #
#  NET  : pb@idca.tds.philips.nl | Department P9000-i Building V2,             #
#  UUCP : ....!mcsun!philapd!pb  | P.O.Box 245,7300AE Apeldoorn,The Netherlands#
#  PHONE:ext [+31] [0]55 432992, | FAX  :ext [+31] [0]55 433488                #

jde@everex.uucp (-Jeff Ellis()) (11/10/90)

In article <1990Nov5.225213.11920@unixland.uucp> bill@unixland.uucp (Bill Heiser) writes:
>No, Esix has a 14 character limit on filename length.

Yes and no. If the ESIX FFS partion is made with the -sysv option then
you are limited to 14 characters. Otherwise its 256 characters. Our
default in our install script is with the -sysv.

-- 
Jeff Ellis		ESIX SYSTEM/V  UUCP:uunet!zardoz!everex!jde
			US Mail: 1923 St. Andrew Place, Santa Ana, CA 92705

david@twg.com (David S. Herron) (11/11/90)

In article <1990Nov5.222733.11408@unixland.uucp> bill@unixland.uucp (Bill Heiser) writes:
>In article <1990Nov3.222929.2164@servalan.uucp> rmtodd@servalan.uucp (Richard Todd) writes:
>>  Well, that's how FFS works on other machines (I've hit it on Apple Unix
>>2.0, which includes Berkeley FFS).  Hitting the no-free-blocks limit when
>>you've got 5M free in fragments is a little unusual; I was hitting the

That 10% limit is a heuristic invented when Berkeley invented FFS
designed to help keep fragmentation down.

>Is there something that can be done "on-line" to de-fragment Unix partitions?

Theoretically, yes.  It would work best if the disk were `unmounted'
first which is easiest to do if the system were brought to single user.
It would also require writing software which would first sort the
free list, then reorder all the data blocks into as contiguous an
order as possible.  The method is left as an excercise to the reader.

If Unix were multitasking internally (as Mach is) then I can imagine
an addition to either the disk driver or file system driver which
would run as a seperate `thread', at very low priority, and do file
system optimization in the background.  Since it would run at low
priority it would only snarf up idle time ...

>Or is the best bet to just backup and restore the partition using something
>other than 'dump'?  

This will work -- assuming you're using `tar' or `cpio'.

>  (I haven't done anything with the Esix
>"2K file system utility" yet -- I'm not sure what is on that disk-- been too
>busy to experiment...)

All the 2K file system is is the same old V7 file system with some
constants changed to confuse the innocent.  It's no great stride
forward in understanding the Universe .. it has most of the same
performance features & limitations (eg, it fragments quickly and doesn't
work well with largeish partitions since the inodes are all stuck
at one end of the partition) as the .5K and 1K file systems.

The difference is that the basic unit of allocation is a 2Kbyte block.

Therefore each each data block in an inode refers to twice as much
data as a 1K file system.

Therefore you can have more data in a file before you get to indirect
or doubly indirect blocks.

Therefore a read returns more data (inside the kernel) so you tend to
get a little more read ahead effect.

Therefore it's suitable for file systems where you intend to store
lots of largeish files.

Perhaps (guess) it would also be good for file systems where you
intend to store lots of 1K<"file_size"<2K files since then all the
data in the file would be stored in one data block.  This might
have a positive effect on fragmentation ..

-- 
<- David Herron, an MMDF & WIN/MHS guy, <david@twg.com>
<- Formerly: David Herron -- NonResident E-Mail Hack <david@ms.uky.edu>
<-
<- Use the force Wes!

bill@unixland.uucp (Bill Heiser) (11/11/90)

In article <1990Nov9.220931.2091@everex.uucp> jde@everex.uucp (-Jeff Ellis()) writes:
>In article <1990Nov5.225213.11920@unixland.uucp> bill@unixland.uucp (Bill Heiser) writes:
>>No, Esix has a 14 character limit on filename length.
>
>Yes and no. If the ESIX FFS partion is made with the -sysv option then
>you are limited to 14 characters. Otherwise its 256 characters. Our
>default in our install script is with the -sysv.
>

If I were to re-install, making sure the -sysv option is NOT used, would
there be any side effects?  Would the FFS still work properly, for example?


-- 
home:	...!{uunet,bloom-beacon,esegue}!world!unixland!bill
	bill@unixland.uucp,  bill%unixland.uucp@world.std.com
	Public Access Unix  - Esix SYSVR3 - (508) 655-3848
other:	heiser@world.std.com   Public Access Unix (617) 739-9753

dawes@suphys.physics.su.OZ.AU (David Dawes) (11/11/90)

In article <1990Nov9.220931.2091@everex.uucp> jde@everex.uucp (-Jeff Ellis()) writes:
>In article <1990Nov5.225213.11920@unixland.uucp> bill@unixland.uucp (Bill Heiser) writes:
>>No, Esix has a 14 character limit on filename length.
>
>Yes and no. If the ESIX FFS partion is made with the -sysv option then
>you are limited to 14 characters. Otherwise its 256 characters. Our
>default in our install script is with the -sysv.

I have just been playing around with different ffs parameters.

I assume the install script you are referring to is /etc/diskadd.  It calls
/etc/ffs/newfs with the `-sysv' option.  I tried running

/etc/ffs/newfs -v /dev/rdsk/1s1

and it created a sysv (ie 14 char file names) file system.  I assume then that
-sysv is the default.  In this case what option should be used for bsd type
file names?  The -v options revealed that newfs was calling

/etc/ffs/mkfs -S -R 4 /dev/rdsk/1s1 [list of parameters]

I tried running this without -S, and got a bsd type file system.  What does
the -R 4 option do?  I couldn't see any difference between using it or omitting
it.

There seem to be a number of undocumented options for ffsmkfs, newfs.  Even
a few options shown in the SYNOPSIS part of the man page are not described.
Is it possible to get some more complete documentation?

>Jeff Ellis		ESIX SYSTEM/V  UUCP:uunet!zardoz!everex!jde
>			US Mail: 1923 St. Andrew Place, Santa Ana, CA 92705

David
--
------------------------------------------------------------------------------
 David Dawes (dawes@suphys.physics.su.oz.au) DoD#210   | Phone: +612 692 2639
 School of Physics, University of Sydney, Australia    | Fax:   +612 660 2903
------------------------------------------------------------------------------

john@jwt.UUCP (John Temples) (11/12/90)

In article <1990Nov11.013732.1263@unixland.uucp> bill@unixland.uucp (Bill Heiser) writes:
>If I were to re-install, making sure the -sysv option is NOT used, would
>there be any side effects?  Would the FFS still work properly, for example?

I just built a BSD directory format file system on a floppy (with
/etc/ffs/mkfs /dev/rdsk/f0t 2400) and it seems to work.  I only
played with it for a few minutes, but I was able to edit files with
long names, make directories, and list files.  I wonder if anything
would break by using BSD directory format on the hard drive?
-- 
John W. Temples -- john@jwt.UUCP (uunet!jwt!john)

bill@unixland.uucp (Bill Heiser) (11/12/90)

In article <2258@jwt.UUCP> john@jwt.UUCP (John Temples) writes:
>I just built a BSD directory format file system on a floppy (with
>/etc/ffs/mkfs /dev/rdsk/f0t 2400) and it seems to work.  I only
>played with it for a few minutes, but I was able to edit files with
>long names, make directories, and list files.  I wonder if anything
>would break by using BSD directory format on the hard drive?

This is interesting.  I, too, would be interested in knowing
what the results would be of using the BSD directory format ...

bill

-- 
home:	...!{uunet,bloom-beacon,esegue}!world!unixland!bill
	bill@unixland.uucp,  bill%unixland.uucp@world.std.com
	Public Access Unix  - Esix SYSVR3 - (508) 655-3848
other:	heiser@world.std.com   Public Access Unix (617) 739-9753

pcg@cs.aber.ac.uk (Piercarlo Grandi) (11/13/90)

On 10 Nov 90 21:43:05 GMT, david@twg.com (David S. Herron) said:

	[ ... on the BSD FFS and its ESIX incarnation ... ]

david> That 10% limit is a heuristic invented when Berkeley invented FFS
david> designed to help keep fragmentation down.

No, it is designed to prevent the hashed quadratic search for a cylinder
group with free blocks to be repeated too many times. It has *nothing*
to do with fragmentation, only with the distribution of free blocks.

	[ ... on defragmenting the BSD FFS online ... ]

david> Theoretically, yes.  It would work best if the disk were
david> `unmounted' first which is easiest to do if the system were
david> brought to single user.  It would also require writing software
david> which would first sort the free list, then reorder all the data
david> blocks into as contiguous an order as possible.  The method is
david> left as an excercise to the reader.

But it would be pointless. The BSD FFS already keeps the blocks in
nearly optimal order, without rewuiring reorganization. I doubt very
much that in a FFS partition with sufficient free space (>10%)
reorganization would buy a lot of extra thruput, whether the
reoganization is online or offline.


Moreover again: the issue we are discussing here is *scattering*, not
fragmentation. In the BSD FFS fragmentation is the splitting of large
blocks into small blocks for file tails.
--
Piercarlo Grandi                   | ARPA: pcg%uk.ac.aber.cs@nsfnet-relay.ac.uk
Dept of CS, UCW Aberystwyth        | UUCP: ...!mcsun!ukc!aber-cs!pcg
Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk

dawes@suphys.physics.su.OZ.AU (David Dawes) (11/18/90)

In article <1305@bilver.UUCP> bill@bilver.UUCP (Bill Vermillion) writes:
>In article <1990Nov3.124110.2155@metro.ucc.su.OZ.AU> dawes@suphys.physics.su.OZ.AU (David Dawes) writes:
>
>>I too am using ESIX rev D with ffs.  One of my file systems became heavily
>>fragmented, and got to the point where there were 0 free blocks, and
>>5000 free frags.  df reported 10000 blocks free, but attempting to write
>>to the file system resulted in "Disk full" errors.  This meant that I
>>had an unusable 5MB on a 65MB file system. (BTW, there were plenty of free
>>inodes.)
> 
>>Is this how FFS is supposed to work, or is there a problem with the ESIX
>>implementation?
>
>That's about the right amount.  Check your manual in the newfs entry or the
>ffsmkfs entry, and you will see that 10% of the disk is reserved and can
>NOT be used by anyone except the super user.  That disk is full 0%, as far
>as a regular user is concerned.

I forgot to mention that I checked this angle, and found that it wasn't the
problem.  I've not seen any evidence that the min-free parameter actually
does anything on an Esix FFS.  My problem was that there were just too many
frags.  I have been able to improve this by using 4k blocks (with 1k frags).

David
--
------------------------------------------------------------------------------
 David Dawes (dawes@suphys.physics.su.oz.au) DoD#210   | Phone: +612 692 2639
 School of Physics, University of Sydney, Australia    | Fax:   +612 660 2903
------------------------------------------------------------------------------