SUMMARY: recommended size on / partition (addendum)

From: Tony C. Wu (tonywu@life.nthu.edu.tw)
Date: Fri Feb 20 1998 - 11:34:26 CST


Many thank to Rick von Richter <rickv@mwh.com> for his good suggestion.

Tony.

---------- Forwarded message ----------
Date: Wed, 18 Feb 1998 12:45:52 -0800
From: Rick von Richter <rickv@mwh.com>
To: "Tony C. Wu" <tonywu@life.nthu.edu.tw>
Subject: Re: SUMMARY: recommended size on / partition

You got a lot of good suggestions but here are a few things to take into
consideration.

1) If you separate your partitions; /, /usr, /var, /opt, you have a bit
more control over how to grow those partitions AND separate entries
lessen the chance of a corrupt filesystem bringing down the entire
server. I.e. if you have everything on one partition and that partition
has an error, then the entire server is down. Whereas if you separate
them you can experience a filesystem problem on one partition (/var,
/opt, etc...) and still bring up the server and fix the problem by just
not mounting the partition that has the problem. Root partition excluded
obviously.

2) Geometry. I was surprised nobody mentioned this. A hard drive has a
bunch of round platters in it right? On this round circle is the layout
of your filesystems. At the very outer edge of the disc is the label,
bootblock, superblocks, etc... Then, moving inward, towards the spindle,
you have your slices (0 thru 7). A harddrive is a mechanical device,
meaning that the heads need to move across the surface to read/write
data. So, it stands to reason that the less the heads have to travel
(the heads travel from the outer edge of the disk towards the spindle)
then the faster your access times. Say you have one big partition. You
need a piece of data. That data may be broken up into different pieces
on different parts of the partition. If piece 1 is on the outer edge of
the disk and piece 2 is near the spindle and piece 3 is back near the
outer edge and so on... you can see that 95% of your time is going to be
spent moving the heads back and forth across this one massive partition.
This is a big waste of time. So this is one reason that you want to keep
your partitions small. A smaller partition is thinner on the physical
disk. Now we know that slice 0 is on the outer edge of the disk and
slice 7 is near the spindle. So let's say I'm going to set up a 100MB
partition. If I set this 100MB partition to be on slice 0 then it is
going to be 1 unit wide (unit is arbitrary, use any measurement you
like). If I set that 100MB partition on slice 7 then it is physically
going to be much more than 1 unit wide, perhaps 10 units wide but the
point is it WILL be wider. (See the diagram below) So it makes sense
to put your busiest partitions near the outer edge of the disk. The
busiest partitions are / and /usr.

     This is a view looking sideways at a disk platter. The same 100MB
partition on slice 0 and slice 7. In this diagram, the heads travel left
& right. You can see that slice 7 is much wider than slice zero but both
partitions are 100MB. So the heads have to travel a lot less to read
data on slice 0 than on slice 7.

              Outer edge Spindle Outer
edge
                                             
                   _________________________||_________________________
                                            ||
                  ^-^ ^--------^
                Slice 0 Slice 7

3) Multiple drives. Let's say you have two internal harddrives in your
server. (Obviously, you can have way more than that both internally and
externally. But I'll use two drives for my discussion.) Two drives
means you have twice as many heads to read/write data. With the new bus
architecture of the Suns, you can access multiple devices at the same
time. This means you can send multiple read/write commands to both
drives at the same time. So, you can split up your partitions on two
drives and have faster access because you have twice as many heads doing
reads/writes.

Combining all these points... So here is that way I see it. A 50MB
partition for root (/), 100-200MB for /var, and 600MB for /usr (Solaris
2.6) or 300MB (Solaris 2.5.1). The rest you can use for /opt, swap, or
another filesystem. Here is the way I would lay it out for a two drive
system where each disk has a capacity of 1GB.

                      Drive 1 Drive 2
           Slice UFS Size UFS Size
             0 / 50 /usr 600 (300 for 2.5.1)
             1 /var 150 swap 100
             2 backup backup
             3 swap 100 /x0 300
             4 /opt 300
             5
             6
             7

/x0 is just an additional filesystem to hold data. You could even cross
mount this onto the /opt partition to make /opt work over two disks.

So you can see I have put my busiest partitions (/ & /usr) on slice 0
(near the outer edge of the disk) and I have split them onto two drives
so I have twice as many heads working for me. I try to keep the
partitions small so that the heads have less distance to travel to
read/write data. A lot of this is subjective and dependent on RAM,
drive size etc... But you see the point I am trying to make.

Hope this helps you. Sorry I got so long winded. 8-)

-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Rick von Richter             |    Phone: 619-552-6222
  Systems/Network Supervisor   |      Fax: 619-552-6213
  Maintenance Warehouse        |    Email: rickv@mwh.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       Science is true. Don't be misled by facts.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:12:31 CDT