I believe the thing that causes the biggest difference between a 20 second jenkins startup and a 90+ second start is the amount of files in the JENKINS_HOME directory.
Jenkins does not use a database - it uses the filesystem. In order to take a tally of what you see on the Jenkins homepage, the server appears to do a giant directory traversal of everything in JENKINS_HOME in order to both discover which jobs exist but also which have artifacts and how many at the moment the Jenkins master service starts.
In order to keep Jenkins working as quickly as possible, do not keep huge numbers of job runs lying around. Set Jenkins jobs to only hold the last 100-150 job runs and keep the number of total jobs as low as possible in order to avoid the startup sequence being forced to do an insane directory scan across your JENKINS_HOME directory.
Comments
2 comments
I believe the thing that causes the biggest difference between a 20 second jenkins startup and a 90+ second start is the amount of files in the JENKINS_HOME directory.
Jenkins does not use a database - it uses the filesystem. In order to take a tally of what you see on the Jenkins homepage, the server appears to do a giant directory traversal of everything in JENKINS_HOME in order to both discover which jobs exist but also which have artifacts and how many at the moment the Jenkins master service starts.
In order to keep Jenkins working as quickly as possible, do not keep huge numbers of job runs lying around. Set Jenkins jobs to only hold the last 100-150 job runs and keep the number of total jobs as low as possible in order to avoid the startup sequence being forced to do an insane directory scan across your JENKINS_HOME directory.
@Jonathan Block
Thanks for your feedback, there is a link in the "parent article" of this one How to Troubleshoot and Address Liveness / Readiness probe failure which is completely aligned about what you are saying Master Sizing Guidelines
Please sign in to leave a comment.