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 the spool, spool-cache, and spool-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 storage-elements

The space required for the storage-group is more than required for the included storage-elements.

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

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.