iseperf.pl is a Perl script and associated configuration file, that can be used to quickly and easily retrieve LUN performance data from Emprise 5000's, and store in .csv format to be used for custom graphs, reports, and trend analysis.

iseperf.conf - Configuration File

This file is used to store the list of ISE's that will be queried for performance data.  The format looks like this:


<config>
   <systems>
      <system1>
         <serial>11111111</serial>
         <ip>1.1.1.1</ip>
         <username>user</username>
         <password>pass</password>
      </system1>
      <system2>
         <serial>11111112</serial>
         <ip>1.1.1.2</ip>
         <username>user</username>
         <password>pass</password>
      </system2>
   </systems>
   <options>
      <loop>no</loop>
      <loop_interval>5</loop_interval>
   </options>
</config>


The primary tag is a user-defined friendly name of the ISE (in this case it's system1 and system2).  Within these tags lies the necessary information to connect to the ISE, Serial Number, IP Address, Username, and Password.  Obviously you'll want to protect this file, or the script could easily be modified to prompt for the sensitive information.  The configuration file also provides options for controller whether the script runs once per call, or loops infinitely based on a polling interval (loop_interval).  For instance, if you schedule the script with cron or MS Task Scheduler, you would want to set the <loop> option to no.  If you want to kick off the script and let it run on it's own for an extended period of time, just set the <loop> tag to 'yes' and then set the <loop_interval> to the number of seconds between each collection.


iseperf.pl - Performance Logging Script

The script can be run on just about any system that supports Perl.  Each run of the script produces a single output of the performance statistics for the LUN's on the ISE being queried.  This could be useful for current point in time analysis, but it's mainly designed so that it can be run at user-defined intervals to collect performance statistics.  Windows Task Scheduler, UNIX/Linux cron, or modifying the script with a loop statement and sleep intervals are all viable options.  The script will generate two files, a iseperf.csv for performance data, and iseperf.log for logging any failed attempts to query an ISE/Emprise 5000.  The script queries each ISE/Emprise 5000 listed in the configuration file through the Cortex RESTful API.  The Emprise 5000 replies back with the performance data in XML format which is then parsed and written to the .csv file.  Here's a sample of the .csv output:


Date,ISE Serial,Volume,Read Percentage,Queue Depth,Queue Depth Max,Average Transfer Size,Read Latency Max,Write Latency Max,Read Latency,Write Latency,Total IOPS,Read IOPS,Write IOPS,Total Kbps,Read Kbps,Write Kbps
7/9/10 23:50,11111111,demojg1,79,8,9,4096,35,16,3,0,3233,2563,670,12932,10252,2680
7/9/10 23:51,11111111,demojg1,79,8,9,4096,167,29,3,0,2651,2096,555,10604,8384,2220
7/9/10 23:52,11111111,demojg1,81,8,9,4096,257,54,3,0,2542,2065,477,10168,8260,1908
7/9/10 23:53,11111111,demojg1,81,8,9,4096,257,67,3,0,2774,2255,519,11096,9020,2076
7/9/10 23:54,11111111,demojg1,79,8,9,4096,257,98,3,0,2803,2234,569,11212,8936,2276
7/9/10 23:55,11111111,demojg1,79,8,9,4096,264,98,3,0,2859,2284,575,11436,9136,2300


The date field in the output is in a format that's friendly to MS Excel, so you can easily sort the data and generate graphs, charts, etc.

To run the script on Linux, simply open a shell and 'cd' to the directory containing the script, and run it './iseperf.pl'

To run the script on Windows, first ensure Perl is installed (ActiveState Perl or Cygwin are great options), open DOS and navigate to the folder containing the script, and run 'perl iseperf.pl'



Have fun!


-Joel