Joined: 26 Nov 2002 Posts: 12376 Topics: 75 Location: San Jose
Posted: Mon Sep 15, 2003 8:48 pm Post subject:
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.
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 -
Joined: 26 Nov 2002 Posts: 12376 Topics: 75 Location: San Jose
Posted: Wed Sep 17, 2003 7:58 am Post subject:
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.
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