System Resource Requirements
To achieve desired stability and performance, the infrastructure hosting the PubSub+ Software Event Broker must provide a minimum set of system resources. System resources can be broadly categorized into requirements related to processors, memory, and storage.
You can increase certain system limits using System Scaling Parameters. Increasing these system limits also increases the system resources that are required. For more information, see Using System Scaling Parameters and System Resource Calculator.
The following sections describe the minimum resources needed for the default installation of the software event broker.
Resource Requirements for Container Images
The container host provides the system resources for the container instance. Specifically, the Linux kernel manages processor and memory resources using control groups, or cgroups
. The container runtime creates and configures the cgroups
when it creates the container instance.
In addition to the resources managed by cgroups
, the software broker also requires storage for three types information:
- image files
- temporary data
- instance state
Typically, image files and temporary data are written to the container runtime's backing store. Instance state is written to a storage-group, which may optionally be mapped to the container runtime's backing store or, more commonly, mapped to host/external storage through the use of bind-mounts or volumes.
For more information mapping the storage-group
to external storage, see Managing Storage for Container Images
Minimum Resource Requirements for Container Images
If the software event broker is part of a high-availability (HA) group, its resource requirements are partially determined by its node-type
:
messaging-routing-node
—the software event broker is participating in message routing. In messaging mode, the broker takes either the primary or backup role.monitor-node
—the software event broker is in monitoring mode and is not participating in message routing. It therefore does not require storage for thespool
,spool-cache
, andspool-cache-backup
storage-elements.
For more information about HA node types, see High Availability for Software Event Brokers.
The software event broker requires the following resources at a minimum:
System Resource | Minimum Requirement (Messaging) |
Minimum Requirement (Monitoring) | |
---|---|---|---|
CPUs | 2 | 1 | |
Host Virtual Memory | 3.4 GiB | 2.0 GiB | |
Memory Cgroup Limit | 2.5 GiB | 1.6 GiB | |
Posix Shared Memory (/dev/shm) | 1.0 GB | 1.0 GB | |
Disk Space for Container Runtime Backing Store | 1.5 GB | 1.5 GB | |
Disk Space for the storage-group as a whole |
5.1 GB | 2.3 GB | |
Disk Space for The space required for the |
jail
|
1 GB | 1 GB |
var
|
0.2 GB | 0.2 GB | |
diagnostics
|
1 GB | 1 GB | |
spool
|
1 GB | N/A | |
spool-cache
|
1.2 GB | N/A | |
spool-cache-backup
|
0.6 GB | N/A |
Concurrent Open Files Considerations
To ensure reliable operation of the PubSub+ software event broker, you must set non-standard limits on the number of files that the event broker can have open. The maximum number of concurrent open files for the container processes is governed by the nofiles
resource limit. Most container runtimes support setting rlimit
values using the ulimit
parameter when creating a container. The System Resource Calculator recommends values for these limits.
The event broker will fail to start if the hard limit is less than 1048576
. For ease of use, we recommend using 4096:1048576
or greater for all event broker instances.
Storage Considerations
In the container image, container-specific files and temporary data are written to the container runtime's backing store. Instance state is written to the storage-group
, which by default is mapped to the container runtime's backing store. This is not suitable for production usage—we recommend mapping the storage-group
to an external volume. For more information regarding storage organization in the PubSub+ Software Event Broker and how to increase performance or capacity by adding additional storage, see Understanding the Storage-Group and Managing Storage for Container Images.
Regardless of whether the container is configured to write to the backing store or external volumes, your storage system must have a write performance greater than 20 MBps. Using a storage system with a write performance less than 20 MBps will result in a POST failure. In addition to having adequate write performance, the storage system must also exhibit well behaved latency (as reported by the show system health
command). To best meet the minimum storage performance requirements, Solace recommends that you use an enterprise-grade SSD as the host device for the event broker's storage-group
.