When laying out file systems with bsdlabel(8) or
sysinstall(8), remember that hard drives transfer data
faster from the outer tracks to the inner. Thus smaller and
heavier-accessed file systems should be closer to the
outside of the drive, while larger partitions like
/usr should be placed
toward the inner parts of the disk. It is a good idea to
create partitions in an order similar to: root, swap,
/var,
/usr.
The size of the
/var partition
reflects the intended machine's usage. This partition
/var is used to hold
mailboxes, log files, and printer spools. Mailboxes and log
files can grow to unexpected sizes depending on how many
users exist and how long log files are kept. Most users
rarely need more than about a gigabyte of free disk space in
/var.
There are a few times that a lot of disk space is
required in
/var/tmp. When new
software is installed with pkg_add(1) the packaging
tools extract a temporary copy of the packages under
/var/tmp. Large
software packages, like
Firefox,
OpenOffice or
LibreOffice may be tricky to
install if there is not enough disk space under
/var/tmp.
The /usr
partition holds many of the files which support the system,
including the FreeBSD Ports Collection and system source code.
At least 2 gigabytes is recommended for this
partition.
When selecting partition sizes, keep the space requirements in mind. Running out of space in one partition while barely using another can be a hassle.
Some users have found that sysinstall(8)'s
Auto-defaults partition sizer will
sometimes select smaller than adequate
/var and
/ partitions.
Partition wisely and generously.
As a rule of thumb, the swap partition should be about double the size of physical memory (RAM) as the kernel's virtual memory (VM) paging algorithms are tuned to perform best when the swap partition is at least two times the size of main memory. Systems with minimal RAM may perform better with more swap. Configuring too little swap can lead to inefficiencies in the VM page scanning code and might create issues later if more memory is added.
On larger systems with multiple SCSI disks or multiple IDE disks operating on different controllers, it is recommended that swap be configured on each drive (up to four drives). The swap partitions should be approximately the same size. The kernel can handle arbitrary sizes but internal data structures scale to 4 times the largest swap partition. Keeping the swap partitions near the same size will allow the kernel to optimally stripe swap space across disks. Large swap sizes are fine, even if swap is not used much. It might be easier to recover from a runaway program before being forced to reboot.
Several users think a single large partition will be
fine, but there are several reasons why this is a bad idea.
First, each partition has different operational
characteristics and separating them allows the file system
to tune accordingly. For example, the root and
/usr partitions are
read-mostly, with few writes, while a lot of reads and
writes could occur in
/var and
/var/tmp.
By properly partitioning a system, fragmentation
introduced in the smaller write heavy partitions will not
bleed over into the mostly-read partitions. Keeping the
write-loaded partitions closer to the disk's edge, will
increase I/O performance in the partitions where it occurs
the most. Now while I/O performance in the larger
partitions may be needed, shifting them more toward the edge
of the disk will not lead to a significant performance
improvement over moving
/var to the edge.
Finally, there are safety concerns. A smaller, neater root
partition which is mostly read-only has a greater chance of
surviving a bad crash.
This, and other documents, can be downloaded from ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
For questions about FreeBSD, read the
documentation before
contacting <questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.