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 

Optimize Job using Strobe report

 
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
aniscorp
Beginner


Joined: 24 Apr 2006
Posts: 14
Topics: 3

PostPosted: Thu Apr 27, 2006 12:39 am    Post subject: Optimize Job using Strobe report Reply with quote

I want to optimize a Job which takes 17 min CPU time but the total time is 133 min.
(I do not know what to look for in the Strobe report, so putting down some
strobe details):

SESSION TIME - 131 MIN 27.06 SEC
CPU TIME - 16 MIN 3.00 SEC
WAIT TIME - 1 MIN 41.39 SEC
STRETCH TIME - 113 MIN 42.66 SEC
PAGES IN- 0 OUT- 0
EXCPS - 61,504 7.80/SEC
REGION SIZE BELOW 16M - 4,160K
REGION SIZE ABOVE - 32,768K


Task/DD Resour ServBy CPU ServBy I/O
------------------------------------------------
BVAL01XL CPU 83.92 .00
QTRA10 3390 2.27 3.54
QAIR10 3390 2.18 .03
..
Back to top
View user's profile Send private message
semigeezer
Supermod


Joined: 03 Jan 2003
Posts: 1014
Topics: 13
Location: Atlantis

PostPosted: Thu Apr 27, 2006 1:21 am    Post subject: Reply with quote

This program is CPU bound, that is I/O is not a problem. You need to compare the strobe report section on where CPU is being used to an assembler listing of your program. Then you can trace it back to the particular statements that are taking so much time. If you have a program that takes 16 minutes of CPU time, unless it is doing intensive number crunching, you should probably look at the big picture (the program design, sorting and searching algorithms, reliance on external resources, memory footprint, polling loops, etc) before you go to the localized details that STROBE will give you. Strobe is a great tool, but it should be used as the last optimization phase. A good design is the most important thing.
Back to top
View user's profile Send private message Visit poster's website
aniscorp
Beginner


Joined: 24 Apr 2006
Posts: 14
Topics: 3

PostPosted: Thu Apr 27, 2006 2:55 am    Post subject: Reply with quote

Thanks Semigeezer, for the explanation. I will look into the logic of the code.
Back to top
View user's profile Send private message
chaat
Beginner


Joined: 09 Apr 2006
Posts: 1
Topics: 0
Location: Minnesota

PostPosted: Wed May 17, 2006 12:08 am    Post subject: Reply with quote

strobe should tell you where the cpu time is being used. Is your program using DB2 ?

I would suggest that you look at the PSU section of the Strobe report (Program Summary Usage or something close to that.

good luck.

Chuck H.
_________________
Chuck Haatvedt
Back to top
View user's profile Send private message
aniscorp
Beginner


Joined: 24 Apr 2006
Posts: 14
Topics: 3

PostPosted: Thu Jun 08, 2006 1:57 am    Post subject: Reply with quote

No, the program does not use DB2.
The PSU summary tells the following:
Section Function CPU time
----------------------------------------------------------------------------
.VSAM VIRTUAL STORAGE ACC METH 6.72 6.72
.XMEMORY CROSS MEMORY 92.48 92.50

But I did not quite understand why the CPU spends so much time on cross memory.

There are 9 VSAM files. And strobe shows that each one takes approx. 9.5 min as causing CPU wait.
Back to top
View user's profile Send private message
Bithead
Advanced


Joined: 03 Jan 2003
Posts: 550
Topics: 23
Location: Michigan, USA

PostPosted: Thu Jun 08, 2006 2:01 pm    Post subject: Reply with quote

Check the "Data Set Characteristics Supplement report" for the VSAM files to see how they are used - DIR for direct, SEQ for sequential and DYN for dynamic.

Here are my notes:

If access is dynamic, check the Data Set Characteristics report for the number of I/Os (EXCP COUNTS) for the INDEX component of the cluster. Compare this to the number of records in the INDEX component (Data Set Characteristics Supplement Report : USER RECORDS). If I/O is considerably higher than the number of records, you should consider adding more index buffers. This is done by adding BUFNI to the DCB parameter in the JCL.

BUFNI should be calculated as INDEX LEVELS (Data Set Characteristics Supplement) plus REQUEST PARAMETERS LIST STRING (See RPL STRNO on Data Set Characteristics)

If access is Sequential, then add more data buffers using the BUFND parameter.

CA splits (and, to a certain extent, CI splits) add processing overhead. These can be reduced by adding more Freespace when the cluster is defined. Note that this also increases the size of the dataset.

The Time Distribution of Activity Level Report shows when each resource was used. If two files are constantly accessed at the same time, use the I/O Facility Utilization Summary Report to determine if they are on the same pack (The UNIT column). If they are, consider moving one of them to reduce device contention.
Back to top
View user's profile Send private message
aniscorp
Beginner


Joined: 24 Apr 2006
Posts: 14
Topics: 3

PostPosted: Tue Jun 13, 2006 9:26 am    Post subject: Reply with quote

Hi Bithead,

Thanks for the detailed explanation. But still I have a few queries:

There are 9 VSAM files, out of which 3 are in NSR and remaining are in LSR.

Problem seems to be with the 3 NSR files whose details are as follows:
File1: 34582 Indexed EXCP and 3230 seq EXCP. Total recs=21 lakhs
File2: 3977 Indexed EXCP and 7954 seq EXCP. Total recs=9 lakhs
File3: 9 Indexed EXCP and 10 seq EXCP. Total recs=21 lakhs

The first file1 is accessed sequentially. And the second is accessed both seqn and dynamically.

I tried increasing the BUNFI and BUFND, but no success.
Can you please help in this.
Back to top
View user's profile Send private message
Bithead
Advanced


Joined: 03 Jan 2003
Posts: 550
Topics: 23
Location: Michigan, USA

PostPosted: Tue Jun 13, 2006 4:26 pm    Post subject: Reply with quote

I have not had experience with NSR so I am not sure that buffer allocations can be changed by using BUFNI and BUFNO.
Back to top
View user's profile Send private message
ash_sudp
Beginner


Joined: 17 May 2006
Posts: 12
Topics: 0

PostPosted: Sat Feb 17, 2007 3:06 am    Post subject: Hi Aniscorp and Bithead Reply with quote

To know more on the VSAM on how they work, read below:
[code:1:09f8e00f9a]
I/O performance:


As CPU speed increases, the I/O response time (I/O Tr) is the determinant factor
in the average transaction response time, as shown in the formula:

I/O Tr = I/O Ts + I/O Tw

So obviously, you can get excellent response time returns by reducing I/O wait
time and I/O service time.


Generally speaking, you can reduce the average I/O response time (I/O Tr) using
software or hardware techniques.
The software techniques aim to decrease the number of I/O operations, by implementing:


_ Virtual address space (above and below the bar) buffer and data space
buffers

_ Hiperspace
Back to top
View user's profile Send private message
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