xDB hardware guidelines
Guidelines for setting up a Sitecore Experience Database on-premise solution
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.
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.
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.
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 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.
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.
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
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).
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.