xDB hardware guidelines

Last updated Friday, January 13, 2017 in Sitecore Experience Platform for Administrator, Developer

When you install the Sitecore Experience Database (xDB) as an entirely on-premise solution, you need to consider the minimum hardware requirements for each instance in your environment, depending on the roles you want to allocate to each server. This topic outlines the hardware requirements and describes an example hardware configuration.

Note

The example hardware configuration described in this topic aims to achieve the best performance possible but has not been tested for every possible scenario. You need to perform tests to find out what suits your system best.

Content management and content delivery servers

The hardware requirements for content management and content delivery servers remain the same as in earlier versions of Sitecore and are described in the manual Installing the Sitecore Experience Platform on the Sitecore download website.

Session state server

The hardware requirements for session-state servers depend on which session-state service you choose to use. If you choose to install a session-state server with the xDB, you can configure this to use a Redis, Microsoft SQL Server, or MongoDB database. See the MongoDB installation instructions with software and hardware requirements described in full on the MongoDB website: MongoDB installation guides

Note

You should use a fast network, solid-state drive (SSD) on your session-state server and plenty of RAM.

Collection database server

Using MongoDB as your collection database, you should install plenty of RAM and use SSD drives. Sharding can also improve performance significantly. Read the documentation on the MongoDB website to learn about the MongoDB architecture, replication, sharding, and configuration options.

Processing and aggregation server

Processing and aggregation servers can use RAM for caching and for establishing a fast connection to the databases. The more cores the CPU has, the more agents you can configure to run in parallel.

Reporting server

The hardware requirements for the reporting database server have not changed significantly since Sitecore 7.5 (see the Hardware configuration example table).

Better optimization of the reporting database means that it now uses memory more efficiently. However, you should install fast SSD hard drives and a minimum of 14 GB of RAM to achieve the best performance.

Read the Microsoft SQL Server documentation on MSDN to learn more about configuring Microsoft SQL Server.

Hardware configuration example

The following hardware example was implemented on a simple website when setting up the xDB for the first time.

Important

There are many alternative ways of installing and configuring Sitecore xDB. The hardware details in this section are just a minimum example. They are not a set of recommendations to follow.

You can use the information in this table to get an idea of what you might need when setting up the xDB for the first time.

Server type

CPU

RAM

Disk

Content delivery

4 x CPU E5 2650 v2 processors. The more cores, the better.

16 GB (including the operating system)

HDD 40 GB per instance

Processing

4 x CPU E5 2650 v2 processors. The more cores, the better.

16 GB (including the operating system)

HDD 40 GB per instance

Content management

4 x CPU E5 2650 v2 processors. The more cores, the better.

16 GB (including the operating system)

HDD 40 GB per instance

Session state (Microsoft SQL Server or MongoDB)

4 x CPU E5 2650 v2 processors

4 GB

The more, the better

SSD shares the hard disk with the collection database – ideally the hard-disk capacity should not be more than the RAM, which is 4GB in this example.

Session State (Redis)

4 x CPU E5 2650 v2 processors per server

Redis is single-threaded, so the number of cores you have is irrelevant.

4 GB per server

The more, the better

3x server RAM size. It depends on which persistence options and write scenarios you want to use.

Use SSD to avoid performance issues when persisting data to disk.

Collection database (MongoDB) 2 servers

4 x CPU E5 2650 v2 processors

16 GB

The more the better

100 GB + SSD

The more disk space you have, the more data you can store.

Reporting database server (SQL Server)

4 x CPU E5 2650 v2 processors

16 GB

The more, the better

100 GB + SSD

The more, the better

Search and indexing

4 x CPU E5 2650 v2 processors. The more cores, the better.

12 GB (including the operating system)

100GB + HDD

SSD may offer better indexing write throughput.

Use SOLR Cloud (clustering) to spread disk writes across multiple disks to scale out.

HDD = hard disk drive

SSD = solid state drive

RAM

On each xDB server instance you should install plenty of RAM, particularly on collection, processing, reporting, and session-state servers as outlined in the Hardware configuration example table.

Operating system

Include the Windows operating system in the RAM usage because it is difficult to predict accurately how much RAM the Windows operating system will consume.

Session

The more RAM you have, the more sessions you can track simultaneously without using extra disk space. Actual performance, however, depends on the specific configuration you have. You should avoid disk I/O on reads because this can have a negative effect on performance.

Redis is an in-memory data store so it is critically important to define your Redis server RAM size so that it fits your session usage.

Session database

The session database should ideally fit 100% into RAM, otherwise it will be too slow or may fail if you use Redis.

Collection database (MongoDB)

RAM serves as disk cache. You need at least enough RAM to store a working set size (the MongoDB website has instructions on how to estimate this).

MongoDB FAQs and diagnostics

Hard disk

In general, the more disk space you have, the more data you can store. Refer to the Hardware configuration example table in this topic for more specific guidelines.