Высокая загрузка CPU из-за бесконечного цикла
Если CPU постоянно загружен на 100% и в этом виноват один процесс, частой причиной бывает бесконечный цикл или активное ожидание (busy-wait).
Common symptoms
- Один процесс сразу загружает одно ядро на 100%
- Нет полезного результата, несмотря на высокую загрузку CPU
- Перезапуск временно устраняет проблему
Likely causes
- Отсутствует условие выхода из цикла
- Опрос без задержки (sleep)
- Повторные попытки без backoff
Evidence to look for
Одна и та же функция повторяется в сэмплах профилирования
CPU остаётся загруженным на 100% без какого-либо прогресса
Перезапуск процесса временно устраняет проблему
What it usually means
Процесс бесконечно повторяет одну и ту же работу, не продвигаясь вперёд.
What to do next
- 1Добавить условия выхода и интервалы задержки (sleep)
- 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