Как рассчитать соответствующее значение UV_THREADPOOL_SIZE для приложения NodeJs - PullRequest
1 голос
/ 24 мая 2019

У меня есть приложение NodeJS, использующее Express в качестве веб-фреймворка, предоставляющее один API, который получает файл JSON и использует данные файла json для заполнения шаблона текстового документа и создания PDF, который доставляется для загрузки в API. ответ.

Для документа JSON to Word мы используем библиотеку carbone.io, которая, как мне кажется, выполняет следующие операции ввода-вывода:

  • Читает шаблон документа
  • Записывает полученный файл слов

Затем наш API вызывает PostScript для преобразования docx в PDF (libreoffice), а затем в Response.download полученного PDF.

Валюта очень сложна, особенно учитывая значение размера пула потоков по умолчанию в libuv, равное 4. Итак, я хотел бы увеличить размер пула потоков, установив UV_THREADPOOL_SIZE, однако я хотел бы знать, как рассчитать соответствующее значение для мое приложение запускается для различных сред.

Это приложение будет работать на док-контейнерах и будет иметь несколько экземпляров, развернутых с помощью k8s, но я бы очень хотел, чтобы он мог обрабатывать более одного запроса в течение нескольких секунд. Мы ожидаем не менее 100 запросов / с (не TPS, поскольку весь процесс преобразования и преобразования занимает время) для этого приложения на начальном этапе и масштабируются со временем.

Итак, мой вопрос таков: как я могу оценить подходящее значение для UV_THREADPOOL_SIZE?

Спасибо!

...