2

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

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

  • 阅读 docx 模板
  • 写入生成的 word 文件

然后我们的 API 调用 postscript 将 docx 转换为 PDF (libreoffice),然后是生成的 PDF 的 Response.download。

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

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

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

谢谢!

4

0 回答 0