На сервере восемь ядер, а сервис упирается в 100% одного ядра
Сервис на Node.js запущен одним процессом node server.js на машине с восемью ядрами. Под нагрузкой мониторинг показывает: одно ядро загружено на 100%, остальные почти простаивают, время ответа растёт.
Как использовать все ядра?
- Запустить несколько процессов: модуль cluster, PM2 или несколько реплик
- Увеличить размер пула потоков libuv через UV_THREADPOOL_SIZE
- Переписать обработчики на async/await
- Включить флаг --max-old-space-size
