Memory Leak Fix: Implementing jemalloc Allocator #205
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Memory Leak Fix: Implementing jemalloc Allocator
Issue
Memory leak identified during multiple SNOS job runs, causing cumulative memory growth over time. Memory usage increases with each job completion, even after tasks finish.
Root Cause Analysis
tokio
spawned tasks lead to memory fragmentationmalloc
) requests new memory segments instead of reusing fragmented spacesSolution
( See attached screenshots for reference )
Implemented jemalloc as global allocator with aggressive memory release configuration:
Environment Configuration
JEMALLOC_SYS_WITH_MALLOC_CONF="background_thread:true,narenas:1,tcache:false,dirty_decay_ms:0,muzzy_decay_ms:0,abort_conf:true"
Configuration breakdown:
background_thread:true
: Enables background memory managementnarenas:1
: Single arena to reduce fragmentationtcache:false
: Disables thread caching for immediate memory releasedirty_decay_ms:0
: Immediate release of unused dirty pagesmuzzy_decay_ms:0
: Immediate release of muzzy pagesabort_conf:true
: Fails fast on configuration errorsTesting
Dependencies Added
Empirical Analysis
Current allocation, leading to memory leaks.
After implementing
Jemallocator
Note
While the exact mechanism of the fix requires further investigation, the implementation has effectively resolved the memory leak issue in production environment.
This PR description is enhanced using AI.