xref: /freebsd/sbin/tunefs/tunefs.8 (revision 734e82fe33aa764367791a7d603b383996c6b40b)
1.\" Copyright (c) 1983, 1991, 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\" 3. Neither the name of the University nor the names of its contributors
13.\"    may be used to endorse or promote products derived from this software
14.\"    without specific prior written permission.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26.\" SUCH DAMAGE.
27.\"
28.\"     @(#)tunefs.8	8.2 (Berkeley) 12/11/93
29.\"
30.Dd August 16, 2022
31.Dt TUNEFS 8
32.Os
33.Sh NAME
34.Nm tunefs
35.Nd tune up an existing UFS file system
36.Sh SYNOPSIS
37.Nm
38.Op Fl A
39.Op Fl a Cm enable | disable
40.Op Fl e Ar maxbpg
41.Op Fl f Ar avgfilesize
42.Op Fl j Cm enable | disable
43.Op Fl J Cm enable | disable
44.Op Fl k Ar held-for-metadata-blocks
45.Op Fl L Ar volname
46.Op Fl l Cm enable | disable
47.Op Fl m Ar minfree
48.Op Fl N Cm enable | disable
49.Op Fl n Cm enable | disable
50.Op Fl o Cm space | time
51.Op Fl p
52.Op Fl s Ar avgfpdir
53.Op Fl S Ar size
54.Op Fl t Cm enable | disable
55.Ar special | filesystem
56.Sh DESCRIPTION
57The
58.Nm
59utility is designed to change the dynamic parameters of a UFS file system
60which affect the layout policies.
61The
62.Nm
63utility cannot be run on an active file system.
64To change an active file system,
65it must be downgraded to read-only or unmounted.
66.Pp
67The parameters which are to be changed are indicated by the flags
68given below:
69.Bl -tag -width indent
70.It Fl A
71The file system has several backups of the super-block.
72Specifying
73this option will cause all backups to be modified as well as the
74primary super-block.
75This is potentially dangerous - use with caution.
76.It Fl a Cm enable | disable
77Turn on/off the administrative POSIX.1e ACL enable flag.
78.It Fl e Ar maxbpg
79Indicate the maximum number of blocks any single file can
80allocate out of a cylinder group before it is forced to begin
81allocating blocks from another cylinder group.
82Typically this value is set to about one quarter of the total blocks
83in a cylinder group.
84The intent is to prevent any single file from using up all the
85blocks in a single cylinder group,
86thus degrading access times for all files subsequently allocated
87in that cylinder group.
88The effect of this limit is to cause big files to do long seeks
89more frequently than if they were allowed to allocate all the blocks
90in a cylinder group before seeking elsewhere.
91For file systems with exclusively large files,
92this parameter should be set higher.
93.It Fl f Ar avgfilesize
94Specify the expected average file size.
95.It Fl j Cm enable | disable
96Turn on/off soft updates journaling.
97.Pp
98Enabling journaling reduces the time spent by
99.Xr fsck_ffs 8
100cleaning up a filesystem after a crash to a few seconds from minutes to hours.
101Without journaling, the time to recover after a crash is a function
102of the number of files in the filesystem and the size of the filesystem.
103With journaling, the time to recover after a crash is a function of the
104amount of activity in the filesystem in the minute before the crash.
105Journaled recovery time is usually only a few seconds and never
106exceeds a minute.
107.Pp
108The drawback to using journaling is that the writes to its log adds
109an extra write load to the media containing the filesystem.
110Thus a write-intensive workload will have reduced throughput on a
111filesystem running with journaling.
112.Pp
113Like all journaling filesystems, the journal recovery will only fix
114issues known to the journal.
115Specifically if a media error occurs,
116the journal will not know about it and hence will not fix it.
117Thus when using journaling, it is still necessary to run a full fsck
118every few months or after a filesystem panic to check for and fix
119any errors brought on by media failure.
120A full fsck can be done by running a background fsck on a live
121filesystem or by running with the
122.Fl f
123flag on an unmounted filesystem.
124When running
125.Xr fsck_ffs 8
126in background on a live filesystem the filesystem performance
127will be about half of normal during the time that the background
128.Xr fsck_ffs 8
129is running.
130Running a full fsck on a UFS filesystem is the equivalent of
131running a scrub on a ZFS filesystem.
132.It Fl J Cm enable | disable
133Turn on/off gjournal flag.
134.It Fl k Ar held-for-metadata-blocks
135Set the amount of space to be held for metadata blocks.
136When set, the file system preference routines will try to save
137the specified amount of space immediately following the inode blocks
138in each cylinder group for use by metadata blocks.
139Clustering the metadata blocks speeds up random file access
140and decreases the running time of
141.Xr fsck 8 .
142While this option can be set at any time,
143it is most effective if set before any data is loaded into the file system.
144By default
145.Xr newfs 8
146sets it to half of the space reserved to minfree.
147.It Fl L Ar volname
148Add/modify an optional file system volume label.
149Legal characters are alphanumerics, dashes, and underscores.
150.It Fl l Cm enable | disable
151Turn on/off MAC multilabel flag.
152.It Fl m Ar minfree
153Specify the percentage of space held back
154from normal users; the minimum free space threshold.
155The default value used is 8%.
156Note that lowering the threshold can adversely affect performance:
157.Bl -bullet
158.It
159Settings of 5% and less force space optimization to
160always be used which will greatly increase the overhead for file
161writes.
162.It
163The file system's ability to avoid fragmentation will be reduced
164when the total free space, including the reserve, drops below 15%.
165As free space approaches zero, throughput can degrade by up to a
166factor of three over the performance obtained at a 10% threshold.
167.El
168.Pp
169If the value is raised above the current usage level,
170users will be unable to allocate files until enough files have
171been deleted to get under the higher threshold.
172.It Fl N Cm enable | disable
173Turn on/off the administrative NFSv4 ACL enable flag.
174.It Fl n Cm enable | disable
175Turn on/off soft updates.
176.It Fl o Cm space | time
177The file system can either try to minimize the time spent
178allocating blocks, or it can attempt to minimize the space
179fragmentation on the disk.
180Optimization for space has much
181higher overhead for file writes.
182The kernel normally changes the preference automatically as
183the percent fragmentation changes on the file system.
184.It Fl p
185Show a summary of what the current tunable settings
186are on the selected file system.
187More detailed information can be
188obtained from the
189.Xr dumpfs 8
190utility.
191.It Fl s Ar avgfpdir
192Specify the expected number of files per directory.
193.It Fl S Ar size
194Specify the softdep journal size in bytes.
195The minimum is 4M.
196.It Fl t Cm enable | disable
197Turn on/off the TRIM enable flag.
198If enabled, and if the underlying device supports the BIO_DELETE
199command, the file system will send a delete request to the underlying
200device for each freed block.
201The trim enable flag is typically set when the underlying device
202uses flash-memory as the device can use the delete command to
203pre-zero or at least avoid copying blocks that have been deleted.
204.Pp
205Note that this does not trim blocks that are already free.
206See the
207.Xr fsck_ffs 8
208.Fl E
209flag.
210.El
211.Pp
212At least one of these flags is required.
213.Sh FILES
214.Bl -tag -width ".Pa /etc/fstab"
215.It Pa /etc/fstab
216read this to determine the device file for a
217specified mount point.
218.El
219.Sh SEE ALSO
220.Xr fs 5 ,
221.Xr dumpfs 8 ,
222.Xr gjournal 8 ,
223.Xr growfs 8 ,
224.Xr newfs 8
225.Rs
226.%A M. McKusick
227.%A W. Joy
228.%A S. Leffler
229.%A R. Fabry
230.%T "A Fast File System for UNIX"
231.%J "ACM Transactions on Computer Systems 2"
232.%N 3
233.%P pp 181-197
234.%D August 1984
235.%O "(reprinted in the BSD System Manager's Manual, SMM:5)"
236.Re
237.Sh HISTORY
238The
239.Nm
240utility appeared in
241.Bx 4.2 .
242.Sh BUGS
243This utility does not work on active file systems.
244To change the root file system, the system must be rebooted
245after the file system is tuned.
246.\" Take this out and a Unix Daemon will dog your steps from now until
247.\" the time_t's wrap around.
248.Pp
249You can tune a file system, but you cannot tune a fish.
250