View previous topic :: View next topic |
Author |
Message |
aniscorp Beginner
Joined: 24 Apr 2006 Posts: 14 Topics: 3
|
Posted: Thu Apr 27, 2006 12:39 am Post subject: Optimize Job using Strobe report |
|
|
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 |
|
 |
semigeezer Supermod
Joined: 03 Jan 2003 Posts: 1014 Topics: 13 Location: Atlantis
|
Posted: Thu Apr 27, 2006 1:21 am Post subject: |
|
|
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 |
|
 |
aniscorp Beginner
Joined: 24 Apr 2006 Posts: 14 Topics: 3
|
Posted: Thu Apr 27, 2006 2:55 am Post subject: |
|
|
Thanks Semigeezer, for the explanation. I will look into the logic of the code. |
|
Back to top |
|
 |
chaat Beginner
Joined: 09 Apr 2006 Posts: 1 Topics: 0 Location: Minnesota
|
Posted: Wed May 17, 2006 12:08 am Post subject: |
|
|
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 |
|
 |
aniscorp Beginner
Joined: 24 Apr 2006 Posts: 14 Topics: 3
|
Posted: Thu Jun 08, 2006 1:57 am Post subject: |
|
|
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 |
|
 |
Bithead Advanced

Joined: 03 Jan 2003 Posts: 550 Topics: 23 Location: Michigan, USA
|
Posted: Thu Jun 08, 2006 2:01 pm Post subject: |
|
|
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 |
|
 |
aniscorp Beginner
Joined: 24 Apr 2006 Posts: 14 Topics: 3
|
Posted: Tue Jun 13, 2006 9:26 am Post subject: |
|
|
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 |
|
 |
Bithead Advanced

Joined: 03 Jan 2003 Posts: 550 Topics: 23 Location: Michigan, USA
|
Posted: Tue Jun 13, 2006 4:26 pm Post subject: |
|
|
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 |
|
 |
ash_sudp Beginner
Joined: 17 May 2006 Posts: 12 Topics: 0
|
Posted: Sat Feb 17, 2007 3:06 am Post subject: Hi Aniscorp and Bithead |
|
|
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 |
|
 |
|
|