The dmstats report provides several types of field that may be
added to the default field set, or used to create custom reports.
All performance counters and metrics are calculated per-area.
Derived metrics
A number of metrics fields are included that provide high level
performance indicators. These are based on the fields provided by
the conventional Linux iostat program and are derived from the
basic counter values provided by the kernel for each area.
reads_merged_per_sec
Reads merged per second.
writes_merged_per_sec
Writes merged per second.
reads_per_sec
Reads completed per second.
writes_per_sec
Writes completed per second.
read_size_per_sec
Size of data read per second.
write_size_per_sec
Size of data written per second.
avg_request_size
Average request size.
queue_size
Average queue size.
await
The average wait time for read and write operations.
r_await
The average wait time for read operations.
w_await
The average wait time for write operations.
throughput
The device throughput in operations per second.
service_time
The average service time (in milliseconds) for operations
issued to the device.
util
Percentage of CPU time during which I/O requests were
issued to the device (bandwidth utilization for the
device). Device saturation occurs when this value is close
to 100%.
Group, region and area meta fields
Meta fields provide information about the groups, regions, or
areas that the statistics values relate to. This includes the
region and area identifier, start, length, and counts, as well as
the program ID and user data values.
region_id
Region identifier. This is a non-negative integer returned
by the kernel when a statistics region is created.
region_start
The region start location. Display units are selected by
the --units
option.
region_len
The length of the region. Display units are selected by
the --units
option.
area_id
Area identifier. Area identifiers are assigned by the
device-mapper statistics library and uniquely identify
each area within a region. Each ID corresponds to a
distinct set of performance counters for that area of the
statistics region. Area identifiers are always
monotonically increasing within a region so that higher ID
values correspond to greater sector addresses within the
area and no gaps in the sequence of identifiers exist.
area_start
The area start location. Display units are selected by the
--units
option.
area_len
The length of the area. Display units are selected by the
--units
option.
area_count
The number of areas in this region.
program_id
The program ID value associated with this region.
user_data
The user data value associated with this region.
group_id
Group identifier. This is a non-negative integer returned
by the dmstats group
command when a statistics group is
created.
interval_ns
The estimated interval over which the current counter
values have accumulated. The value is reported as an
integer expressed in units of nanoseconds.
interval
The estimated interval over which the current counter
values have accumulated. The value is reported as a real
number in units of seconds.
Basic counters
Basic counters provide access to the raw counter data from the
kernel, allowing further processing to be carried out by another
program.
The kernel provides thirteen separate counters for each
statistics area. The first eleven of these match the counters
provided in /proc/diskstats or /sys/block/*/*/stat. The final
pair provide separate counters for read and write time.
read_count
Count of reads completed this interval.
reads_merged_count
Count of reads merged this interval.
read_sector_count
Count of 512 byte sectors read this interval.
read_time
Accumulated duration of all read requests (ns).
write_count
Count of writes completed this interval.
writes_merged_count
Count of writes merged this interval.
write_sector_count
Count of 512 byte sectors written this interval.
write_time
Accumulated duration of all write requests (ns).
in_progress_count
Count of requests currently in progress.
io_ticks
Nanoseconds spent servicing requests.
queue_ticks
This field is incremented at each I/O start, I/O
completion, I/O merge, or read of these stats by the
number of I/Os in progress multiplied by the number of
milliseconds spent doing I/O since the last update of this
field. This can provide an easy measure of both I/O
completion time and the backlog that may be accumulating.
read_ticks
Nanoseconds spent servicing reads.
write_ticks
Nanoseconds spent servicing writes.
Histogram fields
Histograms measure the frequency distribution of user specified
I/O latency intervals. Histogram bin boundaries are specified
when a region is created.
A brief representation of the histogram values and latency
intervals can be included in the report using these fields.
hist_count
A list of the histogram counts for the current statistics
area in order of ascending latency value. Each value
represents the number of I/Os with latency times falling
into that bin's time range during the sample period.
hist_count_bounds
A list of the histogram counts for the current statistics
area in order of ascending latency value including bin
boundaries: each count is prefixed by the lower bound of
the corresponding histogram bin.
hist_count_ranges
A list of the histogram counts for the current statistics
area in order of ascending latency value including bin
boundaries: each count is prefixed by both the lower and
upper bounds of the corresponding histogram bin.
hist_percent
A list of the relative histogram values for the current
statistics area in order of ascending latency value,
expressed as a percentage. Each value represents the
proportion of I/Os with latency times falling into that
bin's time range during the sample period.
hist_percent_bounds
A list of the relative histogram values for the current
statistics area in order of ascending latency value,
expressed as a percentage and including bin boundaries.
Each value represents the proportion of I/Os with latency
times falling into that bin's time range during the sample
period and is prefixed with the corresponding bin's lower
bound.
hist_percent_ranges
A list of the relative histogram values for the current
statistics area in order of ascending latency value,
expressed as a percentage and including bin boundaries.
Each value represents the proportion of I/Os with latency
times falling into that bin's time range during the sample
period and is prefixed with the corresponding bin's lower
and upper bounds.
hist_bounds
A list of the histogram boundary values for the current
statistics area in order of ascending latency value. The
values are expressed in whole units of seconds,
miliseconds, microseconds or nanoseconds with a suffix
indicating the unit.
hist_ranges
A list of the histogram bin ranges for the current
statistics area in order of ascending latency value. The
values are expressed as "LOWER-UPPER" in whole units of
seconds, miliseconds, microseconds or nanoseconds with a
suffix indicating the unit.
hist_bins
The number of latency histogram bins configured for the
area.