This page last changed on Apr 05, 2008 by smaddox.

It is possible to run Confluence in a clustered environment instead of on a single server. This means that you can run multiple copies of Confluence in a cluster, so that clients (such as a browser) can connect to any copy and see the same information.

Refer to the clustering overview for more information and a list of related pages about clustering Confluence.

Consider your options carefully before deciding on a clustered installation

While we have tried to make clustering Confluence as easy and administrator-friendly as possible, it is a major architectural change and requires extra planning for deployment and upgrades. Please consider the information below and then consult Atlassian Sales before making your final decision.

Summary of the information on this page:
Error formatting macro: toc: java.lang.NullPointerException

Purpose of this Document

The purpose of this cluster checklist is to help you:

  • Decide whether Confluence Clustered is the right solution for you.
  • Create a plan for your clustered deployment.

As a service to our customers, we offer to review your deployment plan and make recommendations to help you avoid common pitfalls. To make use of this service, please consider all the information below carefully while planning your clustered deployment. Then contact Atlassian Pre-Sales for recommendations.

If you need to raise a support request with Atlassian during or after cluster deployment, we will need to ask you questions about your configuration. It will save crucial time if you can provide us with your deployment plan.

For more information about clustering Confluence, refer to the clustering overview.

Assumed Knowledge

In writing this document, we have assumed that our readers have an in-depth knowledge of the following technical areas:

  • Database
  • Networking
  • Application servers
  • Load balancers

Before starting a clustered deployment please read the information on this page carefully, as well as the linked documentation, to assess if you have the assumed knowledge.

General Considerations

What will Confluence Clustered do for you?

The points in this section of the page will help you evaluate your reasons for considering a clustered deployment, and then decide whether Confluence Clustered is the right solution for your environment.

Confluence Clustered is designed to scale the number of simultaneously connected users.


Confluence Clustered will not improve performance in systems with few users.

Clustering Confluence means that user requests can be served by independent machines. However, if rendering a complicated page (e.g. containing many macros or rendering many graphs) takes five seconds on an otherwise idle server, it will not be faster in a clustered environment. This is because neither of the independent servers will be able to serve this complicated page faster than the original single server. Also, there is a certain management overhead in distributed environments, so clustering an installation with few users may even leave you with a slower environment than before.

Clustering improves performance only when poor performance is due to heavy load by many simultaneous users. You should only upgrade to a clustered environment if you are already using reasonably good hardware, have tuned your network and database, and your installation is still under heavy load.

Confluence Clustered is not a high availability solution.

Confluence Clustered is not designed specifically to provide a high availability solution.

General availability is higher in a Confluence cluster than on a single installation. But you still have to bring down all nodes at the same time for software upgrades. Also there are certain conditions, like loss of network connectivity between nodes ('split brain'), that will result in the cluster shutting itself down. Confluence Clustered offers higher reliability, but not high availability.

Confluence Clustered is not for disaster recovery nor for transparent failover.

If one node crashes, there is no transparent failover for the connected client. Also, our network requirements (see below) make Confluence unsuitable for deployment to different cities or even to different buildings.

Server Setup

All cluster nodes must have the same version of OS, application server, etc.

Confluence requires a homogeneous environment. All Confluence cluster nodes must have the same version of the following:

  • Operating system
  • CPU
  • Installed memory
  • Java
  • Application server

Note that 'same version' means 'same to the last digit'. For example, Java v1.4.2_16 is not the same as v1.4.2_15
We strongly recommend user to have the same memory configuration (both the JVM and the physical memory) because a cluster uses a replicated cache. A replicated cache requires the same amount of memory on each node in the operating cluster. The memory allocations must be equal.

Use good and up-to-date hardware with plenty of RAM.

While the details are up to you, we strongly suggest that your servers have at least 4GB of RAM. A high number of concurrent users means that a lot of RAM will be consumed, so you should not try to save money on the RAM.

Confluence Clustered is not supported when run in VMware or other virtualisations.

Not supported. We strongly discourage you to deploy a production environment of Confluence to virtual servers, and we will not be able to support you when problems arise.

When running a Confluence cluster your goal is high capacity, so you should not risk lower performance by virtualising it and sharing a computer with other processes.

Most customers who are running Confluence on VMware, or similar virtualisation solutions, experience major performance problems that are extremely hard to pinpoint. Since the problems are not related to Confluence itself, we will not be able to help you.

Confluence must be the only application on the cluster servers.

No additional applications (other than core operating system services) must be running on the same servers as Confluence.

Since your goal should be increased capacity, you should not risk this by running any other process on the machine with a Confluence Clustered node. While it may be fine to run JIRA, Confluence and Bamboo on a dedicated Atlassian software server for small installations, it is strongly discouraged for clustering Confluence.

Do not upgrade and switch to Confluence Clustered at the same time

