Performance planning
To optimize performance, review the guidelines in this section and plan your solution accordingly.
There are a number of factors that can influence the rate of message
throughput. Consider the following information when you plan your
solution.
- If you are planning a deployment in which connection bursts of more than 10K connections per second are possible, then you might want to load balance the connections across two endpoints. Two endpoints are sufficient support these large bursts of connections.
- To scale beyond 1 million connected devices, use more than one Eclipse Amlen instance.
- For applications that publish large numbers of QoS 1 or QoS 2 messages, consider increasing the inflight message ID window to 128 or higher to avoid blocking while awaiting an available message ID. For JMS publishers that publish persistent messages, the send operation is blocking with a inflight window of 1 message. As a result, the network RTT between ACTIVE and STANDBY members of a Eclipse Amlen high availability pair can significantly impact the throughput of JMS publishers that publish persistent messages.
- For optimal performance, do not design consumer clients that create more than 100 subscriptions. If a consumer client must subscribe to many topics, use wildcard subscriptions to reduce the total number of subscriptions that are made.
- For optimal performance, ensure that applications that receive or send large amounts of data are configured to distribute the load over multiple connections.
- For optimal performance, ensure that policies that authorize the most frequent actions appear at the top of the ordered list of policies on an endpoint. For example, ensure that a policy that authorizes a publish that occurs once every second appears above a policy that authorizes a subscribe that occurs once every minute. To avoid excessive amounts of time being spent in processing authorization checks, restrict the number of policies in your system to a figure in the low tens.