Nodejs worker pools fine tuning

jrme_chauveau_54adb30d6

Jérôme Chauveau

Posted on November 21, 2024

Nodejs worker pools fine tuning

Hi everyone,

If I understood correctly:

1) by default nodejs provides a worker pool, whose size can be tuned with UV_THREADPOOL_SIZE (default: 4)
2) a cpu or io intensive task can use thread from this worker pool (this is the case for node modules like DNS or Crypto) or create a dedicated worker pool
3) total number of worker pools should not exceed the actual number of cpu capability of where the application is running

My questions:

1) how do you track the actual number of workers being used by your application ?
2) when using third party modules (for instance mongoose or JSONStream), one should be aware of those modules strategy (use of default worker pool or dedicated worker pool). Does that mean that for every module used one should look into the code to determine its strategy?
3) the use of node cluster (for instance with pm2) seems that it complicates the fine tuning of the number of workers, and that it'd be better to just scale out. Your advice on this matter?

Thanks for your feedback

💖 💪 🙅 🚩
jrme_chauveau_54adb30d6
Jérôme Chauveau

Posted on November 21, 2024

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related