Operating System - OpenVMS
1828949 Members
2315 Online
109986 Solutions
New Discussion

Re: file-level IO monitoring

 
SOLVED
Go to solution
BoyeDav
Frequent Advisor

file-level IO monitoring

We're using VMS 7.3-2 on Alpha. I need to identify which files are "hot" files for IO in terms of measuring the number of IOs per file, and being able to see how many of those are reads and how many are writes.

We're doing this to see which files will be the best candidates for RAM disk.

Thanks!
6 REPLIES 6
Karl Rohwedder
Honored Contributor
Solution

Re: file-level IO monitoring

Beside some commercial tools, which can do this (e.g. the former VPA,PSPA products), the XFC cache can output a list of hot files on a given volume (if enabled).

$ SHOW MEMORY/CACHE=(VOL=DSA0,TOPQIO)

see the help for more details.

On the freeware (or via www.openvms.org) I got a perl script PROCIO, which can analyse the IO for a given PID.

regards Kalle
labadie_1
Honored Contributor

Re: file-level IO monitoring

Hein van den Heuvel
Honored Contributor

Re: file-level IO monitoring


I agree with Karl, with XFC active SHOW MEM/CACH is the easiest way to fidn hot files.

If you do not have XFC active, and are worried about IO, then you should first enable XFC and than see whether you still have a worry.

Now once you have the XFC list in a file, you may want to use the perl script below to turn that data into a CSV list which you can feed to excel and sort by reads or writes or whatever.
Run as: $perl xfc_to_csv.pl xfc.log > xfc.csv

I'm sure you realize that mostly moving file to Decram is a just a brute force method which may or may not help you.
One should really trying to quantify and qualify your problem before deciding what the solution is no?! I mean, if you don't even know what the hot files are, why do you believe that placing them on DECram is a solution at all, let alone the right solution?
Maybe XFC is better, maybe the system needs more Oracle SGA or more RMS (global) buffers ?! Maybe the application is doing somehting rather silly which can be fixed!?

Good luck,

Hein van den Heuvel
HvdH Performance Consulting.


-------------- xfc_to_csv.pl --------
print "name,reads,writes,hits,hitrate,pages,drive,date\n";
while (<>) {
if (/^_(\S+:)\[.*\](\S+);/) { # line begins with filespec
$drive = $1;
$name = $2;
}


if (/ on (\d+)-(\w+)-(\d+)\s+(\d+:\d+)/) {
$n = index(" JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC", $2)/3;
$date = sprintf ("%4d%02d%02d_%02d:%02d", $3, $n, $1, $4, $5) if $n;
}

$pages = $1 if (/(\d+)\s+Total QIOs/);

if (/(\d+)\s+Virtual reads\s+(\d+)/) {
$hits=$1;
$reads=$2;
}
if (/(\d+)\s+Hit rate\s+(\d+)/) {
$writes=$1;
$hitrate=$2;
printf ("%s,%d,%d,%d,%d%,%d,%s,%s\n",
$name,$reads,$writes,$hits,$hitrate,$pages,$drive,$date);
}
}
Hein van den Heuvel
Honored Contributor

Re: file-level IO monitoring

Ooops, forgot to click the 'retain formatting'
That would break the script (3 spaces before JAN).

See attachment.
Hein.

Robert Gezelter
Honored Contributor

Re: file-level IO monitoring

BoyeDav,

Just to amplify Hein's post, there is a rich set of functionality BELOW the SHOW MEMORY/CACHE qualifier. I recommend the HELP text as well worthwhile reading.

- Bob Gezelter, http://www.rlgsc.com
Ian Miller.
Honored Contributor

Re: file-level IO monitoring

Note there is a better version of the procio SDA extension available at
http://eisner.encompasserve.org/~halle/

However the SHOW MEM/CACHE command is probably the way to go

$ show mem/cache=(topqio,vol=DEVICENAME)
____________________
Purely Personal Opinion