Change iostat -Ix
to display total duration of transactions instead
of average duration, and total busy time instead of %. This looks more useful when one runs `iostat -Ix` periodically to collect statistics: e.g. now it is possible to calculate busy % between two runs subtracting total busy times and dividing per time period. Average duration and % busy are still available via `iostat -x`.
This commit is contained in:
parent
fdd6757e71
commit
3cfa2135c5
@ -56,7 +56,7 @@
|
|||||||
.\"
|
.\"
|
||||||
.\" @(#)iostat.8 8.1 (Berkeley) 6/6/93
|
.\" @(#)iostat.8 8.1 (Berkeley) 6/6/93
|
||||||
.\"
|
.\"
|
||||||
.Dd November 24, 2010
|
.Dd December 15, 2012
|
||||||
.Dt IOSTAT 8
|
.Dt IOSTAT 8
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -366,6 +366,32 @@ average duration of transactions, in milliseconds
|
|||||||
% of time the device had one or more outstanding transactions
|
% of time the device had one or more outstanding transactions
|
||||||
.El
|
.El
|
||||||
.Pp
|
.Pp
|
||||||
|
The extended
|
||||||
|
.Nm
|
||||||
|
device display, with the
|
||||||
|
.Fl x
|
||||||
|
and
|
||||||
|
.Fl I
|
||||||
|
flags specified, shows the following statistics:
|
||||||
|
.Pp
|
||||||
|
.Bl -tag -width indent -compact
|
||||||
|
.It r/i
|
||||||
|
read operations per time period
|
||||||
|
.It w/i
|
||||||
|
write operations per time period
|
||||||
|
.It kr/i
|
||||||
|
kilobytes read per time period
|
||||||
|
.It kw/i
|
||||||
|
kilobytes write per time period
|
||||||
|
.It qlen
|
||||||
|
transactions queue length
|
||||||
|
.It tsvc_t/i
|
||||||
|
total duration of transactions per time period, in seconds
|
||||||
|
.It sb/i
|
||||||
|
total time the device had one or more outstanding transactions per
|
||||||
|
time period, in seconds
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
The old-style
|
The old-style
|
||||||
.Nm
|
.Nm
|
||||||
display (using
|
display (using
|
||||||
|
@ -731,10 +731,10 @@ devstats(int perf_select, long double etime, int havelast)
|
|||||||
u_int64_t total_bytes, total_transfers, total_blocks;
|
u_int64_t total_bytes, total_transfers, total_blocks;
|
||||||
u_int64_t total_bytes_read, total_transfers_read;
|
u_int64_t total_bytes_read, total_transfers_read;
|
||||||
u_int64_t total_bytes_write, total_transfers_write;
|
u_int64_t total_bytes_write, total_transfers_write;
|
||||||
long double busy_pct;
|
long double busy_pct, busy_time;
|
||||||
u_int64_t queue_len;
|
u_int64_t queue_len;
|
||||||
long double total_mb;
|
long double total_mb;
|
||||||
long double blocks_per_second, ms_per_transaction;
|
long double blocks_per_second, ms_per_transaction, total_duration;
|
||||||
int firstline = 1;
|
int firstline = 1;
|
||||||
char *devname;
|
char *devname;
|
||||||
|
|
||||||
@ -745,14 +745,13 @@ devstats(int perf_select, long double etime, int havelast)
|
|||||||
if (Cflag > 0)
|
if (Cflag > 0)
|
||||||
printf(" cpu ");
|
printf(" cpu ");
|
||||||
printf("\n");
|
printf("\n");
|
||||||
if (Iflag == 0)
|
if (Iflag == 0) {
|
||||||
printf(
|
printf("device r/s w/s kr/s kw/s qlen "
|
||||||
"device r/s w/s kr/s kw/s qlen svc_t %%b "
|
"svc_t %%b ");
|
||||||
);
|
} else {
|
||||||
else
|
printf("device r/i w/i kr/i"
|
||||||
printf(
|
" kw/i qlen tsvc_t/i sb/i ");
|
||||||
"device r/i w/i kr/i kw/i qlen svc_t %%b "
|
}
|
||||||
);
|
|
||||||
if (Tflag > 0)
|
if (Tflag > 0)
|
||||||
printf("tin tout ");
|
printf("tin tout ");
|
||||||
if (Cflag > 0)
|
if (Cflag > 0)
|
||||||
@ -789,6 +788,8 @@ devstats(int perf_select, long double etime, int havelast)
|
|||||||
DSM_MS_PER_TRANSACTION, &ms_per_transaction,
|
DSM_MS_PER_TRANSACTION, &ms_per_transaction,
|
||||||
DSM_BUSY_PCT, &busy_pct,
|
DSM_BUSY_PCT, &busy_pct,
|
||||||
DSM_QUEUE_LENGTH, &queue_len,
|
DSM_QUEUE_LENGTH, &queue_len,
|
||||||
|
DSM_TOTAL_DURATION, &total_duration,
|
||||||
|
DSM_TOTAL_BUSY_TIME, &busy_time,
|
||||||
DSM_NONE) != 0)
|
DSM_NONE) != 0)
|
||||||
errx(1, "%s", devstat_errbuf);
|
errx(1, "%s", devstat_errbuf);
|
||||||
|
|
||||||
@ -827,7 +828,9 @@ devstats(int perf_select, long double etime, int havelast)
|
|||||||
queue_len,
|
queue_len,
|
||||||
ms_per_transaction, busy_pct);
|
ms_per_transaction, busy_pct);
|
||||||
else
|
else
|
||||||
printf("%-8.8s %5.1Lf %5.1Lf %7.1Lf %7.1Lf %4" PRIu64 " %5.1Lf %3.0Lf ",
|
printf("%-8.8s %11.1Lf %11.1Lf "
|
||||||
|
"%12.1Lf %12.1Lf %4" PRIu64
|
||||||
|
" %10.1Lf %9.1Lf ",
|
||||||
devname,
|
devname,
|
||||||
(long double)total_transfers_read,
|
(long double)total_transfers_read,
|
||||||
(long double)total_transfers_write,
|
(long double)total_transfers_write,
|
||||||
@ -836,7 +839,7 @@ devstats(int perf_select, long double etime, int havelast)
|
|||||||
(long double)
|
(long double)
|
||||||
total_bytes_write / 1024,
|
total_bytes_write / 1024,
|
||||||
queue_len,
|
queue_len,
|
||||||
ms_per_transaction, busy_pct);
|
total_duration, busy_time);
|
||||||
if (firstline) {
|
if (firstline) {
|
||||||
/*
|
/*
|
||||||
* If this is the first device
|
* If this is the first device
|
||||||
|
Loading…
Reference in New Issue
Block a user