Scalability Issue

Hi everyone, I’m running into a scalability issue with n8n and would really appreciate some guidance, as I don’t have deep infrastructure knowledge.

I currently have around 30–31 workflows running in parallel, each triggered every 5 minutes. Each execution performs multiple external requests (Supabase queries, HTTP requests for scraping, and some AI processing). Individually, a workflow should take around 1–2 minutes to complete.

However, what I’m observing is that executions start piling up. A workflow starts, then seems to get “stuck” at some point (often around database queries or HTTP requests), and never finishes. Five minutes later, a new execution starts, then another, and so on. After some time, I end up with many executions running simultaneously (some running for over 1–2 hours), all seemingly stuck.

My current hypothesis is that this is not a memory issue (server usage looks relatively low), but rather a concurrency and I/O problem. It seems like too many executions are running at the same time, all making multiple requests to Supabase and external sites, which may be exhausting connection pools or causing requests to hang indefinitely. Since there is no global execution timeout configured, these stuck executions never terminate, and new ones keep getting scheduled.

I’d like to understand if this reasoning makes sense.

More importantly, I’m trying to figure out what is considered a “safe” level of parallelism in n8n. For example, how many workflows can realistically run at the same time without causing this kind of issue? Is there a recommended way to calculate or estimate this based on server specs (e.g., 2 vCPU / 8GB RAM)?

Also, what would be the best practices to handle this situation properly? From what I’ve read so far, I’m considering:

  • Setting a concurrency limit (e.g., N8N_CONCURRENCY_PRODUCTION_LIMIT)

  • Adding a global execution timeout so stuck executions are killed

  • Possibly reducing the number of database calls per execution

  • Or restructuring workflows to be less I/O heavy

My goal is to be able to reliably run 30, 40, or even 50 workflows in parallel without them blocking each other or getting stuck.

Any guidance on how to approach this, or how you would architect this kind of setup in n8n, would be really helpful.

Thanks a lot in advance!

1 Like

Hi @Campaign_Strive , welcome to the n8n community!

I think your reasoning makes sense, this doesn’t sound like a pure memory problem to me, it sounds more like too many I/O-heavy executions running at once, with some of them getting stuck on Supabase, HTTP, scraping, or AI calls and never timing out, so new runs just keep stacking on top; if I were approaching this, I’d first set N8N_CONCURRENCY_PRODUCTION_LIMIT, add a global execution timeout, make sure the HTTP Request nodes have explicit timeouts too, and then reduce or stagger the heaviest external calls, and if the goal is to run 30–50 workflows reliably in parallel, I personally wouldn’t keep pushing regular mode too far and would start looking at queue mode with workers instead.

Hi @Campaign_Strive Welcome!
Consider upgrading your VPS server to at least 24gb ram and somewhat good storage and there you will never face this kind of problem.

Thank you very much @tamy.santos @Anshul_Namdev :slight_smile: