Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Dec 2012 18:21:10 +0000 (UTC)
From:      Mikolaj Golub <trociny@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r244271 - head/usr.sbin/iostat
Message-ID:  <201212151821.qBFILAOP013123@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: trociny
Date: Sat Dec 15 18:21:09 2012
New Revision: 244271
URL: http://svnweb.freebsd.org/changeset/base/244271

Log:
  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`.

Modified:
  head/usr.sbin/iostat/iostat.8
  head/usr.sbin/iostat/iostat.c

Modified: head/usr.sbin/iostat/iostat.8
==============================================================================
--- head/usr.sbin/iostat/iostat.8	Sat Dec 15 18:19:48 2012	(r244270)
+++ head/usr.sbin/iostat/iostat.8	Sat Dec 15 18:21:09 2012	(r244271)
@@ -56,7 +56,7 @@
 .\"
 .\"	@(#)iostat.8	8.1 (Berkeley) 6/6/93
 .\"
-.Dd November 24, 2010
+.Dd December 15, 2012
 .Dt IOSTAT 8
 .Os
 .Sh NAME
@@ -366,6 +366,32 @@ average duration of transactions, in mil
 % of time the device had one or more outstanding transactions
 .El
 .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
 .Nm
 display (using

Modified: head/usr.sbin/iostat/iostat.c
==============================================================================
--- head/usr.sbin/iostat/iostat.c	Sat Dec 15 18:19:48 2012	(r244270)
+++ head/usr.sbin/iostat/iostat.c	Sat Dec 15 18:21:09 2012	(r244271)
@@ -731,10 +731,10 @@ devstats(int perf_select, long double et
 	u_int64_t total_bytes, total_transfers, total_blocks;
 	u_int64_t total_bytes_read, total_transfers_read;
 	u_int64_t total_bytes_write, total_transfers_write;
-	long double busy_pct;
+	long double busy_pct, busy_time;
 	u_int64_t queue_len;
 	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;
 	char *devname;
 
@@ -745,14 +745,13 @@ devstats(int perf_select, long double et
 		if (Cflag > 0)
 			printf("           cpu ");
 		printf("\n");
-		if (Iflag == 0)
-			printf(
-		"device     r/s   w/s    kr/s    kw/s qlen svc_t  %%b  "
-			    );
-		else
-			printf(
-		"device     r/i   w/i    kr/i    kw/i qlen svc_t  %%b  "
-			    );
+		if (Iflag == 0) {
+			printf("device     r/s   w/s    kr/s    kw/s qlen "
+			    "svc_t  %%b  ");
+		} else {
+			printf("device           r/i         w/i         kr/i"
+			    "         kw/i qlen   tsvc_t/i      sb/i  ");
+		}
 		if (Tflag > 0)
 			printf("tin  tout ");
 		if (Cflag > 0)
@@ -789,6 +788,8 @@ devstats(int perf_select, long double et
 		    DSM_MS_PER_TRANSACTION, &ms_per_transaction,
 		    DSM_BUSY_PCT, &busy_pct,
 		    DSM_QUEUE_LENGTH, &queue_len,
+		    DSM_TOTAL_DURATION, &total_duration,
+		    DSM_TOTAL_BUSY_TIME, &busy_time,
 		    DSM_NONE) != 0)
 			errx(1, "%s", devstat_errbuf);
 
@@ -827,7 +828,9 @@ devstats(int perf_select, long double et
 					    queue_len,
 					    ms_per_transaction, busy_pct);
 				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,
 					    (long double)total_transfers_read,
 					    (long double)total_transfers_write,
@@ -836,7 +839,7 @@ devstats(int perf_select, long double et
 					    (long double)
 					        total_bytes_write / 1024,
 					    queue_len,
-					    ms_per_transaction, busy_pct);
+					    total_duration, busy_time);
 				if (firstline) {
 					/*
 					 * If this is the first device



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201212151821.qBFILAOP013123>