Good work!
On 30/10/2020 10:40 am, Andrew Rowley wrote:
On 30/10/2020 2:32 am, Kirk Wolf wrote:
Your performance work in this area is very interesting to me. I
would love
to hear more if you ever write up your findings, even informally.
I have been looking at SMF data and trying to build a picture of the
work that was running from the SMF records. I have written up some of
what I have found here:
https://www.blackhillsoftware.com/news/2019/08/27/comparing-bash-and-bin-sh-on-z-os/
and here:
https://www.blackhillsoftware.com/news/2019/06/20/understanding-z-os-unix-work-with-easysmf/
When a job runs unix work much of the work can appear in SMF records
for the unix tasks, not the original job.
E.g. for the script I was testing, running under bash only 0.02s of
CPU time appears in the SMF record for the job. But there are SMF
records for about 9000 unix tasks which add up to about 66s of CPU.
Under /bin/sh, the job CPU time appears the same at 0.02s, but with
the records from the unix work it is about 4.7s. Either way, you miss
most of the work if you just look at the job records.
Interestingly, I tried running the script under COZBATCH and it broke
the logic to associate the unix tasks with the main job. I will have
to look into that. COZBATCH did run steps in a separate address space
and generated about the same number of SMF records, but it looked
different to BPXBATCH with _BPX_SHAREAS.
I don't really understand what I see in the SDSF PS display. The same
script, run under COZBATCH and BPXBATCH with _BPX_SHAREAS (sorry about
the wrap):
JOBNAME JobID Status Owner State PID PPID ASID
ASIDX Command
ANDREWRB JOB03101 FILE SYS KERNEL WAIT ANDREWR 1F 66115 16843349
51 0033 cut -c1
ANDREWRB STC03080 RUNNING ANDREWR 1R 16843329
16843349 79 004F /bin/sh /home/andrewr/breakit.sh
ANDREWRB JOB03101 WAITING FOR CHILD ANDREWR 1W 16843349
50397780 51 0033 /bin/sh /home/andrewr/breakit.sh
ANDREWRB JOB03101 WAITING FOR CHILD ANDREWR 1W 50397780
67175122 51 0033 /bin/sh
ANDREWRB JOB03101 FILE SYS KERNEL WAIT ANDREWR 1F 67175122
1 51 0033 COZBATCH
JOBNAME JobID Status Owner State PID PPID ASID
ASIDX Command
ANDREWRE STC03080 RUNNING ANDREWR 1R 33620729
50397388 79 004F setfacl -m u:IBMUSER:rwx broken/24793
ANDREWRE STC03080 WAITING FOR CHILD ANDREWR 1W 50397388
83952212 79 004F /bin/sh /home/andrewr/breakit.sh
ANDREWRE JOB03106 FILE SYS KERNEL WAIT ANDREWR 1F 83952212
1 51 0033 BPXBATCH
What is the extra "/bin/sh /home/andrewr/breakit.sh" command in the
separate address space under COZBATCH?
Under COZBATCH, PS consistently showed the cut command which is part
of the pipe. Under BPXBATCH, the only command which seemed to show up
was setfacl. Presumably that is because that was the command where
most of the time was spent.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN