tmpfs
— in-memory
file system
To compile this driver into the kernel, place the following line
in your kernel configuration file:
options TMPFS
Alternatively, to load the driver as a module at boot time, place
the following line in
loader.conf(5):
The tmpfs
driver implements an in-memory,
or tmpfs
file system. The filesystem stores both
file metadata and data in main memory. This allows very fast and low latency
accesses to the data. The data is volatile. An umount or system reboot
invalidates it. These properties make the filesystem's mounts suitable for
fast scratch storage, like /tmp.
If the system becomes low on memory and swap is configured (see
swapon(8)),
the system can transfer file data to swap space, freeing memory for other
needs. Metadata, including the directory content, is never swapped out by
the current implementation. Keep this in mind when planning the mount
limits, especially when expecting to place many small files on a tmpfs
mount.
When
mmap(2)
is used on a file from a tmpfs mount, the swap VM object managing the file
pages is used to implement mapping and avoid double-copying of the file
data. This quirk causes process inspection tools, like
procstat(1),
to report anonymous memory mappings instead of file mappings.
The following options are available when mounting
tmpfs
file systems:
easize
- Set the maximum memory size used by extended attributes in bytes. The
default is 16 megabytes.
export
- Accept the
export
option for compatibility with
nfsv4(4).
This option does nothing.
gid
- Set the group ID of the root inode of the file system. The default is the
mount point's GID.
inodes
- Set the maximum number of nodes available to the file system. If not
specified, the file system chooses a reasonable maximum based on the file
system size, which can be limited with the
size
option.
maxfilesize
- Set the maximum file size in bytes. The default is the maximum possible
value.
mode
- Set the mode (in octal notation) of the root inode of the file system. The
default is the mount point's mode.
nomtime
- Disable the tracking of mtime updates caused by writes to the shared
mapped areas backed by
tmpfs
files. This option
removes periodic scans, which downgrade read-write-mapped pages to
read-only to note the writes.
nonc
- Do not use namecache to resolve names to files for the created mount. This
saves memory, but currently might impair scalability for highly used
mounts on large machines.
nosymfollow
- Do not follow
symlink(7)'s
on the mounted file system.
pgread
- Enable pgcache read for the mount.
size
- Set the total file system size in bytes, unless suffixed with one of k, m,
g, t, or p, which denote byte, kilobyte, megabyte, gigabyte, terabyte and
petabyte respectively. If zero (the default) or a value larger than
SIZE_MAX - PAGE_SIZE is given, the available amount of memory (including
main memory and swap space) will be used.
uid
- Set the user ID of the root inode of the file system. The default is the
mount point's UID.
union
- Refer to
mount(8).
Mount a tmpfs
memory file system:
mount -t tmpfs tmpfs
/tmp
Configure a tmpfs
mount via
fstab(5):
The tmpfs
driver first appeared in
FreeBSD 7.0.
The tmpfs
kernel implementation was
written by Julio M. Merino Vidal
<jmmv@NetBSD.org> as a
Google Summer of Code project.
Rohit Jalan and others ported it from
NetBSD to FreeBSD.
This manual page was written by Xin LI
<delphij@FreeBSD.org>.