Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce loadtest Command to Soroban RPC #1032

Closed
wants to merge 3 commits into from
Closed

Conversation

stellarsaur
Copy link
Contributor

What

This PR adds a new loadtest command to generate configurable load to a running Soroban RPC server.

Examples:

Simple ping loadtest at 10000 requests/s for 1 minute
soroban-rpc loadtest --soroban-rpc-url=<url> -g getHealth -n 10000 -d 1m

Simulate transaction loadtest at 1000 requests/s for 3 minutes
soroban-rpc loadtest --soroban-rpc-url=<url> -g simulateTransaction -n 1000 -d 3m --network-passphrase="Test SDF Future Network ; October 2022" --hello-world-contract-path="./test_hello_world.wasm"

Tested by spinning up a Soroban RPC docker image on a devbox and generating load to it from my local machine.

Why

It's useful for both us, and infrastructure providers, to be able to benchmark soroban-rpc performance with different types of request loads. In the future, we can consider productionalizing this to run on soroban releases to make sure we don't introduce notable performance regressions.

Known limitations

  • Limited types of requests able to be generated currently (getHealth, getEvents, simulateTransaction)
  • Config only from CLI and not config file
  • Manually have to inspect resource consumption on server machine (soroban-rpc metrics have limited support)

@stellarsaur stellarsaur self-assigned this Oct 18, 2023
@stellarsaur stellarsaur added the enhancement New feature or request label Oct 18, 2023
@stellarsaur stellarsaur requested a review from a team October 26, 2023 16:00
@stellarsaur
Copy link
Contributor Author

Closing this since all new RPC contributions belong in the soroban-rpc repo. If we want to move forward with incorporating this command I'll reopen this PR in the soroban-rpc repo.

@stellarsaur stellarsaur closed this Feb 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant