Question & Answer
Question
What should I collect for performance issues?
Answer
QMGTOOLS has several programs to help collect performance data. One is the STRPSC command. It will collect Job Watcher data, PEX data, a trace connection, DB trace, and collection services performance data.
Important Note |
If an error message, CPFAF02, occurs after starting PEX using this tool, check to see that no other PEX traces are active. You can view all PEX sessions on the system using command ENDPEX <enter>.
If the PEX session is named QPMINTPEXD, then Collection Services is active and using a collection profile that is not the default. To view the status of Collection Services, type GO PERFORM and choose the option to collect performance data (normally option 2). From this menu, you should see the parameter "Collection profile". The default is *STANDARDP. A profile of *ENHCPCPLN will result in a PEX session, QPMINTPEXD, being started. Temporary turn off Collection Services in order to run this PEX.
If there is a user defined PEX session, end that, and repeat the steps to start the collection again.
Reference error message ID: CPFAF02, diagnostic code 010020, diagnostic data 139-8195
Installing QMGTOOLS |
If QMGTOOLS is not installed, follow this URL :
http://www-01.ibm.com/support/docview.wss?uid=nas8N1011297
Quick Start Guide |
Step 1 First check to see if the required PTFs are applied. There are 2 options.
-
Option 1 - Use QMGTOOLS to check for PTFs Run command : QMGTOOLS/CMPPEXPTF
This command will attempt to FTP to IBM's public FTP site and compare the recommended PTFs for PEX/Job Watcher. If this command fails (unable to FTP, etc.), follow Option 2
Option 2 - Compare the iDoctor website
Perform an internet search for IBM iDoctor. Once at the IBM iDoctor website, on the right frame should contain links for PTFs. Example below :
Step 2 Start the super collection
-
For most common issues, use this command to start up the data collection :
QMGTOOLS/STRPSC FUNCTION(*START) PEXDFN(*XSM)
2 jobs will be submitted, IBMJW and PEXMON.
IBMJW jobuser BATCH ACTIVE PGM-QJW
PEXMON jobuser BATCH ACTIVE PGM-QPEXLOOP
Data being collected will be PEX, Job Watcher, and Collection Services data.
Step 3 Stop the super collection
-
When you believe you have captured the issue, stop and dump the data. The default library that the data is dumped is IBMPEX.
Run command : QMGTOOLS/STRPSC FUNCTION(*STOP)
Run command : QMGTOOLS/STRPSC FUNCTION(*DUMP)
A job DMPPEX is submitted, when that job is done, the library can be saved and sent to IBM.
Step 4 Send the data to IBM
-
As stated in Step 3, when the DMPPEX job is done, save the library where the data is stored (by default IBMPEX) and send to IBM for analysis.
Follow this URL for information on how to upload data to IBM :
http://www-01.ibm.com/support/docview.wss?uid=nas8N1019224
Detailed Instructions |
Step 1 First check to see if the required PTFs are applied. There are 2 options.
-
Option 1 - Use QMGTOOLS to check for PTFs Run command : QMGTOOLS/CMPPEXPTF
This command will attempt to FTP to IBM's public FTP site and compare the recommended PTFs for PEX/Job Watcher. If this command fails (unable to FTP, etc.), follow Option 2
Option 2 - Compare the iDoctor website
Perform an internet search for IBM iDoctor. Once at the IBM iDoctor website, on the right frame should contain links for PTFs. Example below :
Step 2 Select Performance/Misc data collection
Step 3 In the Performance Menu, select Combined PEX/Jobwatcher/Collection Service trace:
Step 4 Starting up the super collection
-
The main command is QMGTOOLS/STRPSC. These are the parameters and their meanings when starting up the super collection.Function *START - start the super collection
*STOP - stop the super collection
*DUMP - stop and dump data from the super collection
*DELETE - stop and delete data from the super collection (this does not delete data already in the data library, just data that has not been dumped)Data library Where to store the data Clear data library Y, N
Clear the data library first before startingStop time If you wish to have the super collection stop at some specified time, specify the time in hh:mm where hh is the hour and mm is the minutes Delete prv PEX ssn Delete previous PEX session (Y/N)
Setting this makes sure that there is not previous sessions exist in the buffer. Default is N.Start PEX Y/N
Yes or no to start PEXSession prefix when starting Default is IBMPEX for the session prefix. As the super collection cycles through PEX or JW, it will append a number at the end, like IBMPEX01, IBMPEX02, and so forth.
The number of PEX/JW collections are based on the PEX2KEEP parameter (Number of PEX to keep).Pex definition name There are several supplied PEX definitions depending on the performance issue. You can either use a predefine definition or put in a PEX definition that you have defined.
*XSM - Geographic Mirroring (catch all definition)
*CPU - High CPU (TPROF)
*CPUSW - CPU w/ task switch
*DISK - Busy disk/long disk ops
*HEAPALL - trace all heap
*HDLHEAP - trace handle based heap
*RESHEAP - trace resident heap
*SYSHEAP - trace system heap
*LCLHEAP - trace local heap
*USRHEAP - trace user heap
*ACTGRPHP - trace activation heap
*LONGSAVE - Long save trace
*TASKSWT - Task Switch trace
*TSKSWPMCO - Task Switch w/ PMCO events
*ASM - Creates/Destroys
*MUTEX - Mutex lock and unlock events
If leaving the default of *SELECT, you will be prompted later to select a definition.Pex filter If a PEX filter was created, specify it here. Add addtional events Add additional events to collect. Currently the only one is *FAULT to collect fault events Pex interval The interval to collect when collecting CPU events. Either leave as *DFT or put in the interval. Max PEX size in gigabytes Size of PEX in gigabytes. 4 gigabytes is the default. Number of PEX to keep The number of PEX collections to keep. Default is 3. % left of size before cycle The % left in the PEX size before the program starts a new PEX session and ends the current PEX session. Default is 10%. # of events before cycling PEX When specified, this will over ride the previous parameter. The number of PEX events collected before the program cycles to then next PEX collection and end the current collection. Default is *NONE. Trigger on message ID Up to 3 message IDs can be monitor to trigger the program to stop. The messages ID are monitored in QSYSOPR and QHST. Default is *NONE. Start Job Watcher (R610 & up) Start Job Watcher for releases R610 above. Default is Y. JW collectioni interval Job Watcher collects a snapshot of the system every xx seconds. Default is 10 seconds. # of JW collections to keep How many JW collections to keep. Default is 2.
JW will cycle every 3600 seconds or 1 hour.Maximum storage for JW Maximum storage for JW in gigabytes. Default is 4 gigabytes. Include inactive jobs Y/N
Specifies whether detailed data for all jobs and tasks, including inactive jobs and tasks, will be collected for the first interval. Default is N.JW SQL detail Collect SQL statements. Default is *NONE.
*NONE - does not collect any SQL statements
*LOW - collects *SQLCURSTMT *ALWAYS
*MED - collects *SQLSTMT *ALWAYS
*HIGH - collects *SQLDETAIL *ALWAYSJW activation group data Collect activation group data. N is the default. If yes, *ACTGRPDTL is added to the JW definition. JW socket data Collect socket data. N is the default. If yes, *SOCKETJOBS is added to the JW definition. JW Java data Collect java data. N is the default. If yes, *JAVA and *JAVASTACK is added to the JW definition. Collection services (R610 & up) Check for collections services and start it if not started. Y is the default. Dump XSM SST macros When ending the super collection, dump the SST macros for XSM. Default is N. Trace connection Start a trace connection. If yes, set the trace connection size in megabytes. Default is N and 900 megabytes is the size. DBMON option Start DBMON. If so, either *ALL for job or specific job name to trace (generic* is allowed). Specify the size of DBMON in megabytes.See this TechNote for more information on Database Monitor impacts: www.ibm.com/support/docview.wss?uid=ibm10882914Start AA monitor This starts up the AA monitor at the same time (it will also be ended when this super collection is ended). Refer to this URL for information :
http://www-01.ibm.com/support/docview.wss?uid=nas8N1022199Exit program/library This is reserved for support center use. Jobq/Jobq library What jobq to submit the super collection.
Step 5 Jobs
-
The common 2 jobs when the super collection is started are PEXMON and IBMJW. If starting a trace connection, job TRCCNN_ will be submitted. If starting DB monitor trace, job DBMONWRAP will be submitted.
IBMJW jobuser BATCH ACTIVE PGM-QJW
PEXMON jobuser BATCH ACTIVE PGM-QPEXLOOP
TRCCNN_ jobuser BATCH ACTIVE PGM-TRCCNNCLP
DBMONWRAP jobuser BATCH ACTIVE PGM-DBMONWRAP_
See this TechNote for more information on Database Monitor impacts: www.ibm.com/support/docview.wss?uid=ibm10882914
Step 6 Ending the collection
-
There are 2 ways to end the collection, *END or *DUMP.
*END is when you want to suspend the data collection and dump at a later time. This is useful if you don't want to impact performance and dump later when the system is idle. For this, run command QMGTOOLS/STRPSC FUNCTION(*STOP).
*DUMP, refer to the next step.
Step 7 Dumping the data
-
Choosing *DUMP will stop the super collection if it is active and dump the data. Here are some parameters that presented when *DUMP is used.
Session prefix Dump all the session prefix or just a specific prefix. The session prefix was specified during the start of the super collection. Default is *ALL. Wait for CS data to cycle Default of Y will wait until CS is cycled before copying that to the data library. CS data by default will cycle every 15 minutes. Dump PEX to *MGTCOL Dump PEX into an object of type *MGTCOL or in files. Default is Y. Jobq/Jobq library What jobq to submit the dump job, default is QSYSNOMAX.
A job called DMPPEX is submitted and will dump data into the data library specified during the start of the super collection.
Step 8 Sending data to IBM for analysis
-
Save the library that contains the traces and send that to IBM.
Follow this URL for information on how to upload data to IBM :
http://www-01.ibm.com/support/docview.wss?uid=nas8N1019224
Detail Information On Supplied PEX Definitions |
*XSM - Geographic Mirroring (catch all definition)
TYPE(*TRACE) JOB((*ALL)) TASK(*ALL) TRCFULL(*WRAP) INTERVAL(200) TRCTYPE(*SLTEVT)
SLTEVT(*YES) BASEVT((*TASKAVAIL) (*TASKSWTIN) (*TASKSWTOUT) (*TASKSWTOUTINT)
(*TASKSWTOUTQ *NONE *FORMAT2)) DSKEVT((*READSTR) (*READEND) (*WRTSTR)
(*WRTEND) (*RMTWRTSTR) (*RMTWRTEND)) CMNEVT((*IP) (*TCP)
(*PMCO *NONE *FORMAT2))
*CPU - High CPU (TPROF)
TYPE(*TRACE) JOB((*ALL/*ALL/*ALL *ALL *ALLSBS)) TASK(*ALL) TRCFULL(*WRAP)
INTERVAL(1) TRCTYPE(*SLTEVT) SLTEVT(*YES) BASEVT((*PMCO *NONE *FORMAT2))
*CPUSW - CPU w/ task switch
TYPE(*TRACE) JOB((*ALL *ALL *ALLSBS)) TASK(*ALL) TRCFULL(*WRAP)
INTERVAL(1) TRCTYPE(*SLTEVT) SLTEVT(*YES) BASEVT((*TASKAVAIL *NONE *FORMAT1)
(*TASKSWTIN *NONE *FORMAT1) (*TASKSWTOUT *NONE *FORMAT1)
(*TASKSWTOUTQ *NONE *FORMAT2) (*TASKSWTOUTINT *NONE *FORMAT1)
(*PMCO *NONE *FORMAT2) (*CPUSWTIN *NONE *FORMAT1) (*CPUSWTOUTY *NONE *FORMAT1)
(*CPUSWTOUTP *NONE *FORMAT1)) DSKEVT((*READSTR *NONE *FORMAT1)
(*READEND *NONE *FORMAT1) (*WRTSTR *NONE *FORMAT1) (*WRTEND *NONE *FORMAT1))
CMNEVT(*NONE)
*DISK - Busy disk/long disk ops
TYPE(*TRACE) JOB((*ALL/*ALL/*ALL *ALL *ALLSBS)) TASK(*ALL) TRCFULL(*WRAP)
TRCTYPE(*SLTEVT) SLTEVT(*YES) BASEVT(*NONE) DSKEVT((*WRTSTR *NONE *FORMAT1)
(*WRTEND *NONE *FORMAT1) (*READSTR *NONE *FORMAT1) (*READEND *NONE *FORMAT1))
*HEAPALL - trace all heap
TYPE(*TRACE) JOB((*ALL *ALL *ALL)) TASK(*ALL) TRCFULL(*WRAP)
ADDTHDOPT(*ALL) LSTALLJOB(*YES) INTERVAL(200) TRCTYPE(*SLTEVT)
SLTEVT(*YES) MCHINST(*NONE) BASEEVT((*PCMO *NONE *FORMAT2))
STGEVT((*HDLHEAP *NONE *FORMAT1) (*RESHEAP *NONE *FORMAT1)
(*SYSHEAP *NONE *FORMAT1) (*LCLHEAP *NONE *FORMAT1)
(*USRHEAP *NONE *FORMAT1) *ACTGRPHEAP *NONE *FORMAT1))
*HDLHEAP - trace handle based heap
TYPE(*TRACE) JOB((*ALL/*ALL/*ALL)) TASK(*ALL) TRCFULL(*WRAP) ADDTHDOPT(*ALL)
LSTALLJOB(*YES) INTERVAL(200) TRCTYPE(*SLTEVT) SLTEVT(*YES) MCHINST(*NONE)
BASEVT((*PMCO *NONE *FORMAT2)) STGEVT((*HDLHEAP *NONE *FORMAT1))
*RESHEAP - trace resident heap
TYPE(*TRACE) JOB((*ALL/*ALL/*ALL)) TASK(*ALL) TRCFULL(*WRAP) ADDTHDOPT(*ALL)
LSTALLJOB(*YES) INTERVAL(200) TRCTYPE(*SLTEVT) SLTEVT(*YES) MCHINST(*NONE)
BASEVT((*PMCO *NONE *FORMAT2)) STGEVT((*RESHEAP *NONE *FORMAT1))
*SYSHEAP - trace system heap
TYPE(*TRACE) JOB((*ALL/*ALL/*ALL)) TASK(*ALL) TRCFULL(*WRAP) ADDTHDOPT(*ALL)
LSTALLJOB(*YES) INTERVAL(200) TRCTYPE(*SLTEVT) SLTEVT(*YES) MCHINST(*NONE)
BASEVT((*PMCO *NONE *FORMAT2)) STGEVT((*SYSHEAP *NONE *FORMAT1))
*LCLHEAP - trace local heap
TYPE(*TRACE) JOB((*ALL/*ALL/*ALL)) TASK(*ALL) TRCFULL(*WRAP) ADDTHDOPT(*ALL)
LSTALLJOB(*YES) INTERVAL(200) TRCTYPE(*SLTEVT) SLTEVT(*YES) MCHINST(*NONE)
BASEVT((*PMCO *NONE *FORMAT2)) STGEVT((*LCLHEAP *NONE *FORMAT1))
*USRHEAP - trace user heap
TYPE(*TRACE) JOB((*ALL/*ALL/*ALL)) TASK(*ALL) TRCFULL(*WRAP) ADDTHDOPT(*ALL)
LSTALLJOB(*YES) INTERVAL(200) TRCTYPE(*SLTEVT) SLTEVT(*YES) MCHINST(*NONE)
BASEVT((*PMCO *NONE *FORMAT2)) STGEVT((*USRHEAP *NONE *FORMAT1))
*ACTGRPHP - trace activation heap
TYPE(*TRACE) JOB((*ALL/*ALL/*ALL)) TASK(*ALL) TRCFULL(*WRAP) ADDTHDOPT(*ALL)
LSTALLJOB(*YES) INTERVAL(200) TRCTYPE(*SLTEVT) SLTEVT(*YES) MCHINST(*NONE)
BASEVT((*PMCO *NONE *FORMAT2)) STGEVT((*ACTGRPHEAP *NONE *FORMAT1))
*LONGSAVE - Long save trace
TYPE(*TRACE) JOB((*ALL/*ALL/*ALL *ALL *ALLSBS)) TASK(*ALL) TRCFULL(*WRAP)
TRCTYPE(*SLTEVT) SLTEVT(*YES) MCHINST(*NONE) OSEVT((*SAVRST *NONE *FORMAT1))
*TASKSWT - Task Switch trace
TYPE(*TRACE) JOB((*ALL *ALL *ALLSBS)) TASK(*ALL) TRCFULL(*WRAP)
TRCTYPE(*SLTEVT) SLTEVT(*YES) BASEVT((*TASKAVAIL *NONE *FORMAT1)
(*TASKSWTIN *NONE *FORMAT1) (*TASKSWTOUT *NONE *FORMAT1)
(*TASKSWTOUTINT *NONE *FORMAT1) (*TASKSWTOUTQ *NONE *FORMAT2))
DSKEVT((*READSTR *NONE *FORMAT1) (*READEND *NONE *FORMAT1)
(*WRTSTR *NONE *FORMAT1) (*WRTEND *NONE *FORMAT1)
(*RMTWRTSTR *NONE *FORMAT1) (*RMTWRTEND *NONE *FORMAT1)) CMNEVT(*NONE)
*TSKSWPMCO - Task Switch w/ PMCO events
TYPE(*TRACE) JOB((*ALL/*ALL/*ALL)) TASK(*ALL)
TRCFULL(*WRAP) INTERVAL(200) TRCTYPE(*SLTEVT) SLTEVT(*YES)
BASEVT((*TASKAVAIL *NONE *FORMAT1) (*TASKSWTIN *NONE *FORMAT1)
(*TASKSWTOUT *NONE *FORMAT1) (*TASKSWTOUTINT *NONE *FORMAT1)
(*TASKSWTOUTQ *NONE *FORMAT2) (*PMCO *NONE *FORMAT2)
(DSKEVT((*READSTR *NONE *FORMAT1) (*READEND *NONE *FORMAT1)
(*WRTSTR *NONE *FORMAT1) (*WRTEND *NONE *FORMAT1)
(*RMTWRTSTR *NONE *FORMAT1)
*ASM - Creates/Destroys
TYPE(*TRACE) JOB((*ALL/*ALL/*ALL))TASK(*ALL) INTERVAL(1)
TRCTYPE(*SLTEVT) SLTEVT(*YES) MCHINST(*NONE)
BASEVT((*PMCO *NONE *FORMAT2)) STGEVT((*CRTSEG *NONE *FORMAT2)
(*DLTSEG *NONE *FORMAT2) (*EXDSEG*NONE *FORMAT2)
(*FNDSEGIZ) (*TRUNCSEG *NONE *FORMAT2))
*MUTEX - Mutex lock and unlock events
TYPE(*TRACE) JOB((*ALL/*ALL/*ALL))TASK(*ALL) INTERVAL(200)
TRCTYPE(*SLTEVT) SLTEVT(*YES) MCHINST(*NONE)
BASEVT((*PMCO *NONE *FORMAT2)) SYNCEVT((*PTRMTXLOCK *NONE *FORMAT2)
(*PTRMTXUNLOCK *NONE *FORMAT2))
Was this topic helpful?
Document Information
Modified date:
18 December 2019
UID
nas8N1020482