Исправление 100% CPU у процесса Node.js
Процесс Node.js на 100% CPU обычно означает, что ваш event loop тратит слишком много времени на вычисления или патологические пути выполнения кода.
Common symptoms
- Один PID Node.js полностью загружает одно ядро
- Всплески задержек при падении пропускной способности
- Перезапуск временно устраняет проблему
Likely causes
- Бесконечные циклы или активное ожидание
- Большие синхронные преобразования данных
- Сжатие, криптография или парсинг под нагрузкой
Evidence to look for
Один и тот же процесс остаётся лидером по CPU на всех снимках
Flame graph показывает концентрацию нагрузки в нескольких функциях
Задержка запросов ухудшается параллельно с ростом CPU
What it usually means
Node.js наиболее уязвим, когда синхронная работа перегружает event loop. Правильное решение, как правило, структурное, а не просто горизонтальное масштабирование.
What to do next
- 1Вынесите синхронную работу из обработки запросов
- 2Используйте worker threads или фоновые задачи
- 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