Skip to content

[benchmarker] Add step instability detection - #1613

Open
BenjaminPelletier wants to merge 1 commit into
interuss:mainfrom
BenjaminPelletier:benchmarker-instability
Open

[benchmarker] Add step instability detection#1613
BenjaminPelletier wants to merge 1 commit into
interuss:mainfrom
BenjaminPelletier:benchmarker-instability

Conversation

@BenjaminPelletier

Copy link
Copy Markdown
Member

Continuing with #1566, this PR adds the concept of throughput instability criteria. Currently, there are throughput stability criteria which must be satisfied to move onto the data collection portion of the step. This PR adds corresponding criteria indicating that throughput stability will not be achieved (e.g., the system is so overloaded it will be unable to recover) so that the step can be aborted.

Since steps can now be terminated without having collected a valid sample, the throughput stability time is made optional on the report and a StepTerminationReason is added.

@BenjaminPelletier
BenjaminPelletier marked this pull request as ready for review August 5, 2026 05:35

@mickmis mickmis left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Mostly just some clarifications.
In addition, do you have evidence of this feature working correctly?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the inclusion of this gitignore intentional?

stop_event.set()
await asyncio.sleep(0.5)

if stop_event.is_set() or stability_time is None:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Before if this evaluates to true, the next step (Summarize activity during step) was not executed. After it is executed. I'm unsure whether that's an issue or intended though?

PERIODIC_STATUS_PERIOD_S = 30.0


async def run_user_ramp_load(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This function is becoming challenging to follow. Consider breaking it down? Or in a future PR that touches it again?

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

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants