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: /
, swap,
/var
, and
/usr
.
The size of the
/var
partition
reflects the intended machine's usage. This partition
is used to hold mailboxes, log files, and printer spools.
Mailboxes and log files can grow to unexpected sizes
depending on the number of users and how long log files
are kept. On average, most users rarely need more than
about a gigabyte of free disk space in /var
.
Sometimes, 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.
The Auto-defaults
partition sizer
used by sysinstall(8) 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. 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.
All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.