Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 May 2000 16:49:28 -0500 (CDT)
From:      Jeffrey Dunitz <orpheus@arthur.avalon.net>
To:        Peter McGarvey <Peter.McGarvey@telinco.net>
Cc:        FREEBSD-Questions <freebsd-questions@FreeBSD.ORG>
Subject:   Re: BSD Theology: swap, /var, /tmp and /usr/tmp
Message-ID:  <Pine.HPP.3.96.1000502162408.24895A-100000@arthur.avalon.net>
In-Reply-To: <390F41FD.5880279E@telinco.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 2 May 2000, Peter McGarvey wrote:

> Theological problem this.  Facts and Opinions welcome...
> 
> Okay, I /think/ I know what I'm doing when I slice-up a disk for a
> FreeBSD system...
> 
> 	/ -> 64MB
> 	swap -> 2 * memory (rounded-up to the nearest MB)
> 	/usr -> the remaining disk

That's pretty reasonable.

> 
> Once setup I link /var and /tmp to /usr/var and /usr/temp
> 
> This is the way I've always done it, I'm quite happy doing it this way,
> it works for me and I've never had any problems.
> 
> Fine, but now some upstart has asked me to set up a FreeBSD system with
> the following....
> 
> 	/ -> 5MB

You're going to need a bigger root than that--big enough to accomodate
/bin, /sbin, /etc and the other stuff that goes in the root partition.
5 megs isn't even big enough for /bin, I don't think.
 
I'd say go with at least 25 megs for /, if not like 64 just to be safe.

> 	swap 1 -> 512MB (equal to memory)
> 	swap 2 -> 512MB 
> 	/var -> 2GB

If you're going to keep a fair amount of logs, and want it on a separate 
partition, that should be ok. Linking it to /usr would also probably
be ok. The reason /var is usually a separate partition (at least on
server boxes) is that you don't want to logs to fill up your other
partitions and cause problems. If you linked /var to /usr/var and it
filled to 100%, I don't think that would mess anything up. It might, but
I can't think of what it would be.

> 	/tmp -> 2GB

Same thing as /var--if you're writing lots of stuff to this partition, you
want to separate it, make it plenty big, or both. If the applications that
will run on the machine in question write lots of huge temp files, or
you want to compile stuff in /tmp, a couple gigs should be about right. 
Linking it to /usr/tmp is probably OK. I don't have a BSD box in front of
me at the moment, but by default on some OSes, /tmp is ALWAYS a link to
/usr/tmp or /var/tmp unless you do it differently.

> 	/usr -> remaining disk

And then what, you'd put /home as a link to /usr/home? Should be fine.

> 
> My first instinct is that the guy is barking mad (he is a Linux groupie
> so... (and Linux does have a nasty habit of apropriating every entry in
> the partition table))
Actually, if you install linux with extended partitions, it's not such a 
hog...


> 
> However I've hit a snag - when it comes to FreeBSD partitions and slices
> I know the HOW (and there is lot's of help on that), but I'm not too
> sure of the WHY (and help here is lacking).
> 
> 1. What I need is some rational reasoning why the way I do 
>    things is right/wrong. 
> 
> 2. Why the way Linux man wants it is right/wrong.

I just think a 5 meg / partition is dead wrong. You can't
fit _anything_ on there.


> 
> 3. Some info on the optimal size of swap

That depends on your applications. If you use a lot of stuff that eats 
swap like cornflakes (ie, INN, maybe squid), then you want plenty of 
swap. Nobody can really tell you how big it should be, but the general
rule of thumb has traditionally been 1.5 times the size of RAM. A lot of 
people also do twice the size of RAM. For server boxes, I usually do 1 to
1.5, unless it's going to be a news server. For workstations, I usually 
use 40 megs, no matter what. Rarely, on such a box, I run out of swap, but
hardly ever.


> 
> 4. Where's the best place to put /var and /tmp

For workstations, I use one big / partition. For servers, I put /var on 
its own partition, and /tmp as either part of /, or, if I know it's going
to fill up, link it to /usr if possible.


> 
> Here is what I was told...
> 
> On the issue of the 2 swap I was told two swap partitions were needed as
> "we may need to turn one off as too much swap will slow the machine
> down".  

I've never known that to be an issue. Maybe I'm naiive. Usually, I've heard
of people having two swap partitions on separate disks to sort of "stripe"
between them, to improve performance when swapping.


> 
> Furthermore, I was told the 2*memory rule is no longer valid "once the
> physical memory has exceeded 64MB"  Can this true?  Have I needlessly
> been waisting mt HDD space by making swap too big?

Well, one point I'd make is that if you're waiting for 500 megs of 
crap to swap in and out, the box is probably going to be nearly unusable.
If stability is more important, you may want to risk it. That is, "sure, 
nobody can stand how slow it is, but it's better than crashing". Your call.


> 
> My thoughts were that swap was used as needed, when needed, and that
> pages are not swapped to disk on a whim just because the swap space
> existed (or perhaps this is how linux works so he's assuming FreeBSD
> does it this way too).

Been a while since I looked at FreeBSD's swap code, but I'm pretty sure it
uses the typical demand-paging approach--parts of running processes that 
haven't been touched in a while get swapped out, and brought back in
when needed.

> 
> As for /var and /tmp why not link them to /usr/var and /usr/tmp.  I can
> understand putting them on physically seperate devices.  But is it
> strictly necissary to put them in their own slice?  Is there a
> performance benefit?  or a is there some extra resiliency?
> 

No performance benefit per se, unless you put them on their own _disk_, 
which is another thing to consider.


> Whilst I'm at it what is the difference between /tmp and /usr/tmp.  I've
> always treated them a seperate entities - assuming linking /tmp to
> /usr/tmp was a bad thing.  Linux man maligned FreeBSD big time when he
> found there were two temporary directories.  I couldn't respond as I
> didn't know - and I refused to descent to his level by insulting his
> prefered OS.
> 

The "multiple temp partitions spread all over hell" situation is largely
historical. Back in the day, a 2MB fixed head disk was pretty studly, and
on your typical PDP box you'd have two or three of them if you were doing
anything particularly serious. They weren't big, but they were pretty
fast, at least for linear writes (no seeking, but the rotational latency
was rather sloggy). So you'd put a couple things that needed performance
more than space on a fixed head disk--logs (ie, /var) and the stuff in 
/usr/bin. The left over space was for temp, so you'd have a little in 
/var/tmp and a little in /usr/tmp. 

Nowadays, since all disks are big and fast, you don't need to worry so
much. I've set up some systems with /tmp on it's own partition and
/var/tmp and /usr/tmp linked to /tmp. I can't remember what OS that was--
probably DomainOS. FreeBSD probably isn't picky about where the various
temp dirs are located or linked to, but there may be issues I don't 
know about.



> Like I said this is mainly a theological problem.  so all Facts and
> Opinions welcome...

Well, I gave you some of both. I wish I could give you a more definitive
answer.


> 
> 
> -- 
> TTFN, FNORD
> 
> Peter McGarvey, Unix Administrator
> Network Operations Center, Telinco Limited
> 
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-questions" in the body of the message
> 

=============================================================
Jeffrey Dunitz  | Network Engineer, 
BOFH Emeritus   | ENRGi.com
Avalon Networks | --/




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.HPP.3.96.1000502162408.24895A-100000>