Questo è il comando perf-trace che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
perf-trace - strumento ispirato a strace
SINOSSI
perf tracciare
perf tracciare record
DESCRIZIONE
Questo comando mostrerà gli eventi associati al target, inizialmente syscall, ma
altri eventi di sistema come pagefault, eventi di durata delle attività, eventi di pianificazione, ecc.
Questo è uno strumento in modalità live oltre a lavorare con file perf.data come l'altro perf
utensili. I file possono essere generati utilizzando il perf record comando ma la sessione deve
includi gli eventi raw_syscalls (-e raw_syscalls:*). In alternativa, perf tracciare record può
essere usato come scorciatoia per includere automaticamente gli eventi raw_syscalls durante la scrittura degli eventi
a un file.
Le seguenti opzioni si applicano alla traccia perf; le opzioni per eseguire il record di traccia si trovano in
pagina man del record perf.
VERSIONI
-a, --all-cpus
Raccolta a livello di sistema da tutte le CPU.
-e, --espr
Elenco di syscall da mostrare, attualmente solo nomi di syscall. Prefisso con ! mostra tutto
syscall ma quelli specificati. Potrebbe essere necessario fuggirlo.
-o, --output=
Nome del file di output.
-p, --pid=
Registra gli eventi sull'ID del processo esistente (elenco separato da virgole).
-t, --tid=
Registra gli eventi sull'ID del thread esistente (elenco separato da virgole).
-u, --uid=
Registra gli eventi nei thread di proprietà di uid. Nome o numero.
--filter-pid=
Filtra gli eventi per questi pid e per tracciare stesso (elenco separato da virgole).
-v, --verboso=
Livello di verbosità.
--no-ereditare
Le attività figlio non ereditano i contatori.
-m, --mmap-pagine=
Numero di pagine di dati mmap (deve essere una potenza di due) o specifica delle dimensioni con aggiunta
carattere unitario - B/K/M/G. La dimensione è arrotondata per avere una potenza di due pagine più vicina
valore.
-C, --cpu
Raccogliere campioni solo nell'elenco di CPU fornito. Più CPU possono essere fornite come a
elenco separato da virgole senza spazio: 0,1. Gli intervalli di CPU sono specificati con -: 0-2. In
modalità per thread con modalità di ereditarietà attiva (impostazione predefinita), gli eventi vengono acquisiti solo quando il
thread viene eseguito sulle CPU designate. L'impostazione predefinita è monitorare tutte le CPU.
--duration: mostra solo gli eventi che hanno avuto una durata maggiore di NM ms.
--sched: accumula il runtime del thread e fornisce un riepilogo alla fine della sessione.
-i --input Elabora gli eventi da un dato file di dati perf.
-T --time Stampa il timestamp completo piuttosto che il tempo relativo al primo campione.
--comma
Mostra il processo COMM accanto al suo ID, attivo per impostazione predefinita, disabilita con --no-comm.
-s, --riepilogo
Mostra solo un riepilogo delle chiamate di sistema per thread con tempi minimi, massimi e medi (in msec)
e relativo stddev.
-S, --con-riassunto
Mostra tutte le chiamate di sistema seguite da un riepilogo per thread con tempi minimi, massimi e medi (in
msec) e relativo stddev.
--tool_stats
Mostra le statistiche dello strumento come il numero di volte in cui fd→pathname è stato scoperto agganciando il
aprire syscall return + vfs_getname o tramite la lettura di /proc/pid/fd, ecc.
-F=[tutti|min|maj], --pf=[tutti|min|mag]
Traccia i pagefault. Facoltativamente, è possibile specificare se si desidera minore, maggiore o tutti
pagefault. Il valore predefinito è magg.
--syscalls
Traccia le chiamate di sistema. Questa opzione è abilitata per impostazione predefinita.
--evento
Traccia altri eventi, vedi perf stratagemma per una lista completa
--proc-map-timeout
Quando si elaborano thread preesistenti /proc/XXX/mmap, potrebbe volerci molto tempo, perché
il file potrebbe essere enorme. In questi casi è necessario un time out. Questa opzione imposta l'ora
fuori limite. Il valore predefinito è 500 ms.
ERRORI DI PAGINA
Quando si tracciano i pagefault, il formato della traccia è il seguente:
colpa [ + ][email protected][1]> (
livello>).
· min/maj indica se l'evento di guasto è minore o maggiore;
· ip.symbol mostra il simbolo del puntatore dell'istruzione (il codice che ha generato l'errore); Se
nessun simbolo di debug disponibile, perf trace stamperà l'IP grezzo;
· addr.dso mostra il DSO per l'indirizzo guasto;
· il tipo di mappa è o d per mappe non eseguibili o x per le mappe eseguibili;
· il livello dell'indirizzo è o k per kernel dso o . per utente dso.
Per la risoluzione dei simboli potrebbe essere necessario installare i simboli di debug.
Tieni presente che la durata è attualmente sempre 0 e non riflette il tempo effettivo
preso per colpa da gestire!
Quando viene specificato --verbose, perf trace prova a stampare tutte le informazioni disponibili per entrambi gli IP
e indirizzo di guasto sotto forma di dso@simbolo[2]+spostamento.
ESEMPI
Traccia solo i principali errori di pagina:
$ traccia perf --no-syscalls -F
Traccia le chiamate di sistema, i pagefault maggiori e minori:
$ traccia perf -F tutto
1416.547 ( 0.000 ms): python/20235 majfault [CRYPTO_push_info_+0x0] => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0@0x61be0 (x.)
Come puoi vedere, c'è stato un importante pagefault nel processo Python, da
CRYPTO_push_info_ routine che si è guastata da qualche parte in libcrypto.so.
Usa perf-trace online utilizzando i servizi onworks.net