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 Setting Scaling Parameters for a Single Software Event Broker and Setting Scaling Parameters for an 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-vmr> 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 Topic Routing: Subscription Exceptions: Enabled Subscription Exceptions Defer: Enabled
You can configure the following system scaling parameters:
- Maximum Number of Client Connections
- Maximum Number of Queue Messages
- Maximum Number of VPN Bridges
- Maximum Number of Kafka Bridges
- Maximum Number of Kafka Broker Connections
If you increase the value of these system scaling parameters, the event broker will require additional resources. For more information, see Additional System Resources, below.
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 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.
PubSub+ Broker | Default Concurrent Client Connections | Maximum Possible Concurrent Client Connections |
---|---|---|
PubSub+ Standard | 100 | 1,000 |
PubSub+ Enterprise | 100 | 200,000 |
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 and subscriptions) 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. By default, the broker is limited to 100 million queue messages and can be provisioned up to 3 billion, provided sufficient system resources are provided.
PubSub+ Broker | Default Maximum Queue Messages | Maximum Possible Queue Messages |
---|---|---|
PubSub+ Standard | 100,000,000 | 240,000,000 |
PubSub+ Enterprise | 100,000,000 | 3,000,000,000 |
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
.
The value of 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 Number of VPN Bridges |
---|---|
PubSub+ Standard | 25 |
PubSub+ Enterprise | 500 or 5,000 |
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 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 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 | Default Maximum Kafka Bridges | Maximum Possible Kafka Bridges |
---|---|---|
PubSub+ Standard or Enterprise | 0 | 200 |
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 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 | Default Maximum Concurrent Kafka Broker Connections | Maximum Possible Concurrent Kafka Broker Connections |
---|---|---|
PubSub+ Standard or Enterprise | 0 | 10,000 |
The maximum number of Kafka broker connections cannot be changed on a broker configured as a monitoring node in an HA group.
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.