Investigating MQTT Client Behavior
Summary
This guide explains how to use the Chariot Web UI to investigate MQTT client behavior that may impact server performance, including memory usage and CPU load.
Inspect Client Sessions
Navigate to MQTT → Client Status → Clients and select a Client ID.
This view displays connection details including:
- Network information
- Session configuration
- Last Will and Testament (LWT)
- Active subscriptions
Look for:
- Clients with persistent sessions (Clean Session = No)
- Clients with QoS 1 or 2 subscriptions, especially broad topic filters
Clients configured this way may cause the server to retain large volumes of messages in memory when the client is offline.
Review Retained Messages
Navigate to MQTT → Client Status → Retained Messages.
This view displays all retained messages stored by the server.
Look for:
- A large number of retained messages
- Large payload sizes
Excessive retained messages can significantly increase memory usage.
Analyze Message QoS via Logging
To inspect message QoS levels for a specific client:
- Navigate to GENERAL → Logging → Levels
- Set
com.cirruslink.chariot.core.PacketHandlerto DEBUG - Navigate to GENERAL → Logging → Live
Each incoming message will appear in the logs.
Look for:
- Client ID
- Source IP address
- Topic
- QoS level
High volumes of QoS 1 or 2 messages may contribute to increased resource usage.