Surface and bound aggregate daemon memory footprint #2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Per-handle resource limits exist (
max_messages_per_handle,max_bytes_per_handle) but the productmax_bytes_per_handle × concurrent_handlesis the daemon's worst-case inbound-queue memory ceiling. Today this product is unbounded because the handle count is unbounded (see #1).Once #1 lands, the worst-case ceiling becomes
max_bytes_per_handle × max_handles. With current defaults that is64 MiB × 64 = 4 GiBof inbound queue per daemon — already large enough to surprise an operator who picked the defaults without thinking about the multiplication.Proposed change
daemon.queue_ceiling_bytes = X (max_bytes_per_handle=Y × max_handles=Z).daemon status.daemon.queue_ceiling_warn_bytesconfig; warn at startup if the computed ceiling exceeds it. Suggest default 1 GiB.This is awareness, not enforcement. The hard cap remains
max_bytes_per_handle; this issue surfaces the consequence of the multiplication.Acceptance
daemon statusshows aggregate ceiling.queue_ceiling_warn_bytes.Refs
cbcl-runtimedeck slide 17