test veritas logo


vxtune(1M)

NAME

vxtune - display and modify Veritas Volume Manager tunable parameters

SYNOPSIS

vxtune [-u {h|unit}] [-lr] [component_name|tunable_name]

vxtune [-C] tunable_name value

vxtune -o export file=file_name [component]

vxtune -o import file=file_name

vxtune -h|-H|help [components|tunables|tunable_name]

DESCRIPTION

The vxtune utility manages the tunable parameters that are used by Veritas Volume Manager (VxVM) and its components such as Volume Replicator (VVR) and Cluster Volume Manager (CVM). The vxtune utility manages the parameters that were previously managed with the vxdefault utility. This man page refers to these parameters as the defaults tunables.

VxVM classifies the tunables according to the component that uses the tunable. The component can be one of the following:

basevm core VxVM functionality.
cvm Cluster Volume Manager (CVM).
fmr FlashSnap (formerly known as Fast Mirror Resync).
vvr Volume Replicator (VVR).

See the section "Supported tunable parameters" for a complete list of parameters for each component.

When you use vxtune to change the value of a tunable parameter, the values are persistent. Some tunable parameters require a reboot of the system before the new values take effect. After the reboot, the values persist across subsequent reboots. If a reboot is not required, the tunable values are available immediately. The new values may not apply to commands that are already in progress.

The first form of the vxtune command displays the tunable parameters and their values. Specify a supported tunable parameter or component name to display a subset of the tunable parameters. If no argument is given, the command displays all of the tunable parameters. The output shows the tunable name, the current value, the default value, whether the tunable requires a reboot before a new value takes effect, and whether the tunable is clusterwide. When you specify the -l option, the output displays an additional column that includes a description of the tunable parameter along with the default unit. Use the -r option to display the values in bytes or the -u option to specify the display units.

The second form of the vxtune command sets the value for a tunable parameter. By default, the vxtune command only affects the tunable values on the host on which it is run, except for clusterwide tunable parameters. The clusterwide attribute indicates that the vxtune command sets the value for that tunable on all nodes in the cluster. If the tunable parameter is not clusterwide, you can use the -C option to change the tunable values on all nodes of the cluster. If the -C option is used on a standalone system, the operation fails.

The specified value can take the following prefixes as base specifiers:

0 Value is in octal.
0x Value is in hexadecimal.

The default is decimal.

The specified value can take the following suffixes as unit multipliers:

g or G Specifies gigabytes.
k or K Specifies kilobytes.
m or M Specifies megabytes.

The default unit depends on the tunable parameter. Refer to the command output for details.

The third form of the command exports the tunable parameters to the specified file. Optionally, specify a component to export the subset of tunable parameters related to that component, except the defaults tunables. By default, the command exports all of the tunable parameters, except the defaults tunables.

The fourth form of the command imports the tunable parameters from the specified file. The file must have the format that the export operation created. Defaults tunables, if specified in the import file, will not be imported.

The fifth form of the command provides help on the command.

Note: Master and Slave words are going to be deprecated in upcoming releases. We will refer to them using Primary and Secondary words respectively.

KEYWORDS

-o import
  Imports the tunable paramaters from the specified file. The file must have the format that the export operation created. Defaults tunables, if specified in the import file, will not be imported.
-o export
  Exports the tunable parameters to the specified file. Optionally, specify a component to export the subset of tunable parameters related to that component. By default, the command exports all of the tunable parameters, except the defaults tunables.

OPTIONS

The following options are available:
-C Sets the tunable value on all nodes in the cluster. The -C option is not required if the tunable parameter is clusterwide. -l Specifies long output, which includes a description of the tunable along with the default unit.
-u Specifies that the values display with human-friendly units.
-r Specifies that the values display in bytes (raw). This option is supported for backwards compatibility.

Supported Tunable Parameters

The values of the following tunables may be displayed or set with the vxtune command.

The following tunable parameters apply for core Veritas Volume Manager (VxVM):

vol_checkpt_default
  The interval at which utilities performing recoveries or resynchronization operations load the current offset into the kernel as a checkpoint. A system failure during such operations does not require a full recovery, but can continue from the last reached checkpoint. The default value is 20480 sectors (10MB). Increasing this size reduces the overhead of checkpoints on recovery operations at the expense of additional recovery following a system failure during a recovery.
vol_default_iodelay
  The count in clock ticks for which utilities pause if they have been directed to reduce the frequency of issuing I/O requests, but have not been given a specific delay time. This tunable is used by utilities performing operations such as resynchronizing mirrors or rebuilding RAID-5 columns.
