1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-18 10:35:55 +00:00

Fix type-o's, revamp section on the /tmp softlink, add sections for a

couple more sysctl's, add a section on mount options.
This commit is contained in:
Matthew Dillon 2001-07-07 17:43:20 +00:00
parent d9769eeead
commit 037fbe4424
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=79399

View File

@ -61,10 +61,12 @@ to underestimate log file storage requirements.
Sizing
.Em /var/tmp
depends on the kind of temporary file usage you think you will need. 128M is
the minimum we recommend. Also note that you usually want to make
the minimum we recommend. Also note that sysinstall will create a /tmp
directory, but it is usually a good idea to make
.Em /tmp
a softlink to
.Em /var/tmp .
.Em /var/tmp
after the fact.
Dedicating a partition for temporary file storage is important for
two reasons: First, it reduces the possibility of filesystem corruption
in a crash, and second it reduces the chance of a runaway process that
@ -73,10 +75,10 @@ logging, etc). Filling up [/var]/tmp is a very common problem to have.
.Pp
In the old days there were differences between /tmp and /var/tmp,
but the introduction of /var (and /var/tmp) led to massive confusion
by program writers so today programs halfhazardly use one or the
by program writers so today programs haphazardly use one or the
other and thus no real distinction can be made between the two. So
it makes sense to have just one temporary directory. You can do the
softlink either way. The one thing you do not want to do is leave /tmp
it makes sense to have just one temporary directory. However you handle
/tmp, the one thing you do not want to do is leave it sitting
on the root partition where it might cause root to fill up or possibly
corrupt root in a crash/reboot situation.
.Pp
@ -109,7 +111,7 @@ each partition has different operational characteristics and separating them
allows the filesystem to tune itself to those characteristics. For example,
the root and /usr partitions are read-mostly, with very little writing, while
a lot of reading and writing could occur in /var and /var/tmp. By properly
partitioning your system, fragmentation introduced in the smaller more
partitioning your system fragmentation introduced in the smaller more
heavily write-loaded partitions will not bleed over into the mostly-read
partitions. Additionally, keeping the write-loaded partitions closer to
the edge of the disk (i.e. before the really big partitions instead of after
@ -195,6 +197,25 @@ blocks. If you have a filesystem (such as the root filesystem) which is
close to full, doing a major update of it, e.g.
.Em make installworld,
can run it out of space and cause the update to fail.
.Pp
A number of run-time mount options exist that can help you tune the system.
The most obvious and most dangerous one is
.Em async .
Don't ever use it, it is far too dangerous. A less dangerous and more
useful mount option is called
.Em noatime .
UNIX filesytems normally update the last-accessed time of a file or
directory whenever it is accessed. This operation is handled in FreeBSD
with a delayed write and normally does not create a burden on the system.
However, if your system is accessing a huge number of files on a continuing
basis the buffer cache can wind up getting polluted with atime updates,
creating a burden on the system. For example, if you are running a heavily
loaded web site, or a news server with lots of readers, you might want to
consider turning off atime updates on your larger partitions with this
mount option. Do not gratuitously turn off atime updates everywhere.. for
example, you might as well leave them turned on for mostly read-only
partitions such as / and /usr (especially for / since some system utilities
use the atime field for reporting).
.Sh STRIPING DISKS
In larger systems you can stripe partitions from several drives together
to create a much larger overall partition. Striping can also improve
@ -326,6 +347,31 @@ may itself limit the listen queue size (e.g. sendmail, apache) but will
often have a directive in its configuration file to adjust the queue size up.
Larger listen queue also do a better job of fending of denial of service
attacks.
.Pp
The
.Em kern.maxfiles
sysctl determines how many open files the system supports. The default is
typically a few thousand but you may need to bump this up to ten or twenty
thousand if you are running databases or large descriptor-heavy daemons.
.Pp
The
.Em vm.swap_idle_enabled
sysctl is useful in large multi-user systems where you have lots of users
entering and leaving the system and lots of idle processes. Such systems
tend to generate a great deal of continuous pressure on free memory reserves.
Turning this feature on and adjusting the swapout hysteresis (in idle
seconds) via
.Em vm.swap_idle_threshold1
and
.Em vm.swap_idle_threshold2
allows you to depress the priority of pages associated with idle processes
more quickly then the normal pageout algorithm. This gives a helping hand
to the pageout daemon. Do not turn this option on unless you need it,
because the tradeoff you are making is to essentially pre-page memory sooner
rather then later, eating more swap and disk bandwidth. In a small system
this option will have a detrimental effect but in a large system that is
already doing moderate paging this option allows the VM system to stage
whole processes into and out of memory more easily.
.Sh KERNEL CONFIG TUNING
.Pp
There are a number of kernel options that you may have to fiddle with in