MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Calculate MIPS for a job

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Job Control Language(JCL)
View previous topic :: View next topic  
Author Message
complex
Beginner


Joined: 15 Sep 2003
Posts: 8
Topics: 4

PostPosted: Mon Sep 15, 2003 4:33 pm    Post subject: Calculate MIPS for a job Reply with quote

Is there a way to calculate MIPS for a batch job ?

Also can anyone tell me the significance of the "SERV" parm in the JESSYSMSG of the job log?
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12376
Topics: 75
Location: San Jose

PostPosted: Mon Sep 15, 2003 8:48 pm    Post subject: Reply with quote

Complex,

MIPS stands for (million instructions per second).IBM prefers SERVICE UNITS instead of MIPS.Each processor has a different MIPS rating depending on the workload.An RMF workload report or reduction of SMF data in type 5 or type 30 records will provide the average service consumed by jobs of different classes.

The amount of service consumed by an address space is computed by the formula:
Code:

   SERVICE UNITS =         (CPU x CPU Service Units)
                         + (SRB x SRB Service Units)
                         + (IOC x I/O Service Units)
                         + (MSO x Storage Service Units)


where CPU, IOC, MSO, and SRB are installation defined service definition coefficients and:

CPU Service Units = task (TCB) execution time, multiplied by an SRM constant which is CPU model dependent. Included in the execution time is the time used by the address space while executing in cross memory mode (that is, during either secondary addressing mode or a cross memory call). This execution time is not counted for the address space that is the target of the cross memory reference.


SRB Service Units = service request block (SRB) execution time for both local and global SRBs, multiplied by an SRM constant which is CPU model dependent. Included in the execution time is the time used by the address space while executing in cross memory mode (that is, during either secondary addressing mode or a cross memory call). This execution time is not counted for the address space that is the target of the cross memory reference.

I/O Service Units = measurement of individual dataset I/O activity and JES spool reads and writes for all datasets associated with the address space. SRM calculates I/O service using either I/O block (EXCP) counts or device connect time (DCTI), as specified on the IOSRVC keyword in the IEAIPSxx parmlib member. If DCTI is used to calculate I/O service, operations to VIO datasets and to devices that the channel measurement facility does not time are not included in the I/O service total.

When an address space executes in cross memory mode (that is, during either secondary addressing mode or a cross memory call), the EXCP counts or the DCTI will be included in the I/O service total. This I/O service is not counted for the address space that is the target of the cross memory reference.

Storage Service Units = (central page frames) x (CPU service units) x 1/50, where 1/50 is a scaling factor designed to bring the storage service component in line with the CPU component. NOT included in the storage service unit calculation are the central storage page frames used by an address space while referencing the private virtual storage of another address space through a cross memory function (that is, through secondary addressing or a cross memory call). These frames are counted for the address space whose virtual storage is being referenced.

The default coefficients are:

  • CPU=10.0
  • IOC=5.0
  • MSO=3.0
  • SRB=10.0



Here is a rexx routine(not written by me) which I use to get the mips.

Code:

       /* REXX */
 CVT  = STORAGE(10,4)
 RMCT = STORAGE(D2X(C2D(CVT)+604),4)
 SU   = STORAGE(D2X(C2D(RMCT)+64),4)
 SU   = 16000000/C2D(SU)
 SAY  'SU/SEC FACTOR IS' SU ,
 '(1 CPU SECOND EQUALS' SU 'SERVICE UNITS)'
 CVTPCCAT = STORAGE(D2X(C2D(CVT)+764),4)
 SAY 'PCCA VECTOR TABLE AT' C2X(CVTPCCAT)
 I = 0
 P = 0
 SAY '----------------------------------------'
 SAY ' PROC   VERSION  CPUID   MODEL    PCCA  '
 SAY 'NUMBER    CODE                   ADDRESS'
 SAY '----------------------------------------'
 DO WHILE I < 16
 PCCA   = STORAGE(D2X(C2D(CVTPCCAT)+I*4),4)
 IF PCCA  ^= '00000000'X THEN DO
    PCCAPCCA = STORAGE(D2X(C2D(PCCA)),4)
    PCCAVC   = STORAGE(D2X(C2D(PCCA)+4),2)
    PCCACPID = STORAGE(D2X(C2D(PCCA)+6),6)
    PCCAMDL  = STORAGE(D2X(C2D(PCCA)+12),4)
    IF PCCAPCCA = 'PCCA' THEN DO
       SAY ' ' I '     ' PCCAVC '   ' PCCACPID ,
           ' '!!PCCAMDL ' ' C2X(PCCA)
       P = P + 1
       END
    END
 I = I + 1
 END
 IF P > 1 THEN PROCS = 'PROCESSORS'
          ELSE PROCS = 'PROCESSOR'
 SAY
 SAY P PROCS 'IN THIS COMPLEX'
 MIPS = SU/48.5
 SAY
 SAY '** TOTAL MIPS                   :' MIPS*P
 IF P > 1 THEN SAY ,
  '** EQUIVALENT UNIPROCESSOR MIPS :' MIPS
/*                                           */
/*  MSU EVALUATION                           */
/*                                           */
MSU = SU*P*3600/1000000
SAY FORMAT(MSU,,0) 'MSU (FOR PSLC PRICING -'


or alternatively you can write a simple report from the SMF type 35 recs (see the record layout in the System Management Facility manual). Filter based on jobname (userid) and combine the amount for SRB and TCB time. That will be the total CPU (in hundreths of seconds) used by those TSO sessions.

Hope this helps...

cheers

kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
complex
Beginner


Joined: 15 Sep 2003
Posts: 8
Topics: 4

PostPosted: Tue Sep 16, 2003 5:14 pm    Post subject: Reply with quote

Thanks for the info kolusu . But , to tell the truth , i could not fully comprehend what you said (i am just a poor ole application developer).

I recently tuned a job and just wanted to check the CPU savings (or for that matter savings based on any criteria). From the job log it was evident that the CPU time had reduced , but there was this other parameter 'SERV' that had also reduced. Is this the same as the service units that you are referring to ? Here is a snap of what i am referring to -

--TIMINGS (MINS.)--
STEPNAME PROCSTEP RC EXCP CONN TCB SRB CLOCK SERV
STEP001 00 11585 44317 . 24 .00 1.4 1474K

Another thing , is there any way to calulate the dollar savings based on the CPU usage (time used) reduction ?

Thanks.
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12376
Topics: 75
Location: San Jose

PostPosted: Wed Sep 17, 2003 7:58 am    Post subject: Reply with quote

complex,

Well I am no biggie either. I am also just an application programmer.The display of cpu/srb/excp Metrics differs from shop to shop which are basically the output of the SMF exits. your shop uses an exit which just shows timings.

The serv you are referring is indeed the service units which I described.

The calculation of dollar saving depends on the charges by the vendor.And it varies from vendor to vendor and workload.

Hope this helps...

cheers

kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Job Control Language(JCL) All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group