The default value is 50 ticks.
Increasing this value results in slower recovery operations and consequently lower system impact while recoveries are being performed.
vol_ioship_stats_enable
  Enables or disables the collection of extended I/O statistics for remote disks. The default value is 0, which indicates that the remote statistics collection is disabled.
vol_max_adminio_poolsz
  The maximum size of the memory pool that is used for administrative I/O operations. VxVM uses this pool when throttling administrative I/O. The default value is 64MB. The maximum size must not be greater than the value of the voliomem_maxpool_sz parameter.
vol_maxio
  The maximum size of logical I/O operations that can be performed without breaking up the request. I/O requests to VxVM that are larger than this value are broken up and performed synchronously. Physical I/O requests are broken up based on the capabilities of the disk device and are unaffected by changes to this maximum logical request limit. The default value is 2048 sectors (1MB). The value of voliomem_maxpool_sz must be at least 10 times greater than the value of vol_maxio.
If DRL sequential logging is configured, the value of voldrl_min_regionsz must be set to at least half the value of vol_maxio. Specify the value in sectors.
The maximum limit of vol_maxio is 20% of the smaller of physical memory or kernel virtual memory. It is inadvisable to go over this limit.
vol_maxioctl
  The maximum size of data that can be passed into VxVM via an ioctl call. Increasing this limit allows larger operations to be performed. Decreasing the limit is not generally recommended, because some utilities depend upon performing operations of a certain size and can fail unexpectedly if they issue oversized ioctl requests.
The default value is 32768 bytes (32KB).
vol_maxparallelio
  The number of I/O operations that the vxconfigd daemon is permitted to request from the kernel in a single ioctl call. The default value is 256. This value should not be changed.
vol_maxspecialio
  The maximum size of an I/O request that can be issued by an ioctl call. Although the ioctl request itself can be small, it can request a large I/O request be performed. This tunable limits the size of these I/O requests. If necessary, a request that exceeds this value can be failed, or the request can be broken up and performed synchronously. The default value is 2048 sectors.
Raising this limit can cause difficulties if the size of an I/O request causes the process to take more memory or kernel virtual mapping space than exists and thus deadlock. The maximum limit for this tunable is 20% of the smaller of physical memory or kernel virtual memory. It is inadvisable to go over this limit, because deadlock is likely to occur.
If stripes are larger than the value of this tunable, full stripe I/O requests are broken up, which prevents full-stripe read/writes. This throttles the volume I/O throughput for sequential I/O or larger I/O requests.
This tunable limits the size of an I/O request at a higher level in VxVM than the level of an individual disk. For example, for an 8 by 64KB stripe, a value of 256KB only allows I/O requests that use half the disks in the stripe; thus, it cuts potential throughput in half. If you have more columns or you have used a larger interleave factor, then your relative performance is worse.
This tunable must be set, as a minimum, to the size of your largest stripe (RAID-0 or RAID-5).
vol_stats_enable
  Enables or disables the I/O stat collection for Veritas Volume Manager objects. The default value is 1, since this functionality is enabled by default.
vol_subdisk_num
  The maximum number of subdisks that can be attached to a single plex. The default value of this tunable is 4096.
voliomem_chunk_size
  The granularity of memory chunks used by VxVM when allocating or releasing system memory. A larger granularity reduces CPU overhead due to memory allocation by allowing VxVM to retain hold of a larger amount of memory.
The value of this tunable parameter depends on the page size of the system. You cannot specify a value larger than the default value. If you change the value, VxVM aligns the values to the page size when the system reboots. The default value is 32KB for 512 Byte page size.
voliomem_maxpool_sz
  The maximum memory requested from the system by VxVM for internal purposes. This tunable has a direct impact on the performance of VxVM as it prevents one I/O operation from using all the memory in the system. VxVM allocates two pools that can grow up to this size, one for RAID-5 and one for mirrored volumes. Additional pools are allocated if instant (Copy On Write) snapshots are present.
A write request to a RAID-5 volume that is greater than one fourth of the pool size is broken up and performed in chunks of one tenth of the pool size. A write request to a mirrored volume that is greater than the pool size is broken up and performed in chunks of the pool size. The default value is 134217728 (128MB)
The value of voliomem_maxpool_sz must be greater than the value of volraid_minpool_size. The value of voliomem_maxpool_sz must be at least 10 times greater than the value of vol_maxio.
voliot_errbuf_dflt
  The default size of the buffer maintained for error tracing events. This buffer is allocated at driver load time and is not adjustable for size while VxVM is running.
