Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Jun 2018 15:37:23 +0000
From:      Holger Kipp <Holger.Kipp@alogis.com>
To:        Miroslav Lachman <000.fbsd@quip.cz>
Cc:        "freebsd-stable@freebsd.org" <freebsd-stable@freebsd.org>
Subject:   Re: iostat busy value calculation
Message-ID:  <5765F5AE-131A-4F2F-8C46-9E362611CDA1@alogis.com>
In-Reply-To: <98c4156c-d2f0-f0c6-b859-9cea8ec29a42@quip.cz>
References:  <98c4156c-d2f0-f0c6-b859-9cea8ec29a42@quip.cz>

next in thread | previous in thread | raw e-mail | index | archive | help
Dear Miroslav,

looking at the manpage for iostat I see:

           %b      % of time the device had one or more outstanding transac=
tions
           tsvc_t/i
                   total duration of transactions per time period, in secon=
ds
           sb/i    total time the device had one or more outstanding transa=
c-
                   tions per time period, in seconds

So calculating the percentage using sb/i should be fairly easy.

Best regards,
Holger

Am 20.06.2018 um 16:55 schrieb Miroslav Lachman <000.fbsd@quip.cz<mailto:00=
0.fbsd@quip.cz>>:

I would like to know how the value of disk "busy" is calculated?

I want to use values from iostat in the monitoring (zabbix).
iostat shows averages by default and the last column is "busy %", but the f=
irst output contains averages from the system boot til now.

# iostat -x -t da
                       extended device statistics
device     r/s   w/s    kr/s    kw/s qlen svc_t  %b
ada0       2.5  13.8    49.0   287.9    0  45.7   2
ada1       2.6  13.8    51.7   287.9    0  39.6   2

I don't want to use "iostat -x -t da -w 20" to get averages of the last 20 =
seconds because it means monitoring needs to wait 20 seconds on each run.

I can use absolute values from iostat. This output is without any delay and=
 the monitoring SW can calculate averages between two runs. But the last co=
lumn is no busy %, it is sb/i.

# iostat -I -x -t da
                       extended device statistics
device           r/i         w/i         kr/i         kw/i qlen tsvc_t/i   =
   sb/i
ada0       7403218.0  40825749.0  144647824.0  849655694.0    0 2204904.2  =
 73121.8
ada1       7537423.0  40825749.0  152643874.5  849655694.0    0 1914301.0  =
 69996.5

So the question is - If I want to plot "busy %" in the graph - how the "bus=
y" value in the first example is calculated?
Is it possible to calculate it from the numbers that I have from "iostat -I=
 -x" and the know time interval between two runs?

Miroslav Lachman




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5765F5AE-131A-4F2F-8C46-9E362611CDA1>