 |
Index for Section 5 |
|
 |
Alphabetical listing for S |
|
 |
Bottom of page |
|
sys_attrs_vfs(5)
NAME
sys_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
bufcache
Percentage of memory that the kernel wires for the metadata buffer
cache.
Default value: 3 (percent) for 32-MB or larger systems; 2 (percent) 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.
buffer_hash_size
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 table can reduce
linear searches and improve lookup speed.
bufpages
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.
fifo_do_adaptive
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)
* follow_mkdir_symlinks
A value that allows (1) or prevents (0) the mkdir() system call from
creating a directory when the final element of the specified path is a
symbolic link.
Default value: 0 (disabled)
The default setting of this attribute corrects a mkdir() behavior
change that was inadvertently introduced in Tru64 UNIX Version 5.0. In
the event that any applications might have been developed to depend on
the incorrect behavior, setting follow_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 possible. The follow_mkdir_symlinks attribute will be
removed in a future release.
* freezefs_default_timeout
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 stable across all
volumes) is required to secure a coherent snapshot 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.
* io_throttle_maxmzthruput
A value that determines whether maximizing UFS I/O throughput to keep a
device busy (within the constraints of the io_throttle_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 applications that access
a specific set of pages. In this case, maximizing the availability of
dirty pages is more important than keeping the I/O device busy. In
addition, if you have an environment that cannot tolerate delays in
accessing sets of frequently-used dirty pages, you may want to consider
disabling io_throttle_maxmzthruput.
Default value: 1 (enabled)
You can modify this attribute at run time.
* io_throttle_shift
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 number 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. Environments
that cannot tolerate delays in accessing a device queue may want to
consider reducing the default value of the io_throttle_shift attribute.
Default value: 1
Minimum value: -4
Maximum value: 4
You can modify this attribute at run time.
* io_throttle_static
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.
* max_free_file_structures
Obsolete attribute. The operating system no longer uses this value.
* max_nfs_mounts
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.
* max_ufs_mounts
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 systems. 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.
* max_vnodes
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 applications 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.
* min_free_vnodes
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.
name_cache_hash_size
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 pathname
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.
namei_cache_valid_time
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.
* nlock_record
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.
noadd_exec_access
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 TruCluster environment, this
attribute must have the same setting on all cluster members. See the
Security manual for more information about enhanced security features.
Default value: 0 (disabled)
nvnode
Obsolete in that it does not determine the maximum and the minimum
number of vnodes on a system. You should use the max_vnodes and
min_free_vnodes attributes to adjust these mininum and maximum 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.
pad_dirent
A value that enables (1) or disables (0) the ability of the telldir(3)
and seekdir(3) routines to work on Network File System (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 efficient.
Default value: 0 (disabled)
path_num_max
Size, in number of zone elements, of the pathname zone for pathname
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
* pipe_databuf_size
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.
pipe_max_bytes_all_pipes
Obsolete. This attribute is not used by any version of the operating
system software that is currently supported.
* pipe_maxbuf_size
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.
* revoke_tty_only
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.
* smoothsync_age
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.
special_vnode_alias_tbl_size
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.
* strict_posix_osync
A value that enables (1) or disables (0) strict POSIX conformance 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.
sys_v_mode
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)
ucred_max
Obsolete attribute.
Default value: 256
* vnode_age
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.
vnode_deallocation_enable
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.
SEE ALSO
Commands: dxkerneltuner(8), sysconfig(8), sysconfigdb(8)
Others: sys_attrs(5)
System Configuration and Tuning
 |
Index for Section 5 |
|
 |
Alphabetical listing for S |
|
 |
Top of page |
|