From owner-svn-src-all@FreeBSD.ORG Sat Dec 15 18:21:10 2012 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D182BF4C; Sat, 15 Dec 2012 18:21:10 +0000 (UTC) (envelope-from trociny@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id B71758FC0A; Sat, 15 Dec 2012 18:21:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBFILA8c013126; Sat, 15 Dec 2012 18:21:10 GMT (envelope-from trociny@svn.freebsd.org) Received: (from trociny@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBFILAOP013123; Sat, 15 Dec 2012 18:21:10 GMT (envelope-from trociny@svn.freebsd.org) Message-Id: <201212151821.qBFILAOP013123@svn.freebsd.org> From: Mikolaj Golub Date: Sat, 15 Dec 2012 18:21:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r244271 - head/usr.sbin/iostat X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Dec 2012 18:21:11 -0000 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