У меня есть процесс Python (веб-приложение Pylons), который постоянно использует 10-30% процессорного времени. Я улучшу / настрою ведение журналов, чтобы получить некоторое представление о том, что происходит, но до тех пор, есть ли какие-либо инструменты / методы, позволяющие увидеть, что делает процесс python, сколько и насколько занятых потоков у него и т. Д.?
Обновление:
- настроенный журнал доступа, который показывает, что никаких запросов не происходит, webapp просто бездействует
- нет смысла вставлять paste.profile в цепочку промежуточного программного обеспечения, так как нет запросов, активность должна выполняться либо в рабочих потоках веб-приложения, либо на веб-сервере paster
- работает paster следующим образом: "python -m cProfile -o outfile / usr / bin / paster serve dev.ini", и проверка результатов показывает, что большая часть времени проводится в "posix.waitpid". Paster запускает webapp в подпроцессе, активность подпроцесса не отслеживается профилировщиком
- ищет; взламывая команду PasteScript «служить», чтобы подпроцессы были профилированы
Еще одно обновление:
После долгих поворотов, залипания профилировщика в разных местах и ознакомления с внутренностями PasteScript я обнаружил, что постоянная загрузка ЦП исчезает, если приложение запускается без параметра "--reload" (этот флаг говорит paster перезапускать себя при изменении кода , удобно в разработке), что хорошо в производственной среде.