У меня есть приложение 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?
Спасибо!