IBM Support

MustGather: Performance issues with WebSphere Application Server on Linux, AIX and Windows using wsadmin

Troubleshooting


Problem

 
If you are experiencing performance degradation, hang, no response, hung threads, CPU starvation, high CPU utilization, or deadlocks, this MustGather assists you in collecting the critical data that is needed to troubleshoot your issue.
 
 

Diagnosing The Problem

 
Click wasperf.py here to download.
 
While the issue is occurring, run the script using the following command from the bin directory of the profile running the WebSphere Application Server instance. If you want to trigger data collection on a specific event, refer to the additional instructions at the bottom of the page.
<was_root or profile_root>/bin/wsadmin.(bat|sh) -lang jython -f <path to>/wasperf.py server_name1 server_name2
To include node(s), quote the node name with a colon and separate server names with a space. To add another node, add a space between the quoted node names.
<was_root or profile_root>/bin/wsadmin.(bat|sh) -lang jython -f <path to>/wasperf.py "node_name1:server_name1 server_name2" "node_name2:server_name"
 
 
Replace server_name with the name of the server experiencing high CPU or performance problems. Add the node_name if needed. Typically, the server_name is sufficient but the node_name becomes necessary if the server_name is repeated across different nodes on the same machine. 
 
If security is enabled, please supply the correct WebSphere Application Server ID and password when prompted.
 
 
The following options can be added to the wasperf command line to change default values. 
# How many javacores you want to produce. Default is 9 (8 plus one)
--iteration=<value>
# Time interval in seconds between collections. Default is 30.
--delay=<value>
# Enable collection of OS statistics. Disabled by default. 
--collect-os
 
To include a runtime trace specification, add --runtime-trace=<value> to the wasperf command line. NOTE: This is not a startup trace specification.
 
Follow the instruction printed by the script when it is complete and upload the data to IBM Support:

Enhanced Customer Data Repository (ECuRep) - Send data
https://www.ibm.com/support/pages/enhanced-customer-data-repository-ecurep-send-data
 

Blue Diamond: Customer diagnostic data upload instructions
https://www.ibm.com/support/pages/blue-diamond-customer-diagnostic-data-upload-instructions

 

 
To monitor a specific event that initiates data collection, select the following tabs that fit your issue:
 
 

NOTE: This does not work on AIX which is being explored.

Use --cpu-threshold=<value> in the command line to start data collection when the CPU threshold is reached. For example:

<was_root or profile_root>/bin/wsadmin.(bat|sh) -lang jython -f <path to>/wasperf.py server_name1 server_name2 --cpu-threshold=70

By default, it checks the CPU usage for the process every 30 seconds. To change the interval, use --check-cpu-interval=<value> .

<was_root or profile_root>/bin/wsadmin.(bat|sh) -lang jython -f <path to>/wasperf.py server_name1 server_name2 --cpu-threshold=70 -check-cpu-interval=15

Document Location

Worldwide

[{"Type":"MASTER","Line of Business":{"code":"LOB77","label":"Automation Platform"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"ARM Category":[{"code":"a8m50000000CdBVAA0","label":"WebSphere Application Server traditional-All Platforms-\u003EHang Performance CPU"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"},{"code":"PF033","label":"Windows"}],"Version":"8.5.5;9.0.0;9.0.5"}]

Document Information

Modified date:
09 December 2025

UID

ibm17159085