jl%dac.triumf.cdn%ubc.CSNET@CSNET-RELAY.ARPA (John Lloyd) (05/20/86)
A helpful thing to do is run an interactive-priority batch job every hour to sample the response time. Have it run in its own queue (or a system manager's queue) to prevent interaction with user jobs. It should sample the current time (f$time()) sample the cpu time (f$getjpi(...)) do something "representative". We measure disk operation counts using f$getdvi, group logical names to store previous measurements, and several lines of DCL to calculate the differences. It doesn't really matter what this step is, as long as you don't change it, in order to keep measurements comparable over the course of a few months. resubmit the batch job sample the current time calculate the elapsed time difference (half dozen lines of DCL) open/append a log file and write the results. Then, write a little program to read the log file, calculate interesting figures like average, std deviation (we use 80 percentile response), max, min. The program we use calculates each of thiese figures for all 24 hours of the day (hence 30 x 24 measures become 24), and writes out a small file. Next, a little Datatrieve graphing and you have things like graph of best, worst, average response time (seconds) by hour of day(0..23) graph of normalized response time (average, 80 percentile divided by "best") by hour of day (We call it "stretch factor") By appending all your samples, and plotting average or worst or whatever by the week for the last few months on a scatterplot, you get a bit of an idea whether your response times are getting better or worse as time goes by. I can send some sources if anyone feels lazy, but your best choice for the DCL part must be made knowing the workload your VAX(es) run. PS: In a cluster batch jobs start up to 1 or 2 minutes early, as only one VAX is the timekeeper. Use this trick to resubmit a job "on the hour": now=f$cvtime("+0000-1:30:00.00","ABSOLUTE") hour=f$cvtime(now,"ABSOLUTE","DATE")+":"+ - f$cvtime(now,"ABSOLUTE","HOUR")+"::" me=f$environment("PROCEDURE") me=f$elem(0,";",me) submit /after="''hour'" 'me' /nolog /...etcetera ------ John