Короткий ответ Сначала находят проблемный процесс и его потоки через top -H/htop, смотрят, что делает процесс на уровне системных вызовов через strace -p <pid>, или профилируют код через py-spy dump/py-spy top, которые показывают стек вызовов работающего процесса без его остановки. Как это работает подробнее top -H показывает загрузку CPU по отдельным потокам; strace трассирует системные вызовы, показывая, не крутится ли процесс в busy-loop без I/O (признак чистого CPU-bound цикла в коде). py-spy — внешний сэмплирующий профилировщик, читающий стек CPython-процесса из памяти. Пример кода Что использовать на практике Рекомендация. если strace не показывает системных вызовов продолжительное время — проблема скорее в самом коде (бесконечный цикл, неэффективный алгоритм, regex с катастрофическим backtracking); py-spy dump -p <pid> сразу укажет конкретную функцию. Подводные камни Риск. пытаться подключить обычный debugger, требующий перезапуска процесса, к упавшему в 100% CPU production-процессу; смотре