The default value is 16384 bytes (16KB).
Increasing this buffer can provide storage for more error events at the expense of system memory. Decreasing the size of the buffer can result in an error not being detected via the tracing device. Applications that depend on error tracing to
perform some responsive action are dependent on this buffer.
voliot_iobuf_default
  The default size for the creation of a tracing buffer in the absence of any other specification of desired kernel buffer size as part of the trace ioctl. The default value is 8192 bytes (8KB). If trace data is often being lost due to this buffer size being too small, then increase this value.
voliot_iobuf_limit
  The upper limit to the size of memory that can be used for storing tracing buffers in the kernel. Tracing buffers are used by the VxVM kernel to store the tracing event records. As trace buffers are requested to be stored in the kernel, the memory for them is drawn from this pool.
Increasing this size can allow additional tracing to be performed at the expense of system memory usage. Setting this value to a size greater than can readily be accommodated on the system is inadvisable. The default value is 131072 bytes (128KB).
voliot_iobuf_max
  The maximum buffer size that can be used for a single trace buffer. Requests of a buffer larger than this size are silently truncated to this size. A request for a maximal buffer size from the tracing interface results (subject to limits of usage) in a buffer of this size. The default value is 65536 bytes (64KB). Increasing this buffer can provide for larger traces to be taken without loss for very heavily used volumes.
Do not increase this value above the value for the voliot_iobuf_limit tunable value.
voliot_max_open
  The maximum number of tracing channels that can be open simultaneously. Tracing channels are clone entry points into the tracing device driver. Each vxtrace process running on a system consumes a single trace channel.
The default number of channels is 32.
The allocation of each channel takes up approximately 20 bytes even when the channel is not in use.
volraid_rsrtransmax
  The maximum number of transient reconstruct operations that can be performed in parallel for RAID-5. A transient reconstruct operation is one that occurs on a non-degraded RAID-5 volume that has not been predicted. Limiting the number of these operations that can occur simultaneously removes the possibility of flooding the system with many reconstruct operations, and so reduces the risk of causing memory starvation.
The default value is 1.
Increasing this size improves the initial performance on the system when a failure first occurs and before a detach of a failing object is performed, but can lead to memory starvation.
autostartvolumes
  Turns on or off the automatic volume recovery. When set to on, VxVM automatically recovers and starts disabled volumes when you import, join, move, or split a disk group. When set to off, turns off this behavior. The default value is on.
fssmartmovethreshold
  The threshold for an individual file system, in percentage full. After this threshold is reached, the SmartMove feature is not used. The default value is 100.
reclaim_on_delete_start_time
  The time of day when the reclamation begins on a thin LUN, after a volume using that LUN is deleted. Specified in 24 hour time (HH:MM). The default value is 22:10.
reclaim_on_delete_wait_period
  The number of days to wait before starting to reclaim space on a thin LUN, after a volume using that LUN is deleted. Specified as an integer from -1 to 366, where -1 specifies immediately and 366 specifies never. The default value is 1.
usefssmartmove
  The state of the SmartMove feature. Valid values are:
thinonly - use for Thin disks only.
all - use for all disks.
none - turn off the SmartMove feature.
The default value is all.

The following tunable parameters apply for Cluster Volume Manager (CVM):

autoreminor
  Turns on or off the automatic reminor functionality. A disk group cannot be imported if the device minor numbers of the disk group or its objects conflict with those of an existing disk group. When autoreminor is on, VxVM automatically assigns new minor numbers to a disk group if VxVM detects a conflict during an import operation. The disk group is then imported. The default value is on.
Note: VxVM does not reminor a disk group that is already imported, regardless of whether autoreminor is set to on. For example, if you attempt to add a node to a cluster and the joining node has minor numbers that conflict with a disk group in the cluster. In this case, the join operation fails. You must reminor the disk group manually.
In some scenarios such as with NFS file systems, assigning new minor numbers may result in issues. In this case, set the tunable parameter to off. When the autoreminor parameter is set to off, attempting to import a disk group with conflicting minor numbers will fail, even when you specify the force (-f) option. You must manually reminor the disk group before you can import the disk group.
same_key_for_alldgs
  By default, CVM generates a unique fence key for each of the shared disk groups in the cluster. Some storage arrays have an upper limit on the number of unique keys that can be registered. When persistent reservation is used, CVM might reach the limit.
When this tunable is set to on, CVM generates the same key for shared disk groups that it creates or imports. Disk groups that are already imported when the tunable is set must be deported and re-imported before the changed value of the tunable takes effect.
The default value is off.
sharedminorstart
  The starting number in the range used to assign device minor numbers in shared (CVM) disk groups. The default value is 33000.
storage_connectivity
  A clusterwide tunable parameter that indicates the CVM tolerance to storage disconnectivity. When the value is resilient, CVM requires that a node must have access to all of the disks in a shared disk group before the node can join the CVM cluster. The connectivity is also required before a shared disk group can be imported.
When the value is asymmetric (the default), CVM enables a node to join the cluster as long as the node has access to all of the disks through another node. Similarly, as long as at least one node can access the disks in a shared disk group, CVM can import the shared disk group.
With either setting, CVM handles access to the disk group configuration as long as at least one node has access to the disk group configuration.
storage_reloc_timeout
  Specifies the time interval in minutes after which VxVM initiates hot-relocation when device fails. The default value is 30 minutes
node_reloc_timeout
  Specifies the time interval in minutes after which VxVM initiates hot-relocation when a node fails. The default value is 30 minutes
You can modify values of tunables node_reloc_timeout & storage_reloc_timeout to suit your business needs. VxVM does not differentiate between disk media and node failures. As a result, both tunables will have the same value. For example, if you set the value of the storage_reloc_timeout tunable to 15, then VxVM will set the value of the node_reloc_timeout tunable also to 15. Similarly, if you set the node_reloc_timeout tunable to a specific value, VxVM sets the same value for the storage_reloc_timeout tunable.

The following tunable parameters apply for FlashSnap (FMR):

vol_fmr_logsz
  The maximum size in kilobytes of the bitmap that Non-Persistent FastResync uses to track changed blocks in a volume. The number of blocks in a volume that are mapped to each bit in the bitmap depends on the size of the volume, and this value changes if the size of the volume is changed.
The default value is 4KB. The maximum and minimum permitted values are 1KB and 8KB.
Specify a value as a number between 1 and 8. Do not specify a unit. VxVM interprets the specified value as Kilobytes and converts the value accordingly (multiplies it by 1024).
For example, if the volume size is 1 gigabyte and the system block size is 512 bytes, a value for this tunable of 4 yields a map that contains 16,384 bits, each bit representing one region of 128 blocks.
The larger the bitmap size, the fewer the number of blocks that are mapped to each bit. This can reduce the amount of reading and writing required on resynchronization, at the expense of requiring more non-pageable kernel memory for the bitmap. Additionally, on clustered systems, a larger bitmap size increases the latency in I/O performance, and it also increases the load on the private network between the cluster members. This is because every other member of the cluster must be informed each time a bit in the map is marked. Since the region size must be the same on all nodes in a cluster for a shared volume, the value of this tunable on the Primary node overrides the tunable values on the Secondary nodes, if these values are different. Because the value of a shared volume can change, the value of this tunable is retained for the life of the volume.
In configurations which have thousands of mirrors with attached snapshot plexes, the total memory overhead can represent a significantly higher overhead in memory consumption than is usual for VxVM. The value of this tunable does not have any effect on Persistent FastResync.
voldrl_dirty_regions
  This parameter applies to enhanced DCO layout (version 30) only. Represents the number of dirty regions to cache before another write to the same region causes a DRL update. A smaller number results in more frequent updates to the DRL, which decreases performance. A larger number results in better I/O performance, but requires that the DRL uses more memory. The default value is 1024.
voldrl_max_drtregs
  The maximum number of dirty regions that can exist on the system for non-sequential DRL on volumes. A larger value may result in improved system performance at the expense of recovery time. This tunable can be used to regulate the worse-case recovery time for the system following a failure. The default value is 2048.
voldrl_max_seq_dirty
  The maximum number of dirty regions allowed for sequential DRL. This is useful for volumes that are usually written to sequentially, such as database logs. Limiting the number of dirty regions allows for faster recovery if a crash occurs. The default value is 3.
voldrl_min_regionsz
  The minimum number of sectors for a dirty region logging (DRL) volume region. With DRL, VxVM logically divides a volume into a set of consecutive regions. Larger region sizes tend to cause the cache hit-ratio for regions to improve. This improves the write performance, but it also prolongs the recovery time. The default value is 1024 sectors. If DRL sequential logging is configured, the value of voldrl_min_regionsz must be set to at least half the value of vol_maxio.
