Performance tests for rchain network

Description

We don't have any performance tests for the node. `dupe` and `wide` contracts test the RSpace performance and don't create multiple nodes in the network. Any changes that are supposed to improve the performance of the network can't be properly tested. It's more like a hand waving rather than engineering work.

My idea for load tests suite is to create a test suite that will generate network load in the form of multiple blocks being proposed and passed between nodes.

Proposed test:

  • Create a network of *n* nodes,

  • Deploy and propose block on each of the node *m* times, repeat on every node in the network.

  • Run test *10* times, measure parameters that show how node performs under load: memory usage, GC, thread counts ( more to be defined ), discard extremes, take averages.

  • Set recorded averages as reference values in the grafana and create alarms on each of the parameters - if the result of the tests is worse than reference value - trigger an alert informing about potential regression.

Status

Assignee

Adam Szkoda

Reporter

Mateusz Gorski

Components

Story Points

None

Epic Link

Sprint

Fix versions

Priority

Medium