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

Reply via email to