Using System Scaling Parameters

You can increase certain system scaling limits using system scaling parameters. You can specify system scaling parameters using configuration keys when you create a software broker instance (see Setting Scaling Parameters Using Configuration Keys). You can also change system scaling parameters while the software broker is running using the Solace CLI (see Scaling Up an Existing Single Software Event Broker and Scaling Up an Existing HA Group).

For details about the minimum system resources required, see System Resource Requirements.

To see the current values of the system scaling parameters, run the show system command in the Solace CLI, and look at the Scaling section of the output:

solace> show system

System Uptime: 1d 0h 45m 21s
Last Restart Reason: User request

Scaling:
   Max Bridges: 25
   Max Connections: 100
   Max Queue Messages: 100M
   Max Kafka Bridges: 0
   Max Kafka Broker Connections: 0
   Max Subscriptions: 500000

Topic Routing:
   Subscription Exceptions: Enabled
   Subscription Exceptions Defer: Enabled

You can configure the following system scaling parameters:

Increasing a scaling parameters causes an immediate event broker restart.

If you increase the value of these system scaling parameters, the event broker will require additional resources. For more information, see Additional System Resources.

  • Scaling parameters that are decoupled from max-connections can be independently scaled. Independent scaling parameters allow flexibility to scale up deployments without upgrading to larger software event brokers.

  • If you don't provide a specific value for an independent scaling parameter, it defaults to a value that is appropriate for your selected value of max-connections.

Maximum Number of Client Connections

You can increase the number of concurrent client connections supported by the event broker using the max-connections system scaling parameter. By default, the event broker is limited to 100 concurrent client connections, but it can be provisioned for up to 200,000 connections assuming that sufficient system resources are provided.

To scale parameters independent of max-connections, you must upgrade your PubSub+ event broker to version 10.7.1 or later. See Event Broker Releases for release timelines of individual scaling parameters.

PubSub+ Broker Default Concurrent Client Connections Maximum Possible Concurrent Client Connections
PubSub+ Standard 100 1,000
PubSub+ Enterprise 100 200,000

For default maximum client connections values, see maxconnectioncount in Configuration Keys.

The following functionality is not available on software event brokers configured for a maximum of 100 client connections:

To use these features, configure your software event brokers with a higher maximum number of client connections.

For PubSub+ Standard Edition, if you set the max-connections system scaling parameter higher than the maximum supported, the broker will fail to start.

The number of current client connections cannot be changed on a broker configured as a monitoring node in an HA group.

A number of related system limits (for example, the maximum number of client usernames) are automatically scaled to values appropriate for the permitted number of client connections; see the System Limits and Alerts spreadsheet (available from the Solace Products site for Appliance and PubSub+ Enterprise customers) for more information regarding those system limits.

The following types of clients use connections that count against the total number of max-connections:

  • Messaging clients (SMF, MQTT, AMQP, or REST): 1 connection each

  • Internal clients (VPN, VPN Bridge, Kafka Bridge Sender or Receiver, or DMR link per VPN): 1 connection each

Setting the Number of Concurrent Open Files for Container Images

To ensure reliable operation of the event broker, you must also increase the maximum number of concurrent open files per process when the maximum number of client connections is increased. 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. For example, in Docker Engine and Podman, for 10,000 client connections, add the --ulimit nofile=2448:72992 command line parameter when you create the container.

Resource Limit Maximum Client Connections
100 1,000 10,000 100,000 200,000
nofiles 2448:37392 2448:40992 2448:72992 2448:252992 2448:452992

For ease of use, and if the resources are available, we recommend using 2500:500000 for all instances.

Maximum Number of Queue Messages

You can increase the number of queue messages (references to messages queued for delivery to consumers) supported by the event broker using the max-queue-messages system scaling parameter.

For PubSub+ event broker versions 10.8.1 and later, for new broker instances, the default value for the maximum number of queue messages is governed by the value of the max-connections system scaling parameter:

  • When max-connections is 100, the default value for the maximum number of queue messages is 100 million.

  • When max-connections is 1K or higher, the default value for the maximum number of queue messages is 240 million.

PubSub+ Broker Maximum Possible Queue Messages
PubSub+ Standard 240,000,000
PubSub+ Enterprise 3,000,000,000

For default maximum queue messages values, see maxqueuemessagecount in Configuration Keys.

Running an event broker with 100M queue messages is not recommended in a production environment as it may result in performance issues.

For PubSub+ Standard Edition, if you set the max-queue-messages system scaling parameter higher than the maximum supported, the broker will fail to start.

The maximum number of queue messages cannot be changed on a broker configured as a monitoring node in an HA group.

Maximum Number of VPN Bridges

You can increase the number of VPN bridges for a single event broker using the max-bridges system scaling parameter. A VPN bridge consumes a client connection. Therefore, don't configure max-bridges values higher than max-connections.

