tunedasd - Adjust low-level DASD settings
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
onto /proc/dasd/statistics.
tunedasd syntax
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.
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