Бесконечный цикл Python и CPU
Бесконечный цикл — один из самых быстрых способов загрузить CPU на максимум. Даже цикл, который формально завершается, может вести себя как бесконечный, если слишком интенсивно «крутится» без пауз.
Common symptoms
- Процесс Python мгновенно загружает CPU
- Нет заметного прогресса, несмотря на высокую активность
- Перезапуск временно устраняет проблему
Likely causes
- Нет условия выхода (break)
- Цикл опроса без sleep
- Цикл повторных попыток без backoff
Evidence to look for
Один и тот же процесс постоянно нагружает CPU без видимого прогресса
Сэмплирование функций снова и снова показывает один и тот же паттерн стека
CPU остаётся высоким даже при низком внешнем трафике
What it usually means
Система выглядит «занятой», но процесс зачастую снова и снова выполняет одну и ту же бесполезную работу.
What to do next
- 1Добавьте sleep, backoff или условия выхода
- 2Логируйте прогресс цикла и количество итераций
- 3Используйте профилирование, чтобы показать, где происходит spin
See what's causing your CPU
cpum.ai turns CPU, process, disk, and memory signals into plain-English explanations with evidence.
Open cpum.ai