This independent scaling parameter is available for PubSub+ event broker versions 10.7.1 and later.

The value of the maximum number of VPN bridge subscriptions is: 

  • 100,000 when the max-bridges value is 5000.

  • 20,000 when the max-bridges value is 25 or 500.

PubSub+ Broker Maximum Possible VPN Bridges
PubSub+ Standard 500
PubSub+ Enterprise 5,000

For default maximum VPN bridges values, see maxbridgecount in Configuration Keys.

Because max-bridges is dependent on max-connections, if you for example increase max-bridges from 25 to 5000 and max-connections remains at 100, not all 5000 VPN bridges may be allocated. The Solace CLI shows a warning in such a scenario.

connect-via is limited to 500 outbound VPN bridge connections. This means that in an event mesh, the configuration of 5000 VPN bridges must be done as an inbound connection to the core event brokers.

Maximum Number of Subscriptions

You can increase the number of subscriptions for a single event broker using the max-subscriptions system scaling parameter. This helps to achieve flexibility to deploy different sizes of the event broker within your event mesh without worrying about exceeding the subscription limits of the smaller event brokers in your event mesh . Note that you must allocate additional RAM to the smaller event brokers to accommodate the larger subscription tables. Each client requires at least one subscription. Therefore, don't configure max-connections values higher than max-subscriptions.

This independent scaling parameter is available for PubSub+ event broker versions 10.8.1 and later.

PubSub+ Broker Maximum Possible Subscriptions
PubSub+ Standard 500,000
PubSub+ Enterprise 5,000,000

For default maximum subscriptions values, see maxsubscriptioncount in Configuration Keys.

Because max-connections is dependent on max-subscriptions, if your max-connections is for example at 100 and you increase your max-subscriptions from 50,000 to 500,000, not all 500,000 subscriptions may be allocated. The Solace CLI shows a warning in such a scenario.

For PubSub+ event broker versions earlier than 10.8.1, all event brokers in the same network must have the same value for max-subscriptions; otherwise, subscription resource limits might be exceeded on the event brokers, and message forwarding will not be reliable.

Maximum Number of Kafka Bridges

You can increase the number of Kafka bridges (Kafka senders + Kafka receivers) supported by the event broker using the max-kafka-bridges system scaling parameter. By default, the event broker is limited to 0 bridges, but it can be provisioned for up to 200 bridges assuming that sufficient system resources are provided. In addition, keep in mind that you should not set the max-kafka-bridges value to greater than the max-connections value set for the system.

PubSub+ Broker Maximum Possible Kafka Bridges
PubSub+ Standard or Enterprise 200

For default maximum subscriptions values, see maxkafkabridgecount in Configuration Keys.

The maximum number of Kafka bridges cannot be changed on a broker configured as a monitoring node in an HA group.

Maximum Number of Kafka Broker Connections

You can increase the number of concurrent Kafka broker connections supported by the event broker using the max-kafka-broker-connections system scaling parameter. By default, the event broker is limited to 0 concurrent Kafka broker connections, but it can be provisioned for up to 10000 connections assuming that sufficient system resources are provided.

You can expect each Kafka sender and receiver to require approximately one connection from this budget for every Kafka broker in the Kafka cluster that they are configured to send messages to or receive messages from. If different senders and receivers connect to the same Kafka cluster these connections are all independent of one another and count separately against this limit. You should, in such cases, use a common sender or receiver with more queue or topic bindings to aid in scaling. The number of bindings does not affect the number of required connections.

When deciding on the maximum number of concurrent Kafka broker connections your deployment will support, you must ensure that enough process IDs (PIDs) are available to your platform. Kafka bridging requires that 1000 + the value you configure for max-kafka-broker-connections PIDs are available. For more information about setting per Node and per Pod PIDs limits in Kubernetes, see Process ID Limits And Reservations.

PubSub+ Broker Maximum Possible Concurrent Kafka Broker Connections
PubSub+ Standard or Enterprise 10,000

For default maximum subscriptions values, see maxkafkabrokerconnectioncount in Configuration Keys.

The maximum number of Kafka broker connections cannot be changed on a broker configured as a monitoring node in an HA group.\

Multiple Broker Considerations

If you have multiple event brokers in an event mesh, you must be aware of the following considerations when increasing the scaling parameters: 

  • Except for HA group setups, the values of the system scaling parameters can be arbitrarily different on each software event broker in the event mesh.

  • For max-subscriptions specifically, because the allocation of SMRP can be unpredictable, if you increase to a higher subscription limit on one event broker, you must update the other event brokers in the event mesh to the same value as soon as possible.

Additional System Resources

The resource requirements for the minimum (default) values of the system scaling parameters are listed in System Resource Requirements.

If you increase the value of any system scaling parameters, the event broker will require additional resources. To see how the system resource requirements change with higher values of system scaling parameters, use the System Resource Calculator.