Skip to content

perf: remaining performance ledger after the 2026-09 SOCKS5 batch #172

Description

@CMGS

Successor to #30, which closes with this issue open. Every #30 item was re-verified against main on 2026-09-14 (ledger in the closing comment there): the 2026-07 hotspot work, the refill admission re-eval, the digest and generation-store rework, the XFS/direct-IO storm, the staging fsync recipe, the VM-name suffix widening and the SOCKS5 opt-in are done or superseded; wire v2 and the bulk-frame buffer live in #34. What remains is below, each with the trigger that reopens it. Numbers of record live in docs/benchmarks.md and docs/performance.md; the C1M campaign measurements stay in #30's thread.

Open — unowned lever

  • Cocoon clone-serving / CLI-per-op. Every engine operation is one fork+exec of the cocoon binary; measured 155–180 clones/s through the CLI against 257–274/s direct. The cocoon supervisor issue closed without a daemon or library mode. Largest remaining fill-rate lever; needs a cocoon-side decision.

Deferred — reopen triggers

item where trigger
claimStore whole-map marshal + rename per commit sandboxd/pool/claims.go >120 live claims per node
idleOnce/archiveOnce O(n) scans under the manager mutex sandboxd/pool/hibernate.go, archive.go same
checkpoint TTL sweep re-lists the full store per tick sandboxd/pool/checkpoint.go checkpoint count grows 10x
resyncEgress serial lock pass at restart sandboxd/pool/reconcile.go many egress claims + a restart-time SLA
probeReady engine-list fallback poll sandboxd/pool/refill.go the fallback branch shows up in practice
recLock global serialization on template records sandboxd/pool/template.go recLock reaching the claim path
ownership probing per distinct cold id (5 s positive cache + singleflight) sandboxd/store/peer/probe.go sustained distinct-id branch rate

Micro items — unchanged since 2026-07-26, all below the noise floor today

silkd: 64 KB inbound vsock buffer (folds into #34), tagged double-pass decode in proto.rs, regex recompiled per call in find.rs, 256 KB ring / 300 s detached linger with no aggregate cap in proc.rs/exec.rs. sandboxd: two random draws per claim id, eager key hash in server.go, quota precheck and warm-pop as separate lock takes, refill catch-up rescan under the mutex, 1 s gossip push/pull, intercept leaf-cache full clear. SDKs: fresh connection per call and in-memory archives (Python), client rebuilt per op (openai adapter), double marshal (mcp), unbounded append in sdk/go/files.go.

Rejected with data — do not re-litigate without new evidence

Pre-dialed spare connection; fs_push chunk 256K→1M; nft netlink connection merge; silkd conn scanner-buffer pooling; encodeTagged rework; silkd cold-start slimming; twice-registered cancel hook.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions