|
|
| Author |
Message |
Anuj D.
Global Moderator
Joined: 22 Apr 2006 Posts: 2156 Location: Phoenix, AZ
|
|
|
|
| revathitcs wrote: |
| BLKSIZE =0 |
And you win the smallest answer of the month award... |
|
| Back to top |
|
 |
References
|
|
 |
Guru Bob
New User
Joined: 31 Jan 2008 Posts: 21 Location: Malaysia
|
|
|
|
My understanding is that 240K (old channel data xfer size if not FICON or ESCON) is the optimum BUFFEr size required to cause no delay in READ/WRITEs for QSAM files.
240K is for a 3390 is 9 buffers at the maximum optimum BLKSize of 27998. Hence coding BUFNO=10 for any files with >24,000 bytes for a BLKSIZE will be cool. I believe that hence allocating twice the number of buffers from the 240K size will allocate you two sets of buffers one seat being read/written and the other still haveing records read or written to them simultaneoulsy.
WIth FICON and SANs etc I am not sure how tru this is now.
DATA (QSAM ) buffers reside for COBOL program where ever you have specified your DATA(31) above the line or DATA(24) below the line (hence a severe limit on the number of BUFNO values (S80A,S878 abends) ). AMODE and RMODE of the program also influence this. |
|
| Back to top |
|
 |
Terry Heinze
Active User
Joined: 14 Jul 2008 Posts: 159 Location: Richfield, MN, USA
|
|
|
|
| Agree with expat. I also thought increasing BUFNO would be beneficial, but notso according to a performance analyst I once talked to. Increasing BUFNO will not decrease EXCPs which is the elapsed-time-hogger. BLKSIZE has much more of an impact on reducing EXCPs, and therefore elapsed time, than BUFNO. You can see this for yourself by testing with various combinations of both. Also, half-track blocking is usually what SDB picks, but not always. The bigger the LRECL, the better the chances are that something like 1/3-track blocking might be chosen. |
|
| Back to top |
|
 |
Suresh Shankarakrishnan
New User
Joined: 11 Jul 2008 Posts: 22 Location: USA
|
|
|
|
http://www.ibmmainframes.com/about22889.html
Although the above link states 27998, we use 27997 to get the block size of a dataset.
Example , lrecl = 133.
27997/133 = 210 (get the integer value by truncating the decimal point, not rounding off)
210 * 133 = 27930
This relates specifically to creating blocksize, not sure if this helps though. |
|
| Back to top |
|
 |
gcicchet
Senior Member
Joined: 28 Jul 2006 Posts: 651
|
|
|
|
Hi,
may I ask why you are using 27997 and not 27998.
If you have a file with LRECL=13999 RECFM=FB you would be wasting a fair bit of space.
Blocksize of 27997 would give you 3 records per track
Blocksize of 27998 would give you 4 records per track.
I picked LRECL of 13999 as an example as it is half of 27998.
Gerry |
|
| Back to top |
|
 |
Guru Bob
New User
Joined: 31 Jan 2008 Posts: 21 Location: Malaysia
|
|
|
|
Terry
I have been playing with BUFNO and being a fan of 1/2 track blocking and knowing the benefit I was playing with BUFNO to see if it does or does not improve throughput. Previuosly I thought also that BUFNO had no effect but I am finally proven wrong.
Setting BUFNO to 5, 30 and 15 showed remarkedly different results in the ELAPSED time with 1 minute 35 secs and then 28 seconds and then 44 seconds for BUFNO=15 respectively. There is no difference in the number of EXCPS which is exactly what I expect. BUFNO 30 show me the best decrease in execution time being some 30% of the BUFNO=5 settings and BUFNO=15 was only 40% reduction in BUFNO execution times. I ran this 5+ times to prove thhe results.
I used IDCAMS 2 SEQUENTIAL FILES of 600+ cylinders) for my testing and will today use a COBOL program and a EASYTRIEVE Program also just to confirm.
Using 27997 for the BLKSIaze is frought with danger as pointed out. WHy not use the BLK3390 command instead? I also assume that that site does not use SMS else you would not even have to specify BLKSIZE parameter in the JCL. COding the BLKSIZE makes it difficult to change to a new device later or even CART usage. |
|
| Back to top |
|
 |
Terry Heinze
Active User
Joined: 14 Jul 2008 Posts: 159 Location: Richfield, MN, USA
|
|
|
|
| Although you ran 5+ tests, the job mix was most likely different in each case. Improved elapsed time is tough to measure because of job mix. I'd like to see what EXCP results you get with varying block sizes. I'd test it myself if I had access to a mainframe. I'm not surprised that you found no difference in EXCPs with varying BUFNO parameters. That was my experience also. |
|
| Back to top |
|
 |
Guru Bob
New User
Joined: 31 Jan 2008 Posts: 21 Location: Malaysia
|
|
|
|
Terry
I know from previous tests that we run during training classes smaller blksizes (and production fixes) dramatically increase the EXCP count. I only recommend 1/2 track blocking or for large LRECL 1/3 track blocking.
Basically any BLKSIZE between 19K-25K on a 3390 is a waste of DASD. |
|
| Back to top |
|
 |
Guru Bob
New User
Joined: 31 Jan 2008 Posts: 21 Location: Malaysia
|
|
|
|
To go back to the original post and the requirement.
Thre is n=more to tuning than just changing the BLKSIZE parameter - IMS DB/DC tuning if you run it?
VSAM tuning if you run it?
DB2 tuning if you run it?
More benfit can be achieved by tuning VSAM than BLKSIZE usually unless the BLKSIZE is really bad.
COBOL ensure that BLOCK CONTAINS 0 RECORDS is coded
BACKUPS and RESTORES using SORT or ADRDSSU or IDCAMS all parmaterised correctly (including BUFND,BUFNI,BUFNO etc were permitteed) will assist greatly. SOunds like a small patch to a big problem.
Have you confirmed with your SYSPROG/DASD administrarot if SMS is running for all QSAM files or only some. Do you still code VOL=???? or omit this parameter? |
|
| Back to top |
|
 |
gcicchet
Senior Member
Joined: 28 Jul 2006 Posts: 651
|
|
|
|
Hi Guru Bob,
| Quote: |
| WHy not use the BLK3390 command instead? |
The above command is only site specific.
Gerry |
|
| Back to top |
|
 |
Suresh Shankarakrishnan
New User
Joined: 11 Jul 2008 Posts: 22 Location: USA
|
|
|
|
| I believe for datasets with a smaller lrecl ( for example even as high as 4000 ) using 27997 or 27998 does not matter. Having said that, I honestly do not know why we use 27997 and not 27998. Will have to ask a systems person at my site. |
|
| Back to top |
|
 |
|
|