Skip to content

[test] load test#479

Open
joyqvq wants to merge 2 commits intomainfrom
joy/load-test-script
Open

[test] load test#479
joyqvq wants to merge 2 commits intomainfrom
joy/load-test-script

Conversation

@joyqvq
Copy link
Collaborator

@joyqvq joyqvq commented Feb 11, 2026

Description

spin up 20 key servers and 1 aggregator (key shares from a testnet ceremony and finalized key server obj onchain)

bash scripts/start-committee-20-servers.sh

run load test

pnpm load-test -- --network testnet --servers '[{"objectId":"0x8a0e2e09a4c5255336d234b11014642b350634f07d07df6fc4c17bf07430c872","aggregatorUrl":"http://localhost:3000"}]'

Test plan

Size     Encrypt (avg)  Encrypt (min-max)    Decrypt (avg)  Decrypt (min-max)    Runs
------------------------------------------------------------------------------------------------------------------------
1kb            210.65ms      59.41-974.27ms         60.75ms      26.05-323.07ms     10
1mb            188.12ms      57.20-871.56ms         52.41ms      26.49-240.26ms     10
10mb           195.32ms      77.83-681.82ms         67.07ms      28.48-386.41ms     10
100mb          313.17ms     298.08-358.67ms         72.67ms      53.31-223.32ms     10

@joyqvq joyqvq requested a review from benr-ml February 11, 2026 22:29
@joyqvq joyqvq changed the title load testing script [test] load test Feb 11, 2026
@joyqvq joyqvq force-pushed the joy/load-test-script branch from c132723 to 864c501 Compare February 11, 2026 22:40
@joyqvq
Copy link
Collaborator Author

joyqvq commented Feb 11, 2026

cc @benr-ml on results. imo we dont need to land this, but keeping it here as a benchmark.

this is for all servers running locally, the performance is pretty good - encrypt scales linearly with file size, decrypt is constant.

@benr-ml
Copy link
Collaborator

benr-ml commented Feb 12, 2026

@joyqvq the message size is less important here, let's stress test the aggregator with 20 concurrent calls per second for 10 minutes and check performance?

@joyqvq
Copy link
Collaborator Author

joyqvq commented Feb 12, 2026

@joyqvq the message size is less important here, let's stress test the aggregator with 20 concurrent calls per second for 10 minutes and check performance?

the file size is just to make sure the sdk is behaving ok. re server load test its probably the best to do it on the ci deployed aggregator, we have a 5 out of 5 setup there.

while i can simulate 20 concurrent calls for 20 unique package ids in one iteration. but 10 minutes is hard to do since key servers will be caching package ids, the result will be after caching. or we can also temporily disable caching on ci server

@joyqvq joyqvq force-pushed the joy/load-test-script branch from 864c501 to 3c22707 Compare February 12, 2026 17:08
@benr-ml
Copy link
Collaborator

benr-ml commented Feb 12, 2026

but 10 minutes is hard to do since key servers will be caching package ids, the result will be after caching.

that is ok, we are mainly stress testing the aggregator

@joyqvq joyqvq requested a review from jonas-lj as a code owner February 12, 2026 18:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants