Skip to content

benchmarking: add an interference scenario (probe suspend/resume latency next to co-located load) #2806

Open

Description

Proposal

Add a benchmark scenario that measures how co-located actors slow suspend and resume. A few light probe actors cycle through suspend and resume while noise actors on the same node either write to their durable dirs or run the SWE-bench replay. Comparing each noise run with a probes-only run gives the slowdown, independent of the noise workload's own snapshot sizes.

Why

Nothing upstream measures this today, and it has caught real problems on micro-VM nodes (c3-highmem-192-metal, one node):

Shape

  • A diskcontention boomer user class. The first --dc-probe-users VUs run Glutton probe actors, reported as Probe* rows. The rest run the noise chosen by --dc-noise-mode: disk (Glutton actors writing to their durable dir, optionally rate-capped, with or without fsync) or sweperf (the SWE-bench replay).
  • The arms as tests.yaml entries run by the orchestrator (probes only, disk noise, SWE-bench noise), so they get the standard deploy and teardown, outputs, and server telemetry.
  • Two small Glutton changes it needs: a per-request fsync option on WriteDisk (today fsync is a server-wide flag), and not counting calls canceled at shutdown as failures (the user class cancels its noise VUs on stop).
  • Out of scope: the separate run, collect, and report scripts used for the investigation.

A reference implementation, including that separate harness, is in #2747 (now a draft). Without the harness it is about 1,600 lines, tests included.

Max Smythe (@maxsmythe), would you take this upstream? Happy to adjust the shape to fit the orchestrator.

Activity

  1. maxsmythe commented on Oct 20, 2026

    @maxsmythe
    Collaborator

    This is interesting. Would the following PR that adds scripting to glutton make this easier to implement?

    #2162

    Rather than implementing a second harness, maybe this is a good time to introduce user classes to boomer? Then we could mix-and-match different users at-will.

    It would also require changes to dynConfig to support multiple classes, but I think worth it.

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions