[Orca-checkins] rev 172 - trunk/orca/orcallator

blair at orcaware.com blair at orcaware.com
Wed Dec 18 15:27:01 PST 2002


Author: blair
Date: 2002-12-18 15:26:10 -0800 (Wed, 18 Dec 2002)
New Revision: 172

Modified:
   trunk/orca/orcallator/orcallator.cfg.in
   trunk/orca/orcallator/orcallator.se
Log:
* orcallator/orcallator.se:
  Upgrade to version 1.36.
    Add measurements for tape (st) devices.  These tape measurements
    are only taken when the RAWDISK code is enabled.  The new
    measurements include system wide tape reads and writes per second
    (tape_rd/s and tape_wr/s), system wide tape transfer rate
    (tape_rK/s and tape_wK/s), and tape run percent
    (tape_runp_*). Patch contributed by Liston Bias <bias at pobox.com>.

* orcallator/orcallator.cfg.in:
  Add plots for the new system wide tape reads and writes per second,
  system wide tape transfer rate, and tape run percent measurements
  recorded by orcallator.se.


Modified: trunk/orca/orcallator/orcallator.cfg.in
==============================================================================
--- trunk/orca/orcallator/orcallator.cfg.in	(original)
+++ trunk/orca/orcallator/orcallator.cfg.in	2002-12-18 15:26:19.000000000 -0800
@@ -667,6 +667,47 @@
 }
 
 plot {
+title			%g Tape System Wide Reads/Writes Per Second
+source			orcallator
+data			tape_rd/s
+data			tape_wr/s
+line_type		area
+line_type		line1
+legend			Reads/s
+legend			Writes/s
+y_legend		Ops/s
+data_min		0
+href			http://www.orcaware.com/orca/docs/orcallator.html#tape_system_wide_reads_writes_per_second
+}
+
+plot {
+title			%g Tape System Wide Transfer Rate
+source			orcallator
+data			1024 * tape_rK/s
+data			1024 * tape_wK/s
+line_type		area
+line_type		line1
+legend			Read transfer rate
+legend			Write transfer rate
+y_legend		Bytes/s
+data_min		0
+href			http://www.orcaware.com/orca/docs/orcallator.html#tape_system_wide_transfer_rate
+}
+
+plot {
+title			%g Tape Run Percent
+source			orcallator
+data			tape_runp_(.*)
+line_type		line2
+legend			$1
+y_legend		Run Percent
+data_min		0
+data_max		100
+plot_min		0
+href			http://www.orcaware.com/orca/docs/orcallator.html#tape_run_percent
+}
+
+plot {
 title			%g Cache Hit Percentages
 source			orcallator
 data			dnlc_hit%

Modified: trunk/orca/orcallator/orcallator.se
==============================================================================
--- trunk/orca/orcallator/orcallator.se	(original)
+++ trunk/orca/orcallator/orcallator.se	2002-12-18 15:26:20.000000000 -0800
@@ -8,6 +8,14 @@
 //
 // Portions copied from percollator.se written by Adrian Cockroft.
 //
+// Version 1.36:   Dec 17, 2002	Add measurements for tape (st) devices.  These
+//				tape measurements are only taken when the
+//				RAWDISK code is enabled.  The new measurements
+//				include system wide tape reads and writes per
+//				second (tape_rd/s and tape_wr/s), system wide
+//				tape transfer rate (tape_rK/s and tape_wK/s),
+//				and tape run percent (tape_runp_*). Patch
+//				contributed by Liston Bias <bias at pobox.com>.
 // Version 1.35:   Aug 11, 2002	Add a new measurement, the number of secure web
 //				server processes on the system using the
 //				column name #httpsds.  If the environmental
@@ -1659,28 +1667,52 @@
 #ifdef WATCH_DISK
 measure_disk()
 {
+  // These two variables are treated as static variables to keep track
+  // of any changes to the number of disks and tapes on the system.
+  int    previous_disk_count = -1;
+  int    previous_tape_count = -1;
+
   double mean_disk_busy;
   double peak_disk_busy;
-  double total_reads;
-  double total_writes;
-  double total_readk;
-  double total_writek;
-  int    previous_count = -1;
-  int    i;
+  double total_disk_reads;
+  double total_disk_writes;
+  double total_disk_readk;
+  double total_disk_writek;
   int    disk_count;
 
-  mean_disk_busy = 0.0;
-  peak_disk_busy = 0.0;
-  total_reads    = 0.0;
-  total_writes   = 0.0;
-  total_readk    = 0.0;
-  total_writek   = 0.0;
-  disk_count     = 0;
+  double total_tape_reads;
+  double total_tape_writes;
+  double total_tape_readk;
+  double total_tape_writek;
+  int    tape_count;
+
+  int    i;
+
+  mean_disk_busy      = 0.0;
+  peak_disk_busy      = 0.0;
+  total_disk_reads    = 0.0;
+  total_disk_writes   = 0.0;
+  total_disk_readk    = 0.0;
+  total_disk_writek   = 0.0;
+  disk_count          = 0;
+
+  total_tape_reads    = 0.0;
+  total_tape_writes   = 0.0;
+  total_tape_readk    = 0.0;
+  total_tape_writek   = 0.0;
+  tape_count          = 0;
 
 #ifdef USE_RAWDISK
   for (i=0; i<RAW_disk_count; ++i) {
-    // Block the listing of tape drives for now.
-    if (RAW_disk[i].short_name[1] == 't' && RAW_disk[i].short_name[0] == 's') {
+    // Record tape drive st devices differently than regular disk devices.
+    if (RAW_disk[i].short_name[0] == 's' && RAW_disk[i].short_name[1] == 't') {
+      tape_count++;
+      total_tape_reads  += RAW_disk[i].reads;
+      total_tape_writes += RAW_disk[i].writes;
+      total_tape_readk  += RAW_disk[i].kreads;
+      total_tape_writek += RAW_disk[i].kwrites;
+      put_output(sprintf("tape_runp_%s", RAW_disk[i].long_name),
+                 sprintf("%16.5f", RAW_disk[i].run_percent));
       continue;
     }
     // Block the listing of floppy drives for now.
@@ -1706,11 +1738,11 @@
 #ifdef HAVE_EMC_DISK_CONTROL
     if ((pioGLOB_old_wlentime[i] + pioGLOB_old_rlentime[i]) > 1) {
 #endif
-      total_reads    += RAW_disk[i].reads;
-      total_writes   += RAW_disk[i].writes;
-      total_readk    += RAW_disk[i].kreads;
-      total_writek   += RAW_disk[i].kwrites;
-      mean_disk_busy += RAW_disk[i].run_percent;
+      total_disk_reads  += RAW_disk[i].reads;
+      total_disk_writes += RAW_disk[i].writes;
+      total_disk_readk  += RAW_disk[i].kreads;
+      total_disk_writek += RAW_disk[i].kwrites;
+      mean_disk_busy    += RAW_disk[i].run_percent;
       if (RAW_disk[i].run_percent > peak_disk_busy) {
          peak_disk_busy = RAW_disk[i].run_percent;
       }
@@ -1739,11 +1771,11 @@
 #ifdef HAVE_EMC_DISK_CONTROL
     if ((pioGLOB_old_wlentime[i] + pioGLOB_old_rlentime[i]) > 1) {
 #endif
-      total_reads    += GLOBAL_disk[i].reads;
-      total_writes   += GLOBAL_disk[i].writes;
-      total_readk    += GLOBAL_disk[i].kreads;
-      total_writek   += GLOBAL_disk[i].kwrites;
-      mean_disk_busy += GLOBAL_disk[i].run_percent;
+      total_disk_reads  += GLOBAL_disk[i].reads;
+      total_disk_writes += GLOBAL_disk[i].writes;
+      total_disk_readk  += GLOBAL_disk[i].kreads;
+      total_disk_writek += GLOBAL_disk[i].kwrites;
+      mean_disk_busy    += GLOBAL_disk[i].run_percent;
       if (GLOBAL_disk[i].run_percent > peak_disk_busy) {
         peak_disk_busy = GLOBAL_disk[i].run_percent;
       }
@@ -1759,16 +1791,25 @@
 
   put_output("disk_peak", sprintf("%9.3f", peak_disk_busy));
   put_output("disk_mean", sprintf("%9.3f", mean_disk_busy));
-  put_output("disk_rd/s", sprintf("%9.1f", total_reads));
-  put_output("disk_wr/s", sprintf("%9.1f", total_writes));
-  put_output("disk_rK/s", sprintf("%9.1f", total_readk));
-  put_output("disk_wK/s", sprintf("%9.1f", total_writek));
-
-  // If the number of disks has changed, say due to a add_drv, then print
-  // new headers.
-  if (previous_count != disk_count) {
-    print_header   = 1;
-    previous_count = disk_count;
+  put_output("disk_rd/s", sprintf("%9.1f", total_disk_reads));
+  put_output("disk_wr/s", sprintf("%9.1f", total_disk_writes));
+  put_output("disk_rK/s", sprintf("%9.1f", total_disk_readk));
+  put_output("disk_wK/s", sprintf("%9.1f", total_disk_writek));
+
+  put_output("tape_rd/s", sprintf("%9.1f", total_tape_reads));
+  put_output("tape_wr/s", sprintf("%9.1f", total_tape_writes));
+  put_output("tape_rK/s", sprintf("%9.1f", total_tape_readk));
+  put_output("tape_wK/s", sprintf("%9.1f", total_tape_writek));
+
+  // If the number of disks and/or tapes has changed, say due to a
+  // add_drv, then print new headers.
+  if (previous_disk_count != disk_count) {
+    print_header        = 1;
+    previous_disk_count = disk_count;
+  }
+  if (previous_tape_count != tape_count) {
+    print_header        = 1;
+    previous_tape_count = tape_count;
   }
 }
 #endif




More information about the Orca-checkins mailing list