tunedasd - Adjust low-level DASD settings

Red Hat Enterprise Linux 8.6 LPAR mode z/VM guest KVM guest

Use the tunedasd command to adjust performance relevant settings and other low-level DASD device settings.

In particular, you can perform these tasks:
  • Query and set a DASD's cache mode
  • Display and reset DASD performance statistics
  • Reserve and release DASD
  • Break the lock of an online DASD
Before you begin: For the performance statistics, data gathering must be turned on by writing on to /proc/dasd/statistics.

tunedasd syntax

Read syntax diagramSkip visual syntax diagramtunedasd  -g -c <mode>-n-Q -S -L -O -R -P-I  <row>-p  <chpid>--path_reset_all <node>
Where:
<node>
specifies a device node for the DASD to which the command is to be applied.
-g or --get_cache
gets the current caching mode of the storage controller. This option applies to ECKD only.
-c <mode> or --cache <mode>
sets the caching mode on the storage controller to <mode>. This option applies to ECKD only.
Today's ECKD devices support the following behaviors:
normal
for normal cache replacement.
bypass
to bypass cache.
inhibit
to inhibit cache.
sequential
for sequential access.
prestage
for sequential prestage.
record
for record access.

For details, see IBM® TotalStorage™ Enterprise Storage Server® System/390® Command Reference 2105 Models E10, E20, F10, and F20, SC26-7295.

-n <cylinders> or --no_cyl <cylinders>
specifies the number of cylinders to be cached. This option applies to ECKD only.
-Q or --query_reserve
queries the reserve status of the device. The status can be:
none
the device is not reserved.
implicit
the device is not reserved, but there is a contingent or implicit allegiance to this Linux® instance.
other
the device is reserved to another operating system instance.
reserved
the device is reserved to this Linux instance.
For details, see the Storage Control Reference of the attached storage server.

This option applies to ECKD only.

-S or --reserve
reserves the device. This option applies to ECKD only.
-L or --release
releases the device. This option applies to ECKD only.
-O or --slock
reserves the device unconditionally. This option applies to ECKD only.
Note: This option is to be used with care as it breaks any existing reserve by another operating system.
-R or --reset_prof
resets the profile information of the device.
-P or --profile
displays a usage profile of the device.
-I <row> or --prof_item <row>
prints the usage profile item that is specified by <row>. <row> can be one of:
reqs
number of DASD I/O requests.
sects
number of 512-byte sectors.
sizes
histogram of sizes.
total
histogram of I/O times.
totsect
histogram of I/O times per sector.
start
histogram of I/O time until ssch.
irq
histogram of I/O time between ssch and irq.
irqsect
histogram of I/O time between ssch and irq per sector.
end
histogram of I/O time between irq and end.
queue
number of requests in the DASD internal request queue at enqueueing.
-p <chpid> or --path_reset <chpid>
resets a channel path <chpid> of a selected device. A channel path might be suspended due to high IFCC error rates or a High Performance FICON failure. Use this option to resume considering the channel path for I/O.
--path_reset_all
resets all channel paths of a selected device. The channel paths might be suspended due to high IFCC error rates or a High Performance FICON failure. Use this option to resume considering all defined channel paths for I/O.
-v or --version
displays version information.
-h or --help
displays help information.

Examples

  • The following sequence of commands first checks the reservation status of a DASD and then reserves it:
    # tunedasd -Q /dev/dasdzzz
    none
    # tunedasd -S /dev/dasdzzz
    Reserving device </dev/dasdzzz>...
    Done.
    # tunedasd -Q /dev/dasdzzz
    reserved
  • This example first queries the current setting for the cache mode of a DASD with device node /dev/dasdzzz and then sets it to one cylinder prestage.
    # tunedasd -g /dev/dasdzzz
    normal (0 cyl)
    # tunedasd -c prestage -n 2 /dev/dasdzzz
    Setting cache mode for device </devdasdzzz>...
    Done.
    # tunedasd -g /dev/dasdzzz
    prestage (2 cyl)
  • In this example two device nodes are specified. The output is printed for each node in the order in which the nodes where specified.
    # tunedasd -g /dev/dasdzzz /dev/dasdzzy
    prestage (2 cyl)
    normal (0 cyl)
  • The following command prints the usage profile of a DASD.
    # tunedasd -P /dev/dasdzzz
    
    19617 dasd I/O requests
    with 4841336 sectors(512B each)
    
       __<4    ___8    __16    __32    __64    _128    _256    _512    __1k    __2k    __4k    __8k    _16k    _32k    _64k    128k
       _256    _512    __1M    __2M    __4M    __8M    _16M    _32M    _64M    128M    256M    512M    __1G    __2G    __4G    _>4G
    Histogram of sizes (512B secs)
          0       0     441      77      78      87     188   18746       0       0       0       0       0       0       0       0
          0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
    Histogram of I/O times (microseconds)
          0       0       0       0       0       0       0       0     235     150     297   18683     241       3       4       4
          0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
    Histogram of I/O times per sector
          0       0       0   18736     333     278      94      78      97       1       0       0       0       0       0       0
          0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
    Histogram of I/O time till ssch
      19234      40      32       0       2       0       0       3      40      53     128      85       0       0       0       0
          0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
    Histogram of I/O time between ssch and irq
          0       0       0       0       0       0       0       0     387     208     250   18538     223       3       4       4
          0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
    Histogram of I/O time between ssch and irq per sector
          0       0       0   18803     326     398      70      19       1       0       0       0       0       0       0       0
          0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
    Histogram of I/O time between irq and end
      18520     735     246      68      43       4       1       0       0       0       0       0       0       0       0       0
          0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
    # of req in chanq at enqueuing (1..32)
          0   19308     123      30      25     130       0       0       0       0       0       0       0       0       0       0
          0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0
  • The following command prints a row of the usage profile of a DASD. The output is on a single line as indicated by the (cont...) (... cont) in the illustration:
    # tunedasd -P -I irq /dev/dasdzzz
             0|         0|         0|         0|         0|         0|         0|         0|       503|       271|(cont...)
     (... cont)       267|     18544|       224|         3|         4|         4|         0|         0|         0|(cont...)
     (... cont)         0|         0|         0|         0|         0|         0|         0|         0|         0|(cont...)
     (... cont)         0|         0|         0|         0|
  • The following command resets a failed channel path with CHPID 45:
    # tunedasd -p 45 /dev/dasdc