-
Notifications
You must be signed in to change notification settings - Fork 342
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
test: add a stress test for the https outcalls feature #4449
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome! Thanks!
Great stuff! Non-blocking comment: I haven't looked at the code yet but two more things to consider would be:
|
url: String, | ||
logger: &Logger, | ||
concurrent_requests: u64, | ||
) -> Result<u64, anyhow::Error> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe it would be easier to use if we return std::time::Duration
here?
) -> Result<u64, anyhow::Error> { | |
) -> Result<Duration, anyhow::Error> { |
This test adds an update message to the already existing
proxy_canister
, which performscount
concurrent outcalls.However, as the number of canister messages is limited to 500, the requests have to be split into batches.
All requests are lightweight both in therms of request size and response size.
The test sets up two testnets, with 13 and 40 nodes respectively. For each of them it tries to send 200, 500 and 1000 requests, and measures the average qps for each (over 3 experiments).
Results are as follows:
Interpretation:
Colocating nodes doesn't seem to affect the average qps by a lot (sometimes it's ~10% higher / lower, but there's no clear indication that it's way better / worse), as the main bottleneck here is the 500 limit on the concurrent canister messages.
Future attempts at stressing the feature may include: