Skip to content

Use Granian instead of uwsgi#3650

Merged
leplatrem merged 2 commits intomainfrom
replace-uwsgi-granian
Feb 19, 2026
Merged

Use Granian instead of uwsgi#3650
leplatrem merged 2 commits intomainfrom
replace-uwsgi-granian

Conversation

@leplatrem
Copy link
Copy Markdown
Contributor

@leplatrem leplatrem commented Feb 18, 2026

Let's try Granian instead of uwsgi.

Functional tests should pass (if they do, then investigate why they don't on mozilla/remote-settings#1162)

@leplatrem leplatrem marked this pull request as ready for review February 18, 2026 11:16
@alexcottner
Copy link
Copy Markdown
Contributor

I'm not sure if you were looking for performance improvements with this, but it looks like we'll be getting one. I know this is a big shift in how kinto works (scaling at the container vs scaling at the app) but here are my results anyways:

  • Same database, bucket, and collection with 10 tiny records.
  • Same stress test in jmeter, running 200 concurrent users in 100 loops, 0 second ramp up time.
  • Only hitting one endpoint: v1/buckets/tb1/collections/tc1/records?_sort=-last_modified&_limit=200

With main and uwsgi locked to 1 process: 80 seconds, 2 errors produced.
With this branch: 53 seconds, no errors produced.
Bumping the test up to 295 users results in no errors and takes 68 seconds to complete.
Beyond 295, I start seeing errors.

This could be a 34% improvement for performance if you look at test run time, or a 47% improvement if you look at how many concurrent users it can handle.

@leplatrem leplatrem changed the title Try Granian Use Granian instead of uwsgi Feb 19, 2026
@leplatrem leplatrem merged commit 168c16c into main Feb 19, 2026
16 checks passed
@leplatrem leplatrem deleted the replace-uwsgi-granian branch February 19, 2026 09:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants