Ho un processo Python (webapp Pylons) che utilizza costantemente il 10-30% della CPU. Migliorerò/ottimizzerò la registrazione per avere un'idea di cosa sta succedendo, ma fino ad allora, ci sono strumenti/tecniche che permettono di vedere cosa sta facendo il processo Python, quanti thread occupati e quanti thread ha occupato?Studio del processo Python per vedere cosa sta mangiando CPU
Aggiornamento:
- configurato log di accesso che dimostra che non ci sono richieste in corso, webapp è solo al minimo
- nessun punto per collegare paste.profile nella catena di middleware in quanto non ci sono richieste , l'attività deve avvenire sia nei thread di lavoro webapp o nel server Web paster
- eseguendo il paster in questo modo: "python -m cProfile -o file di uscita/usr/bin/paster serve dev.ini" e l'ispezione dei risultati mostra che la maggior parte del tempo è stata spesa in "posix.waitpid". Paster corre webapp in sottoprocesso, l'attività sottoprocesso non viene raccolto da profiler
- esaminando; l'hacking PasteScript "servire" il comando in modo che sottoprocessi otterrebbe profilato
Un altro aggiornamento:
Dopo tanto armeggiare , incollando il profiler in vari punti e familiarizzando con gli interni di PasteScript, ho scoperto che il carico costante della CPU scompare se l'applicazione viene avviata senza il parametro "--reload" (questa bandiera indica al paster di riavviarsi da sola se cambia il codice, utile nello sviluppo), che va bene nell'ambiente di produzione.
Quale sistema operativo? – mavnn