If you plan to migrate to a clustered solution, make sure you are migrating within the same version of Confluence. If you plan to upgrade to a higher version of Confluence, do this before the migration to the clustered version.
For example, if you are currently running Confluence 2.5.8 standalone, and want to roll out the clustered version of Confluence 2.7.1, you must first upgrade to Confluence 2.7.1 standalone and check that everything works fine (e.g. for a week). Then you are in a good position to migrate to the clustered version.

Database Setup

Make sure that you use a supported version of a database server to store Confluence's data.

Please check that your intended database is officially supported by Atlassian Confluence. The load on an average cluster solution is higher than on a single box installation, and it is therefore even more crucial to use the right database vendor and version.

Your database must be provisioned to store a large volume of binary data.

Note that Confluence clustered stores file attachments in the database, and you need an experienced DBA who can monitor and manage the data growth.

You need an experienced DBA available to troubleshoot database performance issues.

Not having an experienced full-time DBA at hand at short notice when entering the realm of high load is extremely dangerous. While small installations of Confluence basically work 'out of the box', anything that involves high load and a lot of database space requires continual monitoring, optimising and fine tuning of the Confluence database.

Network Setup

We strongly recommend hardware, not software, load balancers.

If you use a software load balancer, it must be deployed on a machine of its own.

Not supported. Running a software load balancer on a cluster node is not supported. If the node crashes, so does the load balancer on that node. As a result, your whole cluster is inaccessible even though the n-1 nodes would be available.

Use separate network adapters for communication between servers.

The Confluence cluster nodes should have a separate physical network (i.e. separate NICs) for inter-server communication.

This is the only way of getting the cluster to run fast and reliably. Performance problems are likely to occur if you connect cluster nodes via a network that has other data streaming through it.

The switch connecting the Confluence cluster nodes must not be a 'smart switch'.

Not supported. Smart switches are not covered by Atlassian Support for Confluence Clustered.

Do not use smart switches between cluster nodes. Many problems have been reported and attributed to smart switches. They have a tendency to interrupt broadcast or multicast traffic, thus reliably killing a cluster after a certain amount of time has passed. This makes troubleshooting especially complex and tedious.

Cisco switches need additional configuration.

If the switch connecting the Confluence cluster nodes is a Cisco switch then it might need additional configuration to support Confluence clustering.

Please make sure you find out all the details about your switches before you start the deployment.

It is recommended that the database is on a different physical network from the Confluence server nodes.

Since you want to increase your capacity and performance for high loads, it is recommended to have your database on a different network. Please refer to the recommended topology diagram for more information.

Minimize the latency between the Confluence cluster nodes and the database.

Even though having the nodes and the database on the same physical network usually suffices, you should take the time to explicitly measure network latency, and make sure it is as close to zero as possible.

Prepare a network diagram.

To facilitate discussion and to ease planning, you should prepare a network diagram like this example of recommended network topology.

If you request support with Confluence Clustered, we will ask for your network diagram. We recommend that you create one similar to our example before you proceed with the installation.

You need network support staff available to troubleshoot cluster communication issues.

Setting up a cluster is not trivial. Even small problems in network design will be expanded in a clustered installation. (This is true of any kind of software.)

It is absolutely vital that you have dedicated network staff available to track down problems when they arise. A cluster will usually be used by thousands of users, and you don't want to keep them waiting because a network card breaks, or because someone made an undocumented change to the network and you don't have an expert around who can figure it out.

Staging Environment

You need a staging environment that is exactly the same as your production system.

You must be able to test drive any change to the cluster (installing upgrades, installing plugins) and to perform other tests (checking connectivity, debugging problems) on a staging cluster.

The staging environment must be:

  • On the same OS, database, and Java version as your production environment.
  • Clustered.

If you require support, we may for example ask you to turn off certain third-party plugins. If you can't do this in your production environment and you don't have a staging environment for troubleshooting, we may not be able to help you.

Getting a license for your staging environment

Atlassian supplies 'developer' licenses which can be used by existing commercial license holders who wish to deploy non-production installations of our software to use in QA/staging environments.

Developer licenses are free of charge to commercial license holders and, like our commercial offerings, they include 12 months of updates starting from the date of purchase of the commercial license.

If you hold a commercial license, you can obtain a free developer license by performing the following:

  1. Log in to your Atlassian account.
  2. Click 'Licenses' under 'Confluence' to view the license for your commercial product.
  3. Click 'View' in the 'Operations' column next to the commercial license.
  4. Click 'Generate Developer License'.

RELATED TOPICS

Apache and Tomcat load balancing
Changing Datasources Manually in a Cluster
Cluster Administration page
Cluster safety mechanism
Cluster Troubleshooting
Confluence Cluster Installation
Confluence Clustering Overview
Recommended network topology
Technical Overview of Clustering in Confluence
Upgrading a Confluence Cluster
Viewing and Editing License Details
Document generated by Confluence on Jun 24, 2008 18:01