Capacity planning

Eclipse Amlen can store messages to assure delivery to clients and devices that might not be connected. The amount of storage is limited, and if it fills, the server rejects new messages.

Eclipse Amlen is designed to deliver large amounts of data that flows quickly through the server. When clients are disconnected, the server buffers the messages and delivers them when the clients reconnect. The server keeps only a single copy of each message, regardless of how many clients there are to receive the message. Therefore, even when data does not flow quickly through the server, Eclipse Amlen can handle significant workloads.

When large numbers of messages are buffered on the server, Eclipse Amlen ensures that enough memory remains available to continue delivering the buffered messages. If the memory usage goes above a certain threshold, Eclipse Amlen starts to reject requests to prevent the memory from becoming full. The memory usage threshold varies depending on the type of request. For example, the threshold for accepting new messages is lower than the threshold to create a subscription. This difference is so that it remains possible to receive messages even when the server is close to capacity. After the memory usage falls below the threshold, the server starts accepting requests again.

Eclipse Amlen uses a combination of persistent memory and disks to store persistent data for recovery. The disk capacity is much larger than the memory, and in most situations the disks have plenty of unused capacity. However, if the data on the disk is written sparsely, it is possible for the disks to fill. If the disk fills completely, the server stops immediately and can be started only in maintenance mode. In this situation, you must contact IBM® support for assistance.

Consider the following requirements:
  • The maximum number of concurrently connected devices per GB of memory that is allocated to Eclipse Amlen is 4 K.
  • The store partition must be at least four times the size of the memory allocated to the Eclipse Amlen server. For example, on a Eclipse Amlen container or host with 32 GB of memory, the store disk must be at least 128 GB. If the amount of memory is a fractional value, you must round the value up to the next integer before multiplying by 4. For example, if the amount of memory is 7.5 GB, then 32 GB of disk space is required.
  • If you are using Eclipse Amlen, you must have a minimum of 16 GB of memory and 4 CPUs.

System administrators can use the Amlen WebUI or REST Monitoring APIs to track the memory and disk usage of Eclipse Amlen. For more information, see Server Monitoring.

Consider the message throughput, reliability, and typical client availability of your solution, and customize your approach to avoid situations where messages are rejected.