After brooding quite a while over SMF records and (today) a dump, here is 
what I have to say about PDSE 'performance':

I have 26 large PDSE datasets (for Fault Analyzer side files) on 10 mod9 
volumes, a few of the datasets more than 100000 tracks allocation. Non-SMS 
managed.

Last week I used ISPF 3.4 to display them, put a 'b' in front of all of them 
and 
then typed PF3 in advance 26 times. It took more than 25 minutes to get the 
directory displayed for all of them. Yes, MINUTES.

In the following I'll be concentrating on one of those datasets. It has 9899 
member, and SMF 42 tells me that it took 10697 read requests with 465 read 
hits. How come it takes more read requests for the directory than there are 
member? Especially since I had just 'reorganized' that dataset (reallocate and 
copy - takes 50 minutes for 100000 tracks) which freed about 25000 pages. 

This morning I asked a colleague to do the browse for me via ISPF, while I 
dumped his userid to get a trace table. Aside from the fact that I caught the 
tail end of 'preparation' (apparently), as there is still some ISPF activity 
with 
dynallocs going on, I also caught some of the actual (PDSE) processing that 
takes forever:

Apparently the C01 PC (called 'DFSMS') first does some sort of getmain via 
PDSE storage manager. It touches all those pages once, then around *every* 
SSCH the following is done:

PC312 (TCBToken) out of IGWBIRP2 (the 'readpage routine')
PC90E (IARV64 PageFix) 
initiate IO and suspend
SSCH
I/O Interrupt and resume the tcb (with IO times between ssch and IO interrupt 
around 4-8ms)
PC90E (IARV64 PageUnfix) out of IGWBITX1

go back to TCBToken

While I certainly understand that a page must be fixed in order to do I/O to 
it, 
why fix each and every page separately? While apparently each call fixes a 
different page, why not do a bunch of them in one call? Then do a bunch of 
IO? 
Answer to self: Presumably because the page just read-in is the only place 
that has the pointer to the next page containing directory information. If 
that's true: What a design!

When I looked at the 11 (eleven) linkage stack entries (did I mention that 
there is a ton of linkage stack expand/contract program checks?) and 
searched SIS for the module names, it turned out that most of them belong to 
the 'PDSE Index Manager' that has more ptfs against it than can be healthy. 
<sarcasm on>That 'Index Manager' must have a very good algorithm to 
manage indices. <sarcasm off> Not to mention a ton of 'closed RET for more 
documentation' apars when said index manager has corrupted the PDSE. Well, 
unless corruption is copied over, it should not be corrupted. 

And I would need to open an ETR with IBM to get a current copy of IGWPIT 
(aka PHATOOL from the PDSE redbook; presumably the -further developed-
anti-corruption tool that was announced for 1.12 - it has been around for a 
while, mine is from z/OS 1.6). 

So, now that John Ehrmann has managed to get the PDSE discussion started, 
he is conspiciously absent from the discussion....

I repeat what I said before: If at all possible, stay away from large PDSEs! 
(There is a reason why HFSs are not 'strategic' and get replaced by zFS.)

My next step will be to try and get the things SMS-managed. While that 
*may* get rid of the 60s I/O times (about 10.000 times 6ms) that still leaves 
around 30s 'other' processing, presumably then all cpu intensive....

Regards, Barbara

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to