How many requests per minute can strapi handle?

That is a very subjective question, determining RPS is a hard metric to properly calculate. First thing is you are below our recommended RAM specs (see this doc).

Request per second largely depends on the size of the request and if you are using say paging or if you have a lot of relations that need to be populated. It also largely depends on the database infrastructure sitting behind Strapi. Ideally your database should be able to handle at least moderate connection pooling and depending on the load you expect (after testing your application) you may need to scale the Strapi backend (vertically using something like PM2 clusters or horizontally which would depend on where you are hosting).

Functionally in the past I have deployed a personal application that has the following (also see my diagram below):

  • 3x Strapi “Nodes” (4 core, 6GB of RAM) with a PM2 cluster running 4 instances each (so a total of 12 Strapi backend “nodes”)
  • 5x MariaDB Galera member nodes (2x write, 2x read, 1x arbitrator; each node is 8 core 16GB of RAM)
  • 2x (active/passive) ProxySQL nodes to handle read-write splits and some light read caching (2 core, 2GB of RAM)
  • 3x (active/active) Nginx edge nodes, specs on these are not specific as they handle my entire environments traffic. Ideally these are only used to round-robin the traffic to each of the Strapi Virtual Machines

I was handling about 4 to 8 million requests per week or roughly between 6.6 RPS to 13.22 RPS although it’s rare that I would ever spike that high (and I could probably of hit much more with better tuning of the database as that was the primary bottleneck)

3 Likes