Eclipse Amlen tracks
the memory that is in use. Different workloads use memory in different
ways. You can view how much memory is being used in different categories
by using the Eclipse Amlen memory
monitoring tools.
Eclipse Amlen uses
the following categories to track the memory usage:
- Total Memory
- This category shows the total amount of physical memory on Eclipse Amlen.
- Free Memory
- This category shows the amount of physical memory that is available.
- Percentage Free Memory
- This category shows the amount of free memory as a percentage
of total physical memory.
- Virtual Memory
- This category shows the amount of virtual memory that is being
used by Eclipse Amlen.
- Resident Set
- This category shows the amount of physical memory that is being
used by Eclipse Amlen.
- Message Payloads
- This category shows the amount of memory that is being used by Eclipse Amlen for message payloads.
That is, it shows the amount of memory that is used to store messages
on Eclipse Amlen.
- Messages are stored on Eclipse Amlen in the following
situations:
-
- When a message is published to multiple subscribers, a single
copy of the message is stored in memory.
- When a message is sent as a retained message, a single copy of
the retained message is stored in memory. If the message is both a
retained message and is published to multiple subscribers, only a
single copy of the message is stored on the server.
- Therefore, a large amount of message payload memory can be used
when there are many messages stored on the server for disconnected
or slow consumers. A large amount of message payload memory can also
be used when there are many retained messages.
- Publish Subscribe
- This category shows the amount of memory that is being used by Eclipse Amlen for publish/subscribe
messaging.
- The server allocates memory in this category in the following
situations:
- To track retained messages and subscriptions.
- To cache publish/subscribe information for performance reasons.
- Therefore, a large amount of publish/subscribe memory can be used
when there are many subscriptions, or when there are many retained
messages.
- Destinations
- This category shows the amount of memory that is being used by Eclipse Amlen for destinations.
That is, for queues and topics.
- The memory that is allocated in this category is used to organize
messages into the queues and subscriptions that are used by clients.
- Therefore, a large amount of destinations memory can be used when
there are many messages on the server, or when there are many subscriptions.
- Current® Activity
- This category shows the amount of memory that is being used by Eclipse Amlen for current activity.
- Memory that is allocated in this category includes sessions, transactions,
message acknowledgments, and monitoring request information.
- Therefore, a large amount of current activity memory can be used
when there are large numbers of connected clients, or large numbers
of unacknowledged messages. Large amounts of current activity memory
can also be used by workloads that make extensive use of features
such as transactions.
-
- Client State
- This category shows the amount of memory that is being used by Eclipse Amlen for connected and
disconnected clients.
- The server allocates memory in this category for each client that
is connected to the server. For MQTT clients that use
cleanSession=0
,
the memory allocation continues after the client disconnects. The
server also allocates memory in this category to track message acknowledgments
for MQTT.
- Therefore, a large amount of client state memory can be used when
there are many connected clients. A large amount of client state memory
can also be used when many disconnected MQTT clients use
cleanSession=0
.
This memory usage can be higher when high quality of service messages
are used.
Memory is also allocated to organize the memory information. For
example, the client state information is organized in a table to ensure
efficient searching. The memory for the table is stored in the client
state category.
For efficiency, memory allocation occurs in chunks from which smaller
allocations are then made. Therefore, the allocation of a small amount
of memory can result in a larger than expected increase in the corresponding
memory statistic. A subsequent allocation might fit into the same
chunk, in which case there would be no increase in the corresponding
memory statistic.