A specific job or your Jenkins environment is experiencing high CPU.
Required Data: High CPU On Linux
This article describes how to collect the minimum required information for high CPU issues on a CJP environment so that it can be
If the required data is bigger than 20 MB you will not be able to use ZenDesk to upload all the information. On this case we would like
to encourage you to use our upload service in order to attach all the required information. The
upload service works best in Chrome or
- Operating System: Linux
- CloudBees Jenkins Team (CJT)
- CloudBees Jenkins Platform - Client Master (CJP-CM)
- CloudBees Jenkins Platform - Operations Center (CJP-OC)
Required Data check list
Ideally, your environment is configured as documented in Prepare Jenkins For Support.
- Support bundle
- Output of the script
- GC log file for review
A support bundle from the problematic instance ideally when the issue is happening or in the worst case right after the issue is
exposed. Please, follow the KB below in case you don’t know how to generate a support bundle.
Output of the script jenkinshangWithJstack.sh
1. - Check you have the required tools to run the script included in the
See CloudBees Jenkins Platform Supported Java Versions > Recommended installations
jenkinshangWithJstack.sh script collects thread dump via jstack. It also needs the necessary packages for generating top, top dash H, vmstat, netstat, nfsiostat, nfsstat and iostat data.
jstack must be recognized as command in your Jenkins Host.
2. - Get the script
Download the jenkinshangWithJstack.sh.
3. - Make executable the script
The jenkinshangWithJstack.sh script will need to be made executable by running:
chmod +x jenkinshangWithJstack.sh.
4. - Get the
If CloudBees Jenkins Enterprise or CloudBees Jenkins Operations Center is running on Ubuntu you will need to confirm the PID via the command line by running
ps -ef | grep jenkins. This is required because the CloudBees Jenkins PID File contains the PID of the daemon process itself not the CloudBees Jenkins PID.*
5. - Check that
jenkinshangWithJstack.sh is running
jenkinshangWithJstack.sh script will generate data in the current directory where it is run from.
6. - If you are experiencing a high cpu issue please execute the script while the issue is occurring
jenkinshangWithJstack.sh script as the same user that starts Jenkins by running:
sudo -u $JENKINS_USER sh jenkinshangWithJstack.sh $JENKINS_PID 300 5
ps aux | grep jenkins
avahi 1115 0.0 0.0 32344 1328 ? Ss 2017 0:47 avahi-daemon: running [jenkins.local] exampleUser 3045 236 16.2 10286700 2645660 ? Ssl Jan02 6592:33 /etc/alternatives/java -Dhudson.slaves.WorkspaceList=- -Djava.awt .headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/ var/cache/jenkins/war --httpPort=8086 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20 root 10366 0.0 0.0 112652 964 pts/0 S+ 03:01 0:00 grep --color=auto jenkins
sudo -u exampleUser sh jenkinshangWithJstack.sh 3045 300 5
You can run the script without any arguments to validate if it will work as expected.
sudo -u exampleUser sh jenkinshangWithJstack.sh
jenkinshangWithJstack.sh script does not run as expected please upload the output the script generates from the terminal
window for review.
GC log file for review
If you followed Prepare Jenkins For Support then the gc logs file should be under