Высокая загрузка CPU в Node.js
Высокая загрузка CPU в Node.js часто возникает из-за блокировки event loop, «тугих» циклов, горячих участков JSON, бэктрекинга в регулярных выражениях или слишком большого объёма работы в одном процессе.
Common symptoms
- Процесс Node.js регулярно выходит в лидеры по потреблению CPU
- Задержка ответов резко возрастает
- Один экземпляр становится узким местом
Likely causes
- Блокирующая CPU-нагрузка внутри обработчиков запросов
- Неэффективная сериализация или парсинг
- Проблемы в регулярных выражениях или циклах
- Слишком высокий уровень параллелизма в одном процессе
Evidence to look for
Один PID процесса Node.js стабильно держится выше 40% CPU
CPU растёт при всплесках трафика
Снятый perf-профиль показывает горячие фреймы JS/native
What it usually means
Node.js хорошо справляется с IO, но CPU-интенсивная работа в основном потоке быстро приводит к росту задержек и насыщению ресурсов.
What to do next
- 1Перенести тяжёлую работу в worker-потоки или очереди
- 2Сократить блокирующую работу на пути обработки запроса
- 3Профилировать горячие функции перед горизонтальным масштабированием
See what's causing your CPU
cpum.ai turns CPU, process, disk, and memory signals into plain-English explanations with evidence.
Open cpum.ai