Nodejs中如何调整libuv线程池大小?
发布于 7 年前 作者 yidaimi 8608 次浏览 来自 问答

如题,我在linux中使用pstree -p | grep node命令查看node进程中有多少线程。 写了个简单的demo: hello.js: var http = require(‘http’); while(true){ console.log(process.env.UV_THREADPOOL_SIZE); }

我在Node 6.9版本中试过好几个方法:

  1. 启动的时候使用 UV_THREADPOOL_SIZE=100 node hello.js命令启动。 2.在etc/profile里增加 export UV_THREADPOOL_SIZE=100,机器重启,再启动node hello.js
  2. 在代码中添加 process.env.UV_THREADPOOL_SIZE=100

三种情况的结果都是 [root@localhost ~]# pstree -p | grep node |-gnome-terminal-(3294)-±bash(3301)—node(8826)-±{node}(8827) | | |-{node}(8828) | | |-{node}(8829) | | |-{node}(8830) | | `-{node}(8831)

只有5个线程存在(我猜4个默认的,1个是loop线程)。 请问有人试过吗?是不是版本的问题?

参考文献: https://stackoverflow.com/questions/17554688/has-anyone-tried-using-the-uv-threadpool-size-environment-variable

8 回复

帮顶,我也想知道

自己顶一下!

6.10 UV_THREADPOOL_SIZE=100 node 是好使的

6.9.5也是好的

@jiangzhuo 请问你是怎么验证线程数量的?和我一样吗?

@jiangzhuo 正解,我用的java模块并发调用外部耗时函数验证的

来自酷炫的 CNodeMD

@dbit-xia 能贴一下代码吗?

@yidaimi 这个模块安装比较麻烦,成功后可以用并发调用java函数测试,如果不设置这个线程池变量,超过4个就无响应了,node-java-demo

来自酷炫的 CNodeMD

回到顶部