Data Center Edition installation requirements and recommendations
This section describes the general requirements, recommendations, and limitations for SonarQube Server's cluster. Additional requirements specific to an installation type may be mentioned in the respective installation section.
Limitations
See Limitations in SonarQube Server host requirements.
Cluster nodes
You need a minimum of five servers (two application nodes and three search nodes) to form a SonarQube Server application cluster. Servers can be virtual machines; it is not necessary to use physical machines. You can also add application nodes to increase computing capabilities.
We recommend having one machine for each node to be resilient to failures. To maintain an even higher level of availability, each of your three search nodes can be located in a separate availability zone within the same region.
The operating system requirements for servers are available on the Requirements page.
All application nodes should be identical in terms of hardware and software. Similarly, all search nodes should be identical to each other. Application and search nodes, however, can differ from one another. Generally, search nodes are configured with more CPU and RAM than application nodes.
Search nodes can be located in different availability zones, but they must be in the same region. In this case, each search node should be located in a separate availability zone to maintain availability in the event of a failure in one zone. SSDs perform significantly better than HDDs for these nodes.
Example machines
Here are the machines we used to perform our validation with a 200M issues database. You can use this as a minimum recommendation to build your cluster.
- App Node made of Amazon EC2 general purpose xlarge: 4 vCPUs, 16GB RAM
- Search Node made of Amazon EC2 general purpose 2xlarge: 8 vCPUs, 32GB RAM - 16GB allocated to Elasticsearch. SSDs perform significantly better than HDDs for these nodes.
Docker containers
In case you install your SonarQube Server from the Docker images:
- Sonar recommends running the database, application, and search containers in different Docker hosts for production workloads. You should install on a single Docker host only for test purposes.
- All containers should be in the same network. This includes search and application nodes. For the best performance, it is advised to check for low latency between the database and the cluster nodes.
- The limits of each container depend on the workload that each container has. A good starting point would be:
- cpus: 0.5
- mem_limit: 4096M
4Gb mem_limit should is the minimal value for Elasticsearch. - mem_reservation: 1024M
Database server
Supported database systems are available on the Installing the database page.
TCP networks
There are three TCP networks to configure:
- the network of application nodes that relies on Hazelcast.
- the network used for Elasticsearch internal communication between search nodes (
es
properties). - the network between application nodes and search nodes (
search
properties).
Hazelcast is used to manage the communication between the cluster's application nodes. You don't need to install it yourself, it's provided out of the box.
Load balancer
The installing organization must supply the load balancer.
SonarSource does not provide specific recommendations for reverse proxy / load balancer or solution-specific configuration. The general requirements are:
- Ability to balance HTTP requests (load) between the application nodes configured in the cluster.
- If terminating HTTPS, meets the requirements set out in Securing SonarQube Server behind a proxy.
- No requirement to preserve or sticky sessions; this is handled by the built-in JWT mechanism.
- Ability to check for node health for routing.
Related pages
- Cluster topology
- Pre-installation steps
- Installing DCE from the ZIP file
- Installing DCE on Kubernetes or Openshift
- Configuring network security features:
- Starting and stopping the cluster
- Installing the database
Was this page helpful?