TAPESTAT(1) | Linux User's Manual | TAPESTAT(1) |
tapestat - Report tape statistics.
tapestat [ -k | -m ] [ -t ] [ -V ] [ -y ] [ -z ] [ --human ] [ interval [ count ] ]
The tapestat command is used for monitoring the activity of tape drives connected to a system.
The first report generated by the tapestat command provides statistics concerning the time since the system was booted, unless the -y option is used, when this first report is omitted. Each subsequent report covers the time since the previous report.
The interval parameter specifies the amount of time in seconds between each report. The count parameter can be specified in conjunction with the interval parameter. If the count parameter is specified, the value of count determines the number of reports generated at interval seconds apart. If the interval parameter is specified without the count parameter, the tapestat command generates reports continuously.
The tapestat report provides statistics for each tape drive connected to the system. The following data are displayed:
It is possible for a percentage value (read, write, or other) to be greater than 100 percent (the tapestat command will never show a percentage value more than 999). If rewinding a tape takes 40 seconds where the interval time is 5 seconds the %Oa value would show as 0 in the intervals before the rewind completed and then show as approximately 800 percent when the rewind completes.
Similar values will be observed for %Rd and %Wr if a tape drive stops reading or writing and then restarts (that is it stopped streaming). In such a case you may see the r/s or w/s drop to zero and the %Rd/%Wr value could be higher than 100 when reading or writing continues (depending on how long it takes to restart writing or reading). This is only an issue if it happens a lot as it may cause tape wear and will impact on the backup times.
For fast tape drives you may see low percentage wait times. This does not indicate an issue with the tape drive. For a slower tape drive (e.g. an older generation DDS drive) the speed of the tape (and tape drive) is much slower than filesystem I/O, percent wait times are likely to be higher. For faster tape drives (e.g. LTO) the percentage wait times are likely to be lower as program writing to or reading from tape is going to be doing a lot more filesystem I/O because of the higher throughput.
Although tape statistics are implemented in the kernel using atomic variables they cannot be read atomically as a group. All of the statistics values are read from different files under /sys, because of this there may be I/O completions while reading the different files for the one tape drive. This may result in a set of statistics for a device that contain some values before an I/O completed and some after.
This command uses rounding down as the rounding method when calculating per second statistics. If, for example, you are using dd to copy one tape to another and running tapestat with an interval of 5 seconds and over the interval there were 3210 writes and 3209 reads then w/s would show 642 and r/s 641 (641.8 rounded down to 641). In such a case if it was a tar archive being copied (with a 10k block size) you would also see a difference between the kB_read/s and kB_wrtn/s of 2 (one I/O 10k in size divided by the interval period of 5 seconds). If instead there were 3210 writes and 3211 reads both w/s and r/s would both show 642 but you would still see a difference between the kB_read/s and kB_wrtn/s values of 2 kB/s.
This command is provided with an interval in seconds. However internally the interval is tracked per device and can potentially have an effect on the per second statistics reported. The time each set of statistics is captured is kept with those statistics. The difference between the current and previous time is converted to milliseconds for use in calculations. We can look at how this can impact the statistics reported if we use an example of a tar archive being copied between two tape drives using dd. If both devices reported 28900 kilobytes transferred and the reading tape drive had an interval of 5001 milliseconds and the writing tape drive 5000 milliseconds that would calculate out as 5778 kB_read/s and 5780 kB_wrtn/s.
The impact of some retrieving statistics during an I/O completion, rounding down, and small differences in the interval period on the statistics calculated should be minimal but may be non-zero.
The tapestat command takes into account the following environment variables:
/sys filesystem must be mounted for tapestat to work. It will not work on kernels that do not have sysfs support
This command requires kernel version 4.2 or later (or tape statistics support backported for an earlier kernel version).
Although tapestat speaks of kilobytes (kB), megabytes (MB)..., it actually uses kibibytes (kiB), mebibytes (MiB)... A kibibyte is equal to 1024 bytes, and a mebibyte is equal to 1024 kibibytes.
/sys/class/scsi_tape/st<num>/stats/*
/proc/uptime contains system uptime.
Initial revision by Shane M. SEYMOUR (shane.seymour <at>
hpe.com)
Modified for sysstat by Sebastien Godard (sysstat <at> orange.fr)
https://github.com/sysstat/sysstat
http://pagesperso-orange.fr/sebastien.godard/
JUNE 2020 | Linux |