besu icon indicating copy to clipboard operation
besu copied to clipboard

Performance Regression Checks

Open jflo opened this issue 1 year ago • 0 comments

Coordinate with Ameziane and performance workstream on this https://github.com/Consensys/protocol-misc/issues/831

  • All performance testing requires consistent VM specs.
  • Discourage use of GHA hosted free runners, as we have no control over the quality.

For any given build, we would like to automate its deployment, and mark its time of startup as well as when it finishes syncing and begins following head with the rest of the network. All interesting metrics should be collected during this time, and should be comparable to a "baseline" set of data. If divergence from that baseline is outside of an accepted deviation, alerts should be fired.

Examples of interesting metrics:

  • Time to sync
  • Block processing time
  • Time to acquire max peers
  • CPU, Memory use and Disk IO use both during sync and “following head”.

Strawman Design:

  • GithubAction or Webhook fires when a Release Candidate is created.
  • Some process reacts to that and deploys that build in N permutations to Consensys managed cloud infrastructure. N would include a variety of CL clients and test networks.
  • Each node would log a "startup" event via prometheus metrics
  • Each node would start syncing from an empty state
  • Each node would log a "synced" event via prometheus metrics
  • Alerts would be developed in grafana which would fire when any of the metrics of interest diverge from norms.

jflo avatar Mar 20 '24 19:03 jflo