Commit dfcfac3e authored by Mikulas Patocka's avatar Mikulas Patocka Committed by Mike Snitzer

dm stats: collect and report histogram of IO latencies

Add an option to dm statistics to collect and report a histogram of
IO latencies.
Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
parent c96aec34
...@@ -13,9 +13,10 @@ the range specified. ...@@ -13,9 +13,10 @@ the range specified.
The I/O statistics counters for each step-sized area of a region are The I/O statistics counters for each step-sized area of a region are
in the same format as /sys/block/*/stat or /proc/diskstats (see: in the same format as /sys/block/*/stat or /proc/diskstats (see:
Documentation/iostats.txt). But two extra counters (12 and 13) are Documentation/iostats.txt). But two extra counters (12 and 13) are
provided: total time spent reading and writing. All these counters may provided: total time spent reading and writing. When the histogram
be accessed by sending the @stats_print message to the appropriate DM argument is used, the 14th parameter is reported that represents the
device via dmsetup. histogram of latencies. All these counters may be accessed by sending
the @stats_print message to the appropriate DM device via dmsetup.
The reported times are in milliseconds and the granularity depends on The reported times are in milliseconds and the granularity depends on
the kernel ticks. When the option precise_timestamps is used, the the kernel ticks. When the option precise_timestamps is used, the
...@@ -64,6 +65,18 @@ Messages ...@@ -64,6 +65,18 @@ Messages
used, the resulting times are in nanoseconds instead of used, the resulting times are in nanoseconds instead of
milliseconds. Precise timestamps are a little bit slower milliseconds. Precise timestamps are a little bit slower
to obtain than jiffies-based timestamps. to obtain than jiffies-based timestamps.
histogram:n1,n2,n3,n4,... - collect histogram of latencies. The
numbers n1, n2, etc are times that represent the boundaries
of the histogram. If precise_timestamps is not used, the
times are in milliseconds, otherwise they are in
nanoseconds. For each range, the kernel will report the
number of requests that completed within this range. For
example, if we use "histogram:10,20,30", the kernel will
report four numbers a:b:c:d. a is the number of requests
that took 0-10 ms to complete, b is the number of requests
that took 10-20 ms to complete, c is the number of requests
that took 20-30 ms to complete and d is the number of
requests that took more than 30 ms to complete.
<program_id> <program_id>
An optional parameter. A name that uniquely identifies An optional parameter. A name that uniquely identifies
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment