.\" Automatically generated by Podwrapper::Man 1.32.5 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "nbdkit-stats-filter 1" .TH nbdkit-stats-filter 1 "2023-01-04" "nbdkit-1.32.5" "NBDKIT" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" nbdkit\-stats\-filter \- display statistics about operations .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& nbdkit \-\-filter=stats PLUGIN statsfile=FILE \& [statsappend=true] [statsthreshold=PERCENTILE] .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\f(CW\*(C`nbdkit\-stats\-filter\*(C'\fR is a filter that displays statistics about \s-1NBD\s0 operations, such as the number of bytes read and written. Statistics are written to a file once when nbdkit exits. .SH "EXAMPLE OUTPUT" .IX Header "EXAMPLE OUTPUT" .Vb 10 \& # nbdkit \-\-filter=exitlast \-\-filter=stats memory 25G statsfile=example.txt \& # nbd\-client localhost /dev/nbd1 && mkfs.ext4 /dev/nbd1 && sync && \& nbd\-client \-d /dev/nbd1 \& [....] \& # cat example.txt \& total: 191 ops, 21.917545 s, 25.13 GiB, 1.15 GiB/s \& read: 136 ops, 0.000230 s, 3.16 MiB, 13.43 GiB/s op, 147.83 KiB/s total \& Request size and alignment breakdown: \& 12 bits: 68.4% (93 reqs, 372.00 KiB total) \& 12 bit aligned: 100.0% (93) \& 13 bit aligned: 72.0% (67) \& 14 bit aligned: 55.9% (52) \& 15 bit aligned: 48.4% (45) \& 16 bit aligned: 43.0% (40) \& 14 bits: 10.3% (14 reqs, 296.00 KiB total) \& 12 bit aligned: 100.0% (14) \& 13 bit aligned: 35.7% (5) \& 19 bit aligned: 21.4% (3) \& [....] \& other sizes: 3.7% (5 reqs, 3.16 MiB total) \& \& write: 36 ops, 0.125460 s, 132.38 MiB, 1.03 GiB/s op, 6.04 MiB/s total \& Request size and alignment breakdown: \& 12 bits: 50.0% (18 reqs, 72.00 KiB total) \& 12 bit aligned: 100.0% (18) \& 13 bit aligned: 77.8% (14) \& 27 bit aligned: 72.2% (13) \& 31 bit aligned: 66.7% (12) \& 32 bit aligned: 33.3% (6) \& 33 bit aligned: 22.2% (4) \& 34 bit aligned: 11.1% (2) \& 14 bits: 30.6% (11 reqs, 224.00 KiB total) \& 12 bit aligned: 100.0% (11) \& 27 bit aligned: 90.9% (10) \& 25 bits: 11.1% (4 reqs, 128.00 MiB total) \& 25 bit aligned: 100.0% (4) \& 26 bit aligned: 50.0% (2) \& 27 bit aligned: 25.0% (1) \& 16 bits: 2.8% (1 reqs, 64.00 KiB total) \& 16 bit aligned: 100.0% (1) \& \& trim: 14 ops, 0.002687 s, 25.00 GiB, 9304.06 GiB/s op, 1.14 GiB/s total \& Request size and alignment breakdown: \& 31 bits: 85.7% (12 reqs, 24.00 GiB total) \& 24 bit aligned: 100.0% (12) \& 24 bits: 7.1% (1 reqs, 16.00 MiB total) \& \& flush: 5 ops, 0.000002 s, 0 bytes, 0 bytes/s op, 0 bytes/s total .Ve .SH "PARAMETERS" .IX Header "PARAMETERS" .IP "\fBstatsfile=\fR\s-1FILE\s0" 4 .IX Item "statsfile=FILE" The file where we write the stats. .Sp This parameter is required. .IP "\fBstatsappend=true\fR" 4 .IX Item "statsappend=true" If set then we append to the file instead of replacing it. .IP "\fBstatsthreshold=\fR\s-1PERCENTILE\s0" 4 .IX Item "statsthreshold=PERCENTILE" If non-zero, track request size and alignment distribution and print histogram. .Sp Requests are grouped by the number of bits that are needed to represent the request size (e.g. a request of size 3892 needs will be grouped with all requests of size 2^11=2048 to 2^12\-1=4095), and the number of trailing zero bits in the offset. .Sp Histogram output is truncated to \s-1PERCENTILE\s0 of requests. Default: 95. .SH "FILES" .IX Header "FILES" .IP "\fI\f(CI$filterdir\fI/nbdkit\-stats\-filter.so\fR" 4 .IX Item "$filterdir/nbdkit-stats-filter.so" The filter. .Sp Use \f(CW\*(C`nbdkit \-\-dump\-config\*(C'\fR to find the location of \f(CW$filterdir\fR. .SH "VERSION" .IX Header "VERSION" \&\f(CW\*(C`nbdkit\-stats\-filter\*(C'\fR first appeared in nbdkit 1.14. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBnbdkit\fR\|(1), \&\fBnbdkit\-filter\fR\|(3), \&\fBnbdkit\-log\-filter\fR\|(1). .SH "AUTHORS" .IX Header "AUTHORS" Richard W.M. Jones .PP Nikolaus Rath .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (C) 2019\-2022 Red Hat Inc. .SH "LICENSE" .IX Header "LICENSE" Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: .IP "\(bu" 4 Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. .IP "\(bu" 4 Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. .IP "\(bu" 4 Neither the name of Red Hat nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. .PP \&\s-1THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS\s0 ''\s-1AS IS\s0'' \s-1AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\s0 (\s-1INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES\s0; \s-1LOSS OF USE, DATA, OR PROFITS\s0; \s-1OR BUSINESS INTERRUPTION\s0) \s-1HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\s0 (\s-1INCLUDING NEGLIGENCE OR OTHERWISE\s0) \s-1ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\s0