Symantec logo

Configuring the I/O throttling mechanism

By default, I/O throttling is turned on for all paths with DMP configured to wait for a maximum of 10 seconds for outstanding I/O requests to succeed. To display the current settings for I/O throttling that are applied to the paths to an enclosure, array name or array type, use the vxdmpadm getattr command:

# vxdmpadm getattr \

  {enclosure enc-name|arrayname name|arraytype type}\

  recoveryoption

See "Displaying recovery option values" on page 170.

The following example displays the I/O throttling setting for the paths to the enclosure enc0:

# vxdmpadm getattr enclosure enc0 recoveryoption

If enabled, I/O throttling imposes a small overhead on CPU and memory usage because of the activity of the statistics-gathering daemon. If I/O throttling is disabled, the daemon no longer collects statistics, and remains inactive until I/O throttling is re-enabled.

To turn off I/O throttling, use the following form of the vxdmpadm setattr command:

# vxdmpadm setattr \

  {enclosure enc-name|arrayname name|arraytype type}\

  recoveryoption=nothrottle

The following example shows how to disable I/O throttling for the paths to the enclosure enc0:

# vxdmpadm setattr enclosure enc0 recoveryoption=nothrottle

The vxdmpadm setattr command can be used to enable I/O throttling on the paths to a specified enclosure, disk array name, or type of array:

# vxdmpadm setattr \

  {enclosure enc-name|arrayname name|arraytype type}\

  recoveryoption=throttle {iotimeout=seconds|queuedepth=n}

If the iotimeout attribute is specified, its argument specifies the time in seconds that DMP waits for an outstanding I/O request to succeed before invoking I/O throttling on the path. The default value of iotimeout is 10 seconds. Setting iotimeout to a larger value potentially causes more I/O requests to become queued up in the SCSI driver before I/O throttling is invoked.

If the queuedepth attribute is specified, its argument specifies the number of I/O requests that can be outstanding on a path before DMP invokes I/O throttling. The default value of queuedepth is 20. Setting queuedepth to a larger value allows more I/O requests to become queued up in the SCSI driver before I/O throttling is invoked.


  Note   The iotimeout and queuedepth attributes are mutually exclusive.


The following example sets the value of iotimeout to 60 seconds for the enclosure enc0:

# vxdmpadm setattr enclosure enc0 recoveryoption=throttle \

  iotimeout=60

The next example sets the value of queuedepth to 30 for the paths to all Active/Active arrays:

# vxdmpadm setattr arraytype A/A recoveryoption=throttle \

  queuedepth=30

Specifying recoveryoption=default resets I/O throttling to the default settings corresponding to recoveryoption=throttle iotimeout=10, for example:

# vxdmpadm setattr arraytype A/A recoveryoption=default

This command also has the effect of configuring a fixed-retry limit of 5 on the paths.

See "Configuring the response to I/O failures" on page 167.


  Note   The I/O throttling settings are persistent across reboots of the system.