Author: will
Date: Fri Jan 23 15:55:03 2015
New Revision: 277566
URL: https://svnweb.freebsd.org/changeset/base/277566

Log:
  Print transfer times for read, write, & overall independently.
  
  Round up calculated values for iops and average time per io to avoid a
  shifting display if there are 1000+ (or even 10000+) iops, or if an
  average time per io column is 1000+ ms.
  
  Reviewed by:  ken
  MFC after:    1 week
  Sponsored by: Spectra Logic
  MFSpectraBSD: 1089947 on 2014/09/26
                1093625 on 2014/09/29
                1093650 on 2014/09/29
                1095662 on 2014/10/09

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

Modified: head/usr.sbin/iostat/iostat.c
==============================================================================
--- head/usr.sbin/iostat/iostat.c       Fri Jan 23 15:14:30 2015        
(r277565)
+++ head/usr.sbin/iostat/iostat.c       Fri Jan 23 15:55:03 2015        
(r277566)
@@ -726,15 +726,17 @@ static void
 devstats(int perf_select, long double etime, int havelast)
 {
        int dn;
-       long double transfers_per_second, transfers_per_second_read, 
transfers_per_second_write;
-       long double kb_per_transfer, mb_per_second, mb_per_second_read, 
mb_per_second_write;
+       long double transfers_per_second, transfers_per_second_read;
+       long double transfers_per_second_write;
+       long double kb_per_transfer, mb_per_second, mb_per_second_read;
+       long double mb_per_second_write;
        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, busy_time;
        u_int64_t queue_len;
-       long double total_mb;
-       long double blocks_per_second, ms_per_transaction, total_duration;
+       long double total_mb, blocks_per_second, total_duration;
+       long double ms_per_other, ms_per_read, ms_per_write, ms_per_transaction;
        int firstline = 1;
        char *devname;
 
@@ -746,8 +748,8 @@ devstats(int perf_select, long double et
                        printf("           cpu ");
                printf("\n");
                if (Iflag == 0) {
-                       printf("device     r/s   w/s    kr/s    kw/s qlen "
-                           "svc_t  %%b  ");
+                       printf("device     r/s   w/s     kr/s     kw/s "
+                           " ms/r  ms/w  ms/o  ms/t qlen  %%b  ");
                } else {
                        printf("device           r/i         w/i         kr/i"
                            "         kw/i qlen   tsvc_t/i      sb/i  ");
@@ -786,6 +788,9 @@ devstats(int perf_select, long double et
                    DSM_MB_PER_SECOND_WRITE, &mb_per_second_write,
                    DSM_BLOCKS_PER_SECOND, &blocks_per_second,
                    DSM_MS_PER_TRANSACTION, &ms_per_transaction,
+                   DSM_MS_PER_TRANSACTION_READ, &ms_per_read,
+                   DSM_MS_PER_TRANSACTION_WRITE, &ms_per_write,
+                   DSM_MS_PER_TRANSACTION_OTHER, &ms_per_other,
                    DSM_BUSY_PCT, &busy_pct,
                    DSM_QUEUE_LENGTH, &queue_len,
                    DSM_TOTAL_DURATION, &total_duration,
@@ -820,13 +825,18 @@ devstats(int perf_select, long double et
                            mb_per_second_write > ((long double).0005)/1024 ||
                            busy_pct > 0.5) {
                                if (Iflag == 0)
-                                       printf("%-8.8s %5.1Lf %5.1Lf %7.1Lf 
%7.1Lf %4" PRIu64 " %5.1Lf %3.0Lf ",
-                                           devname, transfers_per_second_read,
-                                           transfers_per_second_write,
+                                       printf("%-8.8s %5d %5d %8.1Lf "
+                                           "%8.1Lf %5d %5d %5d %5d "
+                                           "%4" PRIu64 " %3.0Lf ",
+                                           devname,
+                                           (int)transfers_per_second_read,
+                                           (int)transfers_per_second_write,
                                            mb_per_second_read * 1024,
                                            mb_per_second_write * 1024,
-                                           queue_len,
-                                           ms_per_transaction, busy_pct);
+                                           (int)ms_per_read, (int)ms_per_write,
+                                           (int)ms_per_other,
+                                           (int)ms_per_transaction,
+                                           queue_len, busy_pct);
                                else
                                        printf("%-8.8s %11.1Lf %11.1Lf "
                                            "%12.1Lf %12.1Lf %4" PRIu64
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to