-
Notifications
You must be signed in to change notification settings - Fork 25
Open
Description
Description
We encounter critical resource and performance issues when running try-runtime-cli with our target runtimes, which improve drastically only after upgrading system memory. Key details are as follows:
- Memory Exhaustion & OOM Termination: With the initial 16GB physical memory configuration, the system rapidly runs out of memory during
try-runtimeexecution, causing severe system lag. Eventually, thetry-runtimeprocess is consistently killed by the operating system due to an Out-of-Memory (OOM) error. - Extreme Execution Time (16GB RAM Scenario): In the rare cases where the process avoids OOM and completes successfully with 16GB RAM, execution takes approximately 3 hours—far exceeding acceptable workflow limits.
- Resolution with Increased RAM: After upgrading the system’s physical memory to 32GB (keeping other configurations unchanged), the issue is resolved:
try-runtimecompletes execution quickly (no specific long delays observed) and no OOM crashes occur.
Environment Configuration
| Component | Initial Configuration (Problematic) | Updated Configuration (Working) |
|---|---|---|
| try-runtime-cli Version | 0.8.0 | 0.8.0 |
| Target Runtime(s) | - bifrost-polkadot (snapshot: ~3.1GB) - bifrost-paseo |
- bifrost-polkadot (snapshot: ~3.1GB) - bifrost-paseo |
| Operating System | Ubuntu 24.04 | Ubuntu 24.04 |
| System Resources | - CPU: 8 cores - Physical Memory: 16GB - Swap Space: 16~32GB (enabled) |
- CPU: 8 cores - Physical Memory: 32GB - Swap Space: 16~32GB (enabled) |
Additional Context
This behavior suggests the try-runtime process (especially when handling the ~3.1GB bifrost-polkadot snapshot and Bifrost-specific runtimes) has a higher minimum memory requirement than initially anticipated. While upgrading to 32GB RAM resolves the issue for us, we have questions for further optimization:
- Is the 32GB RAM requirement expected for
try-runtime-cli 0.8.0when processing large snapshots (e.g., 3.1GB) for Bifrost runtimes? - Are there CLI flags, runtime configurations, or snapshot optimization techniques (e.g., pruning) that could reduce the memory footprint, allowing reliable execution with 16GB RAM?
- Could the high memory usage be linked to runtime-specific logic in
bifrost-polkadot/bifrost-paseo(e.g., unoptimized state handling duringtry-runtimevalidation) rather than justtry-runtime-cliitself?
Steps to Reproduce
- Reproduce OOM/Long Execution (16GB RAM):
- Use
try-runtime-cli 0.8.0to run validation againstbifrost-polkadot(with3.1GB snapshot) on a system with 8 cores, 16GB RAM, and 1632GB swap. - Monitor memory usage: Observe rapid memory depletion, system lag, and eventual OOM killing. If successful, execution takes ~3 hours.
- Use
- Verify Resolution (32GB RAM):
- Upgrade the same system’s physical memory to 32GB.
- Re-run the same
try-runtimecommand: Execution completes quickly with no OOM errors.
Metadata
Metadata
Assignees
Labels
No labels