One of the changes made by Ben Noordhius in Node v0.10.0 was to "honor UV_THREADPOOL_SIZE environment variable" in Unix. The "threadpool.c" source file seems to do just that.
If I don't set this env variable, I can verify that I am limited to a threadpool of 4 threads, which is the default size of the threadpool.
But I set this environment variable on my Linux server to 64 and then restart Node, but I still seem to be limited, seemingly to a threadpool of size of 5?!
Does this make any sense to anyone? Thanks!
It seems that you must set it the var with node command or from inside the node program. Execute it like:
UV_THREADPOOL_SIZE=64 node
or modify from program :
process.env.UV_THREADPOOL_SIZE=64
//then execute some function that requires threadpool
require('fs').readFile('testing',function(){});
Testing threads:
ps -Lef | grep "\<node\>" | wc -l
67
If you're running a Windows OS and running via a .js file you'll need to set the UV_THREADPOOL_SIZE
prior to calling the script via node.
Example in cmd: SET UV_THREADPOOL_SIZE=2 && node my-file-to-run.js
(no spaces around the =
)
Or in Powershell: $env:UV_THREADPOOL_SIZE = 2 && node my-file-to-run.js
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With