Skip to content

Benchmark DurDir #673

Description

@maxsmythe

We should have a benchmark that evaluates the efficacy and performance of DurDir. I'm thinking roughly:

  • Write an X byte file of random bytes to DurDir
  • Serve file
  • [LOOP ENTRY POINT]
  • Suspend
  • Serve file (zero changes expected to validate DurDir is Dur(able)
  • re-serve file (were there lazy loading bottlenecks? Caching performance improvements?)
  • Overwrite file with new X byte file (do infinite overwrites cause infinite snapshot size growth?)
  • [RESUME LOOP]

Interesting signals:

  • Write speed
  • Serving speed
    • Relative timings of first post-write request, first post-suspend request and second post-suspend request may reveal interesting properties of underlying infrastructure.
  • Resume/Suspend speed over time (Locust gathers percentiles, but we will at least be able to see if numbers increase over time by checking periodic statistics emitted by Locust).
  • Whether served bytes match expected bytes (consider request failed if not)
  • Image size over time (not gathered by-default by Locust, can defer solving this)

We can consider running this same test with data stored in RAM, but RAM is expected to be lost on occasion (e.g. upgrades), so DurDir is most salient.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions