This page last changed on Aug 04, 2008 by jlargman.
If you are having performance issues with Confluence, and the advice on Performance Tuning has not helped, you can always ask us for help. Performance issues can be hard to diagnose, however, and we often spend a lot of time going back and forth looking for more information about what may be causing Confluence to be slow for you. The best way to get a speedy resolution to your issue is to provide this information up front.
Please gather all of the information listed below and include it in your support request, even if you think you have a good idea what's causing the problem. That way we don't have to ask for it later.
System Information
Confluence Server
- Take a screenshot of Confluence's Administration → System Information (or save the page as HTML)
- Take a screenshot of Confluence's Administration → Cache Statistics (or save the page as HTML)
- Find out the exact hardware Confluence is running on
- How many CPUs? What make and model? What MHz?
- How much memory is installed on the machine?
- How much memory is assigned to Confluence's JVM? (i.e. what are the -Xmx and -Xms settings for the JVM?)
- What other applications are being hosted on the same box?
Confluence Content
- How many users are registered in Confluence?
- How many spaces are there in your Confluence server?
- Approximately how many pages? (Connect to your database and perform 'select count(*) from content where prevver is null and contenttype = 'PAGE'')
- How much data is being stored in Bandana (where plugins usually store data)? (Connect to your database and perform 'select count(*), sum(length(bandanavalue)) from bandana')
The Database
- What is the exact version number of Confluence's database server?
- What is the exact version number of the JDBC drivers being used to access it? (For some databases, the full filename of the driver JAR file will suffice)
- Is the database being hosted on the same server as Confluence?
- If it is on a different server, what is the network latency between Confluence and the database?
- What are the database connection details? How big is the connection pool? If you are using the standard configuration this information will be in your confluence_cfg.xml file. Collect this file. If you are using a Data source this information will be stored in your application server's configuration file, collect this data.
User Management
- Are you using external user management or authentication? (i.e. JIRA or LDAP user delegation, or single sign-on)
- If you are using external JIRA user management, what is the latency between Confluence and JIRA's database server?
- If you are using LDAP user management:
- What version of which LDAP server are you using?
- What is the latency between Confluence and the LDAP server?
Diagnostics
Observed Problems
- Which pages are slow to load?
- If it is a specific wiki page, attach the wiki source-code for that page
- Are they always slow to load, or is the slowness intermittent?
Monitoring data
Before drilling down into individual problems, helps a lot to understand the nature of the performance problem. Do we deal with sudden spikes of load, or is it a slowly growing load, or maybe a load that follows a certain pattern (daily, weekly, maybe even monthly) that only on certain occasions exceeds critical thresholds? It helps a lot to have access to continuous monitoring data available to get a rough overview.
Here are sample graphs from the confluence.atlassian.com system, showing
Load
This graph shows the load for two consecutive days. The obvious pattern is that the machine is under decent load, which corresponds to the user activity, and there is no major problem.

Resin Threads and Database Connections

Active number of Java Threads
|
These two charts show the active threads in the application server (first chart) and the size database connection pool (second chart). As you can see, there was a sudden spike of server threads and a corresponding spike of db-connections. |

The database connection pool size
|
The database connection pool size peaked over 112, which happened to be more than the maximum number of connections the database was configured for (100). So it was no surprise that some requests to Confluence failed and many users thought it had crashed, since many requests could not obtain the crucial database connections.
We were able to identify this configuration problem quite easily just by looking at those charts. The next spikes were uncritical because more database connections were enabled. |
The bottom line being: it helps a lot to monitor your Confluence systems continuously (we use Hyperic, for example), and it helps even more if you are able to send us graphs when you encounter problems.
Access logs
Profiling and Logs
- Enable Confluence's built-in profiling for long enough to demonstrate the performance problem using Troubleshooting Slow Performance Using Page Request Profiling.
- If a single page is reliably slow, you should make several requests to that page
- If the performance problem is intermittent, or is just a general slowness, leave profiling enabled for thirty minutes to an hour to get a good sample of profiling times
- Find Confluence's standard output logs (which will include the profiling data above). Take a zip of the entire logs directory.
- Take a thread dump during times of poor performance
CPU Load
- If you are experiencing high CPU load, please install the YourKit profile and attach two profiler dumps taken during a CPU spike. If the CPU spikes are long enough, please take the profiles 30-60 seconds apart.
Instance Metrics and Scripts
- It is essential to understand the user access and usage of your instance. Please use the access log scripts and sql scripts to generate Usage statistics for your instance.
Next Step
Open a ticket on https://support.atlassian.com and attach all the data you have collected. This should give us the information we need to track down the source of your performance problems and suggest a solution. Please follow the progress of your enquiry on the support ticket you have created.
If your site is non-responsive, please use our Live Support during business hours once you have created the ticket to escalate your problem.
|