Sizing guide

Summary

This guide describes how you can size DXP - Open Edition. It also provides general guidance on how to size your infrastructure resources to run Neptune DXP - Open Edition on-premises, on Neptune DXP Cloud - Managed Environments, or any other cloud environments (Microsoft Azure, AWS, …).

Every workload is unique, therefore, any guidance given here should be considered as a “guideline”. In practice, the nature of the implementation of your solution with Neptune DXP - Open Edition can impact the required resources. However, this guideline is a starting point.

The most effective solution is to run Neptune DXP - Open Edition on a cloud environment, which allows you to dynamically scale resources assigned to a Neptune DXP - Open Edition environment without or near no downtime, for example, with Neptune DXP Cloud - Managed Environments.

Neptune DXP Cloud - pricing calculator

Learn about the pricing structure and discover how to evaluate your costs for managed environments within Neptune DXP Cloud using the pricing calculator.

Types of scaling

There are numerous ways (dimensions) you can scale DXP - Open Edition. Scaling is either vertical or horizontal.

Vertical scaling

Scaling vertical refers to adding more resources (CPU/RAM) to your server/host/instance/process. For example, switching from 8 GB Memory to 16 GB Memory. You upgrade/downgrade your existing server/host/instance/process.

Scaling vertically makes operations easier but can require downtime as you might have to shut down the machine for making changes. However, with some virtual environments this could be avoided. Vertical scaling does, however, only provide limited scaling options as single servers with high memory and CPU count are significantly more expansive.

Horizontal scaling

Scaling horizontal refers to adding or removing additional servers/hosts/instances/processes. All user traffic is spread across all available servers/hosts/instances/processes.

Scaling horizontally usually translates into more operational complexity, based on the used hosting platform. However, you can scale with zero downtime and benefit from high availability. Scaling horizontally can be done almost indefinitely.

Process architecture

A single DXP - Open Edition instance internally exists out of a single “master process” and one or more “child processes”. The amount of child processes is configurable. Child processes are used to increase the concurrent throughput of a single instance. This allows the “master process” to load balance traffic to a single Neptune DXP - Open Edition instance across multiple child processes. These child processes can be monitored and configured in the System Processes tool in the Neptune DXP - Open Edition Cockpit.

Scaling Neptune DXP - Open Edition

There are four ways to scale Neptune DXP - Open Edition:

  • Scale the amount of available compute resources (CPU/RAM): Vertical Scaling

  • Scale the amount of Neptune DXP - Open Edition instances: Horizontal Scaling

  • Scale the amount of child processes for each Neptune DXP - Open Edition instance: Horizontal Scaling

  • Scale the database resources which is used by the DXP - Open Edition instance: Vertical Scaling

The sizing of your environment is strongly related to the amount of concurrent users that you expect. There can be a system designed for 1.000.000 users, but if there are only 100 users concurrently using the system, not many resources are required. In contrast to that, a system can be designed to have 3.000 users, but if it is expected that all 3.000 users use the system concurrently, more resources will be warranted.

As a guideline, 10% of the total users tend to be on a system concurrently, which can differ in your use case. This means, when the system is designed for 10.000 users, you should expect 1.000 concurrent users at the time.

Guidelines

Our guidelines are based on performance tests with a 2.35 Ghz AMD EPYCTM 7452 processor that can achieve a boosted maximum frequency of 3.35 GHz as reference. In general, use general purpose CPU unless you understand your workload very well.

Minimum configuration

This is the minimum configuration we advise. This is acceptable for a sandbox environment or when the DXP - Open Edition only functions as an API Hub which proxies request.

CPU/RAM (per instance) Instances Child Processes (per instance) Database Concurrent Users

1 CPU / 2 GB Memory

1

2

1 CPU / 2 GB Memory

25

Small configuration

Ideal for sandbox development and smaller production environments for small or medium business.

CPU/RAM (per instance) Instances Child Processes (per instance) Database Concurrent Users

1 CPU / 4 GB Memory

1

4

1 CPU / 4 GB Memory

100

Small configuration (high-available)

Ideal for small or medium production environments that demand high availability built in their infrastructure.

CPU/RAM (per instance) Instances Child Processes (per instance) Database Concurrent Users

1 CPU / 4 GB Memory

2

4

2 CPU / 8 GB Memory

250

Medium configuration

Ideal for medium production environments for medium to larger user basis.

CPU/RAM (per instance) Instances Child Processes (per instance) Database Concurrent Users

2 CPU / 8 GB Memory

1

4

2 CPU / 8 GB Memory

500

Medium configuration (high-available)

Ideal for medium or large production environments for medium to larger user basis which demand high availability.

CPU/RAM (per instance) Instances Child Processes (per instance) Database Concurrent Users

2 CPU / 8 GB Memory

2

4

2 CPU / 8 GB Memory

500

Large configuration

Ideal for large production environments for larger user basis. With larger production environments high availability is advised by default.

CPU/RAM (per instance) Instances Child Processes (per instance) Database Concurrent Users

3 CPU / 8 GB Memory

4

4

4 CPU / 16 GB Memory

1000

Large data configuration

Ideal for large production environments that are very data intensive.

CPU/RAM (per instance) Instances Child Processes (per instance) Database Concurrent Users

3 CPU / 8 GB Memory

4

4

8 CPU / 32 GB Memory

1000

Extra-large and above configurations

For any larger workloads, horizontal scaling is the way to go. It is advised to have for each instance about 2 or 3 CPUs and 8 GB of memory. Each instance is also advised to have 4 child processes, just like the large configuration.

On larger workloads, it is impossible to give specific advice of what will work, as at scale, the usage characteristics of Neptune DXP - Open Edition which are unique to each use case due to data intensive or compute intensive workload manifest significantly.

The advised approach is to start with a “Large configuration” and then to add instances or scale the database as deemed necessary during production loads or synthetic performance tests.