如何为NodeJs应用程序计算适当的UV_THREADPOOL_SIZE值

时间:2019-05-24 17:18:45

标签: node.js express libuv

我有一个使用Express作为Web框架的NodeJS应用程序,它公开了一个API,该API接收JSON文件并使用json文件的数据填充Word文档模板并生成PDF,该PDF在API中下载下载响应。

对于从JSON到Word的文档,我们使用carbone.io库,我相信该库会执行以下IO操作:

  • 读取docx模板
  • 写入结果字文件

然后我们的API调用一个脚本,将docx转换为PDF(libreoffice),然后生成结果PDF的Response.download。

特别是考虑到libuv的默认线程池大小值为4时,货币非常复杂。因此,我想通过设置UV_THREADPOOL_SIZE来增加线程池大小,但是,我想知道如何计算适当的值以为我的应用程序运行的不同环境设置。

该应用程序将在docker容器上运行,并使用k8s部署了多个实例,但是我非常希望它能够每隔几秒钟处理多个请求。我们预计此应用程序在初始阶段至少要有100个请求/秒(不是TPS,因为整个转换和转换过程要花费时间),并且会随时间扩展。

所以我的问题是:我该如何估算UV_THREADPOOL_SIZE的适当值?

谢谢!

0 个答案:

没有答案