A newer version of this documentation is available.

View Latest

Sizing Guidelines

Evaluate the overall performance and capacity requirements and determine the hardware and other resources.

When you plan to deploy a Couchbase Server cluster, perhaps the most common (and important) question that comes up is: how many nodes do I need and what size do they need to be? To learn more, contact Couchbase Support for sizing help. You can also read about sizing in How many nodes.

With the introduction of Multi-Dimensional Scalability (MDS), sizing is becoming more challenging, and this guideline aims to help users better size their clusters.

General Considerations

The sizing of your Couchbase Server cluster is critical to its overall stability and performance. While there are obviously many variables that go into this, the idea is to evaluate the overall performance and capacity requirements for your workload and dataset. Then divide that into the hardware and resources you have available. Your application wants the majority of reads coming out of the cache, and the I/O capacity to handle its writes. There needs to be enough capacity in all areas to support everything the system is doing while maintaining the required level of performance.

This guideline will refer to five determining factors one should be aware of when sizing a Couchbase Server cluster: RAM, Disk (I/O and space), CPU and network bandwidth.

Sizing Couchbase Server Resources

There are several resources you need to consider when sizing a Couchbase Server node:

  • Number of CPUs

  • RAM

  • Disk space

  • Network

    CPU

    CPU refers to the number of cores required to run your workload.

    RAM

    RAM is frequently one of the most crucial areas to size correctly. Cached documents allow the reads to be served at very low latency and consistently high throughput.

    This resource represents the main memory allocated to Couchbase Server and should be determined by the following factors:

  • How much free RAM is available beyond OS and other applications.

  • How much data do you want to store in main memory.

  • How much latency you expect from KV/indexing/query performance.

    Table 1. Minimum RAM quota for Couchbase Server components
    Component Minimum RAM

    Data Service

    1GB

    Indexing Service powered by ForestDB

    256MB

    Disk space

    Requirements for your disk subsystem are:

  • Disk size, which refers to the amount of the disk storage space needed to hold your entire data set.

  • Disk I/O, which is a combination of your sustained read/write rate, the need for compacting the database files, and anything else that requires disk access.

    To better support your Couchbase Server, keep in mind the following:

  • Disk space continues to grow if fragmentation ratio keeps climbing. To mitigate that, add enough buffer in your disk space to store all the data. Also, keep an eye on the fragmentation ratio in the UI and trigger compaction process when needed.

  • SSD is desired but not required. SSD will bring much better performance than HDD regarding disk throughput and latency.

Table 2. Minimal and Recommended Hardware Resources
Resource Minimum Recommended

CPU

4

8 and above. Both the number and performance of CPUs are important.

RAM

4GB

16GB and above. More RAM means that more data can be served from memory and allow for better performance.

Disk

8GB

16GB and above

Network

Enough network bandwidth is vital to the performance of Couchbase Server. A reliable high-speed network for intra-cluster and inter-cluster communications has a huge effect on overall performance and scalability of Couchbase Server. Most people can do this with a 1GB interface, some need 10GB.