defragment - Makes the files in a file domain more contiguous
/usr/sbin/defragment [-e] [-n] [-N threads] [-t time] [-T
time] [-v] [-V] domain
Ignores errors and continues, if possible. Errors that are
ignored are usually related to a specific file. Specifies
the number of threads to run on the utility. The default
number of threads that will be run is the number of volumes
in the domain. The maximum number you can specify
for the number of threads is 20. Prevents defragmentation
from actually taking place. Use in conjunction with the -v
option to display statistics on the number of extents in
the file domain. Specifies a flexible time interval (in
minutes) for the defragment utility to run. If the utility
is performing an operation when the specified time has
elapsed, the procedure continues until the operation is
complete. Specifies an exact time interval (in minutes)
for the defragment utility to run. When the specified time
has elapsed, the defragmentation procedure stops, even if
it is performing an operation. Displays statistics on the
amount of fragmentation in the file domain and information
on the progress of the defragment procedure. Displays the
same information provided by the -v option along with
information about each operation the defragment utility
performs on each file. This option slows the defragment
procedure.
Specifies the name of the file domain.
When a file consists of many discontiguous file extents,
the file is fragmented on the disk. File fragmentation
reduces the read/write performance because more I/O operations
are required to access a fragmented file.
The defragment utility attempts to reduce the number of
file extents in a file domain by making files more contiguous.
Defragmenting a file domain often makes the free
space on a disk more contiguous, resulting in less fragmented
file allocations in the future.
Before you can defragment a file domain, all filesets in
the file domain must be mounted. If you try to defragment
an active file domain that includes unmounted filesets,
the system displays an error message indicating that a
fileset is unmounted.
To determine the amount of file fragmentation in a file
domain, run the defragment command with the -v and -n
options. This provides the fragmentation information without
starting the defragmentation process. Run defragment
with the -v and -n options again to see the improvement.
Before running the defragment utility, delete any files in
the domain that you do not need. This gives the defragment
utility more free space to use, which produces better
results. Deleting files afterwards creates only more
free-space fragments. It is also a good idea to run the
balance utility on the domain before you run the defragment
utility in order to balance domain free space before
defragmenting the domain files.
To monitor the improvement made to the file domain by the
defragment utility, use the verbose mode option, -v, which
displays the following information: Extents
The number of extents in the specified domain.
(Contiguous extents in sparse files are counted as
one extent after defragmentation, when in fact
there are several contiguous file extents.) Files
w/ extents
The number of files that have extents. (Note that
files do not have extents if the files are less
than 7 Kilobytes.) Avg exts per file w/ exts
The average number of extents for each file that
has one or more extents. Aggregate I/O perf
The efficiency of the entire file domain. An
increase in value indicates improvement. Free
space fragments
The number of free-space fragments in the domain.
The defragment utility requires a minimum of 1 percent of
the total space, or 5 megabytes per volume (whichever is
less) to defragment that volume.
You must be the root user to use this utility.
You cannot run the defragment utility while the addvol,
balance, defragment, rmfset, or rmvol utility is running
on the same file domain.
If the vfast utility is activated and defragment, balance,
or topIObalance are enabled on that domain, then the standard
AdvFS balance and defragment utilities are not available.
Running the defragment -nv command on a domain with a
large amount of metadata can cause it to fail. To prevent
this from happening, double the size of per_proc_data_size
with the sysconfig command or specify the doubled value
in the /etc/sysconfigtab file.
The following example defragments the file domain called
accounts_dmn. A flexible time limit of 15 minutes is
imposed and verbose mode is requested to display the fragmentation
data: # defragment -v -t 15 accounts_dmn
defragment: defragmenting domain 'accounts_dmn'
Pass 1; Clearing
Volume 1: area at block 11680 ( 103072 blocks): 81%
full
Domain data as of the start of this pass:
Extents: 10432
Files w/extents: 4305
Avg exts per file w/exts: 2.42
Aggregate I/O perf: 52%
Free space fragments: 2743
<100K <1M <10M >10M
Free space: 38% 0% 0% 62%
Fragments: 2742 0 0 1
Filling . . . Pass 13; Clearing
Volume 1: area at block 559744 ( 62736 blocks): 0%
full
Volume 2: area at block 76640 ( 24624 blocks): 18%
full
Domain data as of the start of this pass:
Extents: 4306
Files w/extents: 4305
Avg exts per file w/exts: 1.00
Aggregate I/O perf: 100%
Free space fragments: 23
<100K <1M <10M >10M
Free space: 0% 9% 27% 64%
Fragments: 6 10 5 2
Filling
Current domain data:
Extents: 4305
Files w/extents: 4305
Avg exts per file w/exts: 1.00
Aggregate I/O perf: 100%
Free space fragments: 17
<100K <1M <10M >10M
Free space: 0% 6% 29% 65%
Fragments: 3 8 4 2
defragment: defragmented domain 'accounts_dmn'
The information displayed before each pass and at the conclusion
of the defragmentation process shows the improvement
made to the file domain by the defragment utility.
Commands: addvol(8), balance(8), rmvol(8), vfast(8)
defragment(8)
[ Back ] |