Disk Usage Increasing Without Being Released in HiveMQ 4.44-4.46
Overview
This article documents a known critical issue affecting HiveMQ versions 4.44 through 4.46 where disk usage continuously increases without being properly released, particularly in the publish_payload_store directory. This issue is especially prevalent in Kubernetes deployments with specific CPU configurations.
Symptoms
Continuous disk usage growth in
/opt/hivemq/data/persistence/publish_payload_storeDisk usage increases even with minimal queued messages and retained messages
Publish payloads are not cleaned up correctly
Issue persists despite normal broker operations
Root Cause
HiveMQ versions 4.44 to 4.46 contain a critical configuration issue that can cause excessive disk space usage on nodes with non-power-of-two CPU core counts(1)(https://docs.hivemq.com/hivemq/latest/upgrade/4-44-to-4-45.html). The issue involves persistence cleanup where publish payloads are not cleaned up correctly on deployments with certain CPU configurations(1)(https://docs.hivemq.com/hivemq/latest/upgrade/4-44-to-4-45.html).
In Kubernetes environments, the effective CPU quota visible inside the container through cgroups determines the behavior, not just the underlying instance type. For example, a pod CPU limit of 2500m (2.5 cores) can trigger this issue even on nodes with 4 vCPUs available.
Affected Versions
HiveMQ 4.44.0 through 4.46.0
All deployment types (self-managed, Kubernetes, bare metal)
Resolution
Permanent Fix
Upgrade to HiveMQ 4.46.1 or higher, which resolves this issue(1)(https://docs.hivemq.com/hivemq/latest/upgrade/4-44-to-4-45.html).
For upgrade procedures, follow the rolling upgrade process documented for HiveMQ clusters(2)(https://docs.hivemq.com/hivemq/latest/user-guide/cluster.html).
Immediate Mitigation (Before Upgrade)
If immediate upgrade is not possible, implement the following workaround:
1. Increase CPU Limits
For Kubernetes deployments using Helm, increase the HiveMQ pod CPU limit to at least 4 cores(3)(https://docs.hivemq.com/hivemq-platform-operator/configuration.html):
resources:
cpu: 4000m
2. Perform Rolling Restart
Execute a rolling restart of cluster nodes one by one to allow cleanup processes to run with increased resources(2)(https://docs.hivemq.com/hivemq/latest/user-guide/cluster.html).
Post-Upgrade Actions
After upgrading to 4.46.1 or higher:
Monitor disk usage - note that physical disk space reclamation occurs during flush/compaction cycles and may not be immediate
Check the
cluster-backupsubfolder - if it is large and the cluster is healthy, it can be safely removedVerify that disk usage stabilizes at expected levels
Important Warnings
DO NOT manually delete publish_payload_store or other persistence folders on a running node. This can lead to:
Data inconsistencies
Missing payload references
Cluster instability
Prevention
To prevent recurrence:
Upgrade Policy: Maintain HiveMQ at version 4.46.1 or higher
CPU Allocation: In Kubernetes environments, allocate CPU limits as power-of-two values (2, 4, 8 cores) when possible
Monitoring: Implement disk usage monitoring with alerts for the persistence directories(4)(https://docs.hivemq.com/hivemq/latest/user-guide/monitoring.html)
Regular Maintenance: Follow HiveMQ maintenance best practices and stay current with maintenance releases
Additional Resources
HiveMQ 4.46.1 Release Notes
Related Issues
This issue may appear alongside other known issues in HiveMQ 4.44-4.46:
Consumer polling issues that can cause queue sizes to increase indefinitely(1)(https://docs.hivemq.com/hivemq/latest/upgrade/4-44-to-4-45.html)
HiveMQ Enterprise Extension for Snowflake reporting invalid channel connections(1)(https://docs.hivemq.com/hivemq/latest/upgrade/4-44-to-4-45.html)
For assistance, contact HiveMQ Support.
Last Updated: Based on HiveMQ 4.46.1 release information
Applies To: HiveMQ Self-Managed versions 4.44.0 - 4.46.0