Repository navigation
feat(runtime): automatically scale CPU work and prepare 0.89.0 - #393
Merged
Merged
Conversation
Order and trace UUIDs must stay redacted without becoming evidence of credential exfiltration. Cover canonical and compact IDs in the tool check and document format boundaries, observation mode and saved-credential handling.
Keep a small permanent I/O scheduler while CPU work can use the available cores within a memory-based admission budget. Promote concurrent small-body scans as well as large requests, and let surplus execution and sandbox threads retire after ten idle seconds. Use mimalloc by default and retain body-byte reservations through shared buffers and incremental decompression. Return retryable 429 responses under buffering pressure instead of letting concurrent bodies grow without admission. Prepare version 0.89.0 and document the automatic policy. Fixes #392
Sparse allocator heaps can keep whole transparent huge pages resident and exceed the existing Linux smoke memory limit even after traffic has settled. Disable THP for the Core process before worker creation and stop mimalloc from explicitly requesting it. This preserves system settings and requires no user configuration. Keep the 150 MiB smoke limit and add a Linux test for the process policy. The system-allocator comparison build remains unaffected.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
What this changes
Prepare Core 0.89.0 with automatic resource scheduling: keep up to eight permanent I/O workers, expand CPU execution to the available parallelism within a memory budget, and retire surplus execution and plugin threads after ten idle seconds. Use mimalloc, disable transparent huge pages for the Linux Core process where permitted, and admit request buffering by bytes with retryable
429responses under pressure; existing configurations need no changes.Why
An almost idle 80-core server can retain excessive memory through per-thread allocation arenas. Reducing permanent workers must preserve the ability to use its CPUs under load, including concurrent small-body scans and sandbox calls. Transparent huge pages also inflate sparse small-object heaps on Linux, so the allocator policy must keep the physical footprint low without changing host settings.
Fixes #392.
How it was verified
Notes for review
CPU and memory ceilings are selected at startup; execution threads follow demand during operation. The byte budget estimates buffering and parsing overhead rather than imposing a hard process RSS ceiling. Tests use a simulated 80-core policy; throughput and long-term RSS have not been measured on an actual 80-core Linux host. Control-plane and store schemas stay unchanged.