voldrl_volumemax_drtregs
  Maximum per-volume limit on dirty regions for a mirrored volume using traditional DRL. For heavily-used volumes, increase the value of this parameter to improve performance. The default value is 256.
voldrl_volumemax_drtregs_20
  Maximum per-volume limit on dirty regions for a mirrored volume using version 20 DCO. For heavily-used volumes, increase the value of this parameter to improve performance. The default value is 1024.
volpagemod_max_memsz
  The amount of memory, measured in kilobytes, that is allocated for caching FastResync and cache object metadata. This default value is 6144KB (6MB). The valid range for this tunable is from 0 to 50% of physical memory. The memory allocated for this cache is exclusively dedicated to it. It is not available for other processes or applications.
Setting the value below 512KB fails if cache objects or volumes that have been prepared for instant snapshot operations are present on the system.
If you do not use the FastResync or DRL features that are implemented using a version 20 DCO volume, the value can be set to 0. However, if you subsequently decide to enable these features, you can use the vxtune command to change the value to a more appropriate one.
VxVM interprets the specified value as Kilobytes and converts the value accordingly (multiplies it by 1024). Specify a value appropriately to achieve the desired size.
The required size for this tunable paramater is determined by the region size and the number of volumes for which space-optimized instant snapshots are taken:

size_in_KB = 6 * (total_volume_size_in_GB) * (64/region_size_in_KB)


For example, a single 1TB volume requires around 6MB of paging memory if the region size is 64KB. If there were 10 such volumes, 60MB of paging memory would be required.

The following tunable parameters apply to the Volume Replicator (VVR) component:

vol_cmpres_enabled
  A clusterwide tunable parameter that enables or disables compression globally. The default value is 0, since compression is disabled by default.
vol_cmpres_threads
  A per-system tunable that lets you set the number of compression threads on the Primary host or the number of decompression threads on the Secondary host between 1 and 64. The default value is 10. You can tune this setting dependent on your CPU usage.
vol_max_nmpool_sz
  The amount of buffer space available for requests coming in to the Secondary over the network. The default value is 128 MB.
vol_max_rdback_sz
  The amount of buffer space available for readbacks. The default value is 128MB.
vol_max_wrspool_sz
  The write ship buffer space, which is the amount of buffer space that can be allocated on the logowner to receive writes sent by the non-logowner. The default value is 64MB.
vol_min_lowmem_sz
  The minimum buffer space. VVR frees the write if the amount of buffer space available is below this threshold. The default value is 32 MB. This value is auto-tunable. The value that you specify is used as an initial value and could change depending on the application write behavior.
vol_nm_hb_timeout
  The heartbeat timeout value. The default value is 10 seconds.
vol_rvio_maxpool_sz
  The amount of buffer space that can be allocated within the operating system to handle incoming writes. The default value is 128MB.

EXAMPLES

Display the tunable parameters that vxtune supports:

vxtune

Display the tunable parameters for the component VVR:


vxtune vvr

Display the value of vol_min_lowmem_sz on a host:


vxtune vol_min_lowmem_sz

Modify the value of vol_min_lowmem_sz to 2 megabytes on a host:


vxtune vol_min_lowmem_sz 2M

Modify the value of vol_stats_enable to 0 for all nodes in the cluster:


vxtune -C vol_stats_enable 0

EXIT CODES

The vxtune utility exits with a non-zero status if the attempted operation fails.

A non-zero exit code is not a complete indicator of the problems encountered but denotes the first condition that prevented further execution of the utility.

FILES

/etc/default/vxsf
  Tunables file used by vxtune to adjust any defaults tunable values and make them persistent.
/etc/vx/vxtunables
  Tunables file used by vxtune to adjust any tunable value and make it persistent. This file is maintained for every change that is made by vxtune.

NOTES

The changes made to the vxtunables file are effective only after reboot.

Do not delete the /etc/vx/vxtunables file.

The following is the list of defaults tunables: autostartvolumes, fssmartmovethreshold, reclaim_on_delete_start_time, reclaim_on_delete_wait_period, same_key_for_alldgs, sharedminorstart, usefssmartmove.

SEE ALSO

vrport(1M), vxmemstat(1M), vxsnap(1M)

Veritas InfoScaleā„¢ Replication Administrator’s Guide
Storage Foundation Cluster File System High Availability Administrator’s Guide


VxVM 7.3.1 vxtune(1M)