sys_attrs_vfs(5)sys_attrs_vfs(5)NAMEsys_attrs_vfs - system attributes for the vfs kernel subsystem
DESCRIPTION
This reference page describes system attributes for the Virtual File
System (vfs) kernel subsystem. See sys_attrs(5) for general guidelines
about changing system attributes.
Some subsystem attributes can be changed at run time. If so, the
attribute descriptions in the following subsections mention that fact.
To make it easy for you to locate these attributes when scanning lists,
an asterisk (*) also precedes the names of these attributes.
vfs Subsystem Attributes
Percentage of memory that the kernel wires for the metadata buf‐
fer cache.
Default value: 3 (percent) for 32-MB or larger systems; 2 (per‐
cent) for 24-MB systems
Minimum value: 0
Maximum value: 50
Increasing the value of the bufcache attribute can improve I/O
performance by providing more memory for caching UFS file system
data. Decreasing the value of the bufcache attribute can free
memory resources. For systems that cache only AdvFS file system
data, you may want to decrease the value to 1.
Size, in slots, of the hash chain table for the metadata buffer
cache. The hash chain table is used to store the heads of the
hashed buffer queues.
Default value: 2048 (slots)
Minimum value: 0
Maximum value: 524,287
A large hash chain table distributes the buffers and may make
chain lengths short. Increasing the size of the hash chain ta‐
ble can reduce linear searches and improve lookup speed.
The number of pages to reserve for UBC buffers.
Default value: Calculated from the value of the bufcache
attribute and system memory size.
Minimum value: 0
Maximum value: Varies, depending on how much memory the system
has.
The value of bufpages overrides the value of bufcache, which
sets the size of the metadata buffer cache as a percentage of
available memory (in whole numbers only) rather as a specific
number of pages. Normally, sizing the metadata buffer cache in
terms of a percentage rather than page count is appropriate.
However, if you want the size of this buffer cache to be between
0 and 1 percent of available memory, you must set the bufpages
value to the number of pages equal to that percentage. This sort
of setting is extreme and only feasible on very large memory
(VLM) systems.
A value that enables (1) or disables (0) the pipe code that
attempts to do batch writes to a pipe and deliver the data in a
single call to a reader.
Default value: 1 (enabled)
A value that allows (1) or prevents (0) the mkdir() system call
from creating a directory when the final element of the speci‐
fied path is a symbolic link.
Default value: 0 (disabled)
The default setting of this attribute corrects a mkdir() behav‐
ior change that was inadvertently introduced in Tru64 UNIX Ver‐
sion 5.0. In the event that any applications might have been
developed to depend on the incorrect behavior, setting fol‐
low_mkdir_symlinks to 1 will allow the applications to continue
to run; however, any applications dependent on the 1 setting
should be modified to remove this dependency as soon as possi‐
ble. The follow_mkdir_symlinks attribute will be removed in a
future release.
The maximum amount of time (in seconds) that an AdvFS fileset's
domain can remain frozen while the fileset is being snapped or
cloned. Freezing a multivolume domain (keeping its metadata sta‐
ble across all volumes) is required to secure a coherent snap‐
shot of a fileset.
Default value: 60 (seconds)
Minimum value: 0
Maximum value: 300
You can modify this attribute at run time. You can also override
the value of this attribute by using the -t option of the
freezefs command. See freezefs(8) for more information.
A value that determines whether maximizing UFS I/O throughput to
keep a device busy (within the constraints of the io_throt‐
tle_shift attribute) is enabled (1) or disabled (0). If
io_throttle_maxmzthruput is disabled, the availability of dirty
pages is maximized, which enables the operating system to
decrease the time spent waiting for dirty pages.
You may want to consider disabling io_throttle_maxmzthruput if
your I/O is limited to a small number of I/O-intensive applica‐
tions that access a specific set of pages. In this case, maxi‐
mizing the availability of dirty pages is more important than
keeping the I/O device busy. In addition, if you have an envi‐
ronment that cannot tolerate delays in accessing sets of fre‐
quently-used dirty pages, you may want to consider disabling
io_throttle_maxmzthruput.
Default value: 1 (enabled)
You can modify this attribute at run time.
A value that limits the maximum number of concurrent delayed UFS
I/O requests on an I/O device queue. The more requests on a
device queue, the more time is required to process those
requests and make those pages and the device available. The num‐
ber of concurrent delayed I/O requests on an I/O device queue
can be limited by setting the io_throttle_shift attribute. The
throttle value is based on this attribute and the calculated I/O
completion rate. The throttle value is proportional to the time
required to process the I/O device queue.
The relation between the value of the io_throttle_shift
attribute and the time it takes to process the device queue is
shown in the following table.
────────────────────────────────────────────────────────────────
Value of io_throttle_shift Time to Process Device Queue in
Seconds
────────────────────────────────────────────────────────────────
-4 .0625
-3 .125
-2 .25
-1 .50
0 1
1 2
2 4
3 8
4 16
────────────────────────────────────────────────────────────────
For example, if io_throttle_shift is 0 (zero), the queue of UFS
I/O requests requires approximately 1 second to process. Envi‐
ronments that cannot tolerate delays in accessing a device queue
may want to consider reducing the default value of the io_throt‐
tle_shift attribute.
Default value: 1
Minimum value: -4
Maximum value: 4
You can modify this attribute at run time.
A static limit on the number of asynchronous UFS I/O requests
that can be put on the device queue. The default value of 0
(zero) allows the operating system to determine the optimal
rate.
Default value: 0
Minimum value: 0
Maximum value: 4,294,967,295
You can modify this attribute at run time.
Obsolete attribute. The operating system no longer uses this
value.
Maximum number of NFS file system mounts. You can change the
value of the max_nfs_mounts attribute if you want to restrict
the number of file systems that can be mounted through NFS and
autofs. This attribute does not affect performance.
Default value: 0 (number of mounts is unlimited)
Minimum value: 0
Maximum value: 2,147,483,647
You can modify this attribute at run time.
Maximum number of UFS or MFS file system mounts. You can
increase the value of the max_ufs_mounts attribute if you want
to mount more than the default number of UFS or MFS file sys‐
tems. This attribute does not affect performance.
Default value: 1000 (file system mounts)
Minimum value: 0
Maximum value: 2,147,483,647
You can modify this attribute at run time.
Maximum number of vnodes (open files) on a system.
Default value: 1000 (for 24-MB systems); the number of vnodes
that 5 percent of available memory can contain (for 32-MB or
larger systems)
Minimum value: Specified by the nvnode attribute
Maximum value: The number of vnodes that 5 percent of physical
memory can contain
Increasing the value of the max_vnodes attribute allows more
vnodes on a system, which may improve performance if your appli‐
cations or users create a large number of open files. Decreasing
the value returns more memory to the system.
You can modify this attribute at run time. If you change the
default value at boot time, the 5 percent maximum no longer
applies.
Minimum number of free vnodes on the free list. If the number
of vnodes on the free list is less than the value of the
min_free_vnodes attribute, vnodes are deallocated.
Default value: nvnode attribute (for 32-MB or larger systems);
150 (for 24-MB systems)
Minimum value: 0
Maximum value: 1,717,986,918
Increasing the value causes the system to cache more free vnodes
and may improve performance for vnode cache lookup operations.
However, a large value increases the demand for memory.
You can modify this attribute at run time.
Number of slots in the hash chain table for the namei cache. The
number of elements in each slot of this table is fixed at 15, so
the namei cache size is 15 * name_cache_hash_size.
Default value: 2 * (148 + 10 * maxusers) * 11 / 10 / 15
Minimum value: 0
Maximum value: 524,287
Increasing the value of name_cache_hash_size may improve path‐
name lookup speeds for applications whose working set includes
more files than the namei cache can accommodate. Adding slots to
the hash chain table consumes more memory but reduces the number
of I/O operations required for pathname lookup. Reducing the
value of name_cache_hash_size frees memory by reducing the size
of the namei cache. See the System Configuration and Tuning
guide for information about gathering statistics that will help
you determine if the namei cache size is appropriate for your
system.
Amount of time, in seconds, that a namei cache entry can remain
in the cache before it is discarded.
Default value: 1200 (seconds) for 32-MB or larger systems; 30
(seconds) for 24-MB systems
Minimum value: 0
Maximum value: 2,147,483,647
A large namei-cache-valid-time attribute value will retain more
vnodes references in the namei cache and improve the namei
cache lookup speed; however, it will require more memory
resources. A small value may cause premature deallocation of
vnodes and degrade the namei cache lookup speed.
Maximum number of record locks that may be held by a process.
This limit prevents lock structures for any one process from
consuming too much kernel memory.
Default value: 10,000 (locks)
Minimum value: 1000
Maximum value: 100,000
You can modify this attribute at run time.
A value that enables (any positive value) or disables (0) the
ability of users to create new executables on the system. This
is an enhanced security feature that is used, for example, on
firewall systems. It does not affect performance. In a TruClus‐
ter environment, this attribute must have the same setting on
all cluster members. See the Security manual for more informa‐
tion about enhanced security features.
Default value: 0 (disabled)
Obsolete in that it does not determine the maximum and the mini‐
mum number of vnodes on a system. You should use the max_vnodes
and min_free_vnodes attributes to adjust these mininum and maxi‐
mum values.
Default value: nproc+(2*maxusers)+128
It is strongly recommended that you not change the default value
of nvnode. The value of nvnode depends by default on the value
of maxusers, and this dependency should be left alone. Although
the kernel uses the nvnode value to calculate the default value
of other attributes, you can change those attributes directly if
there is a need to override their defaults.
A value that enables (1) or disables (0) the ability of the
telldir(3) and seekdir(3) routines to work on Network File Sys‐
tem (NFS) mounts from certain NFS vendors. Enable this feature
if your programs require this specific requirement. Once
enabled, however, NFS directory accesses might be less effi‐
cient.
Default value: 0 (disabled)
Size, in number of zone elements, of the pathname zone for path‐
name lookup buffers. Increasing the value of path_num_max
increases the number of elements in the zone that is allocated
for pathnames.
Default value: 64 (zone elements)
Minimum value: 0
Maximum value: 2,147,483,647
Number of data bytes in each pipe data buffer.
Default value: 8192 (bytes)
Minimum value: 4096
Maximum value: 32,768
You can modify this attribute at run time.
Obsolete. This attribute is not used by any version of the
operating system software that is currently supported.
Maximum number of bytes buffered per pipe.
Default value: 262,144 (bytes)
Minimum value: 4096
Maximum value: 1,048,576
You can modify this attribute at run time.
A value that determines whether the revoke() system call can
invalidate file descriptors on block special devices. If
revoke_tty_only is set to 1 (the default), the revoke() argument
must be a character (tty) device, and a block device argument
results in an [ENOTTY] error. If revoke_tty_only is set to 0,
the revoke() argument can be either a character or a block
device.
Default value: 1 (character devices only)
You can modify this attribute at run time; however, the default
value is strongly recommended in a TruCluster environment. Sets
a time limit (in minutes) for attempting to mount the root file
system before the system panics. This attribute is most useful
in cases where the root file system is in a SAN network and
delays can occur when accessing it while booting.
Default value: 5 (minutes)
Minimum value: 1
Maximum value: 120
Sets the amount of time, in seconds, that modified (dirty) pages
can age before they must be written to disk.
Default value: 30 (seconds)
Minimum value: 0
Maximum value: 60
You can modify this attribute at run time.
Size (in number of hash-chain slots) of the special vnodes alias
table for vnodes of special device files, such as character-I/O
or block-I/O device files.
Default value: 64 (slots)
Minimum value: 0
Maximum value: 2,147,483,647
Increasing the size of the special vnodes alias table allows you
to create more special device files.
A value that enables (1) or disables (0) strict POSIX confor‐
mance to clearing dirty file status for O_SYNC operations.
Default value: 0 (disabled)
The default provides better performance. Strict conformance to
POSIX O_SYNC status flushing comes at a cost.
You can modify this attribute at run time.
Enables (1) or disables (0) System V behavior when setting the
group ID and file mode of created files and directories. By
default, the group ID of the file is set to the group ID of its
parent directory. See open(2) for more information.
Default value: 0 (disabled)
Obsolete attribute.
Default value: 256
Amount of time, in seconds, that a vnode can remain on the free
list before it is deallocated.
Default value: 120 (seconds) for 32-MB or larger systems; 2
(seconds) for 24-MB systems
Minimum value: 0
Maximum value: 2,147,483,647
You can increase the value of the vnode-age attribute to keep
vnodes on the free list longer, which increases the possibility
that the vnode will be successfully looked up.
You can modify this attribute at run time.
A value that enables (1) or disables (0) vnode deallocation.
Default value: 1 (enabled)
Enabling vnode deallocation decreases memory usage because it
returns to the system the memory allocated to vnodes. Reserves
a percentage of vnodes for use by root-owned processes.
Default value: 0 (disabled)
Increasing the value of vnode_restricted_percent sets a thresh‐
old number of vnodes based on the value of
vnode_restricted_percent and the value of max_vnodes. If the
number of free vnodes drops below this threshold number, only
root-owned processes would be able to allocate a new vnode.
SEE ALSO
Commands: dxkerneltuner(8), sysconfig(8), sysconfigdb(8)
Others: sys_attrs(5)
System Configuration and Tuning
sys_attrs_vfs(5)