Skip to content

Load Simulator: Five Node Network -> Avalanche-Ops N Node Network #742

@aaronbuchwald

Description

@aaronbuchwald

Expanded Load Test

Subnet-EVM currently runs a small load test in CI using the load simulator. It creates a network of five nodes using the avalanche-network-runner wrapped in a network manager https://github.com/ava-labs/subnet-evm/blob/v0.5.2/tests/utils/runner/network_manager.go#L44, which hides the implementation details including the server/client from the load test itself.

This ticket should add support for deploying an N node network (ideally with support for gathering CPU profiles and ingesting metrics) on cloud infrastructure from the same test by specifying a command line option for the load test: https://github.com/ava-labs/subnet-evm/blob/v0.5.2/tests/load/load_test.go#L45.

Implementation

The load simulator takes in a set of RPC endpoints loaded through an environment variable: https://github.com/ava-labs/subnet-evm/blob/v0.5.2/tests/load/load_test.go#L41. Therefore, the only change needed for this test should be to add a command line option that specifies using avalanche-ops or an alternative tool for deploying Avalanche nodes / subnets instead of the avalanche-network-runner, the number of nodes that should be created for the test, and any additional configuration information that needs to be specified about where and how to setup the additional infrastructure.

In the same way that the current load test cleans up and deletes the network after it finishes running, the new setup should support cleaning itself up using the AfterSuite to ensure that all resources are cleaned up after each load test.

This should support specifying the creation of a Subnet along with the AvalancheGo / Subnet-EVM binary to use on each machine, the global node config and the chain config for the created subnet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Status

    Backlog 🧊

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions