Health Check: Thread Limit

Atlassian Knowledge Base

On this page

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Problem

This health check looks at the maximum number of processes (threads) the user account running JIRA or Confluence can run at the same time.  The maximum processes is defined by the operating system, and often defaults to 1024 which is too low for Atlassian applications running at scale. If it is too low you may experience performance issues and out of memory errors such as Confluence crashes and throws 'OutOfMemory: unable to create new native thread' error.

Diagnosis

The number of processes for the user account running <Application> is sufficient.  The recommended maximum processes is 4096.

The Health Check has passed and the user running JIRA or Confluence can create an appropriate number of threads.

The maximum number of processes for the user account running <Application> is currently <number>, which can cause performance issues. We recommend increasing this to at least 4096. 

The health check has failed. The user running JIRA or Confluence cannot create an appropriate number of threads which can cause performance issues that are hard to detect, and ultimately crash the application with an OutOfMemoryError.

We couldn't determine the maximum number of processes for the user account running <Application>. We recommend this be set to at least 4096.

The health check was not able to determine the maximum number of processes. If you are experiencing out of behavior as described in Confluence crashes and throws 'OutOfMemory: unable to create new native thread' error you should manually check this maximum is adequate.

Resolution

We recommend setting the maximum running user processes and number of opened files permanently, the way you do this is operating system specific. In most Linux distributions this can be set temporarily using ulimit or permanently using limits.conf (e.g. UbuntuRedHat) by adding the following:

confluence      soft   nofile  4096
confluence      hard   nofile  8192
confluence      soft   nproc   4096        
confluence      hard   nproc   8192 

Replace confluence with the user that runs your instance of JIRA or Confluence.

systemd ignores system ulimits. The values will need to be specified in the proper service file <servicename>.service. A list of values can be found here.



DescriptionThis health check looks at the maximum number of processes (threads) the user account running JIRA or Confluence can run at the same time.  The maximum processes is defined by the operating system, and often defaults to 1024 which is too low for Atlassian applications running at scale. If it is too low you may experience performance issues and out of memory errors 
ProductJira, Confluence
PlatformServer
Last modified on Oct 29, 2018

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.