Hey @Gwendal,
There are 2 types of wokers a normal worker that you can set the concurrency to and webhook workers which are workers that just handle webhooks and I believe they drop the data to the database for a worker to pick up so you would be best to have a mix of the 2 so that you are not sending all of your webhook traffic to your main n8n instance.
Optimizing an instance all depends on what you are using and there is no magic answer to it there will be some trial and error with various settings to find out what works for your environment and your load.
Below are some notes on your original questions from another team member that may also help.
Can 1 worker with multiple concurrencies use several CPU Threads ?
worker concurrency determines how many parallel executions a worker can have at any time.
But, all these parallel executions are still running in a single threaded application.
So, if you have a lot of I/O, then these executions run more or less in parallel, but if you have a code node with a lot of slow synchronous code, then a single execution can block the entire thread until it’s finished.
Can multiple workers with 1 concurrency use several CPU Threads ?
Yes. each worker gets it’s own process. So, you can use a multi-core CPU more effectively.
What’s the point on having several workers with several concurrencies for each of them ?
Multiple workers help by making the processing multi-threaded. But, You still need concurrency within a worker to utilize the resources better when a lot of time is spend on I/O. If you have workers with a concurrency of 1, you end up with a system that does nothing while it’s making http requests, or reading/writing to the filesystem.
What’s the most optimized way to use workers and concurrencies in order to fully use 32 threads ?
This quite a lot depends on your workload, and might need customization by you.
n8n workers default concurrency to 10 by default. But if you have a lot of I/O in your executions, it might make sense to increase this value, until you notice executions slowing down. I’ve seen setups with a concurrency of 30.