GoGPT Best VPN GoSearch

icono de página de OnWorks

perf-script-perl: en línea en la nube

Ejecute perf-script-perl en el proveedor de alojamiento gratuito de OnWorks a través de Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando perf-script-perl que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


perf-script-perl: procesa datos de seguimiento con un script de Perl

SINOPSIS


Perf guión [-s [Perl]: secuencia de comandos [.pl]]

DESCRIPCIÓN


Esta opción de secuencia de comandos perf se utiliza para procesar datos de secuencias de comandos perf utilizando Perl incorporado de perf
Interprete. Lee y procesa el archivo de entrada y muestra los resultados del seguimiento.
análisis implementado en el script Perl dado, si lo hubiera.

ARRANCADOR GUIONES


Puede evitar leer el resto de este documento ejecutando Perf guión -g perl en el mismo
directorio como un archivo de seguimiento perf.data existente. Eso generará un script de inicio.
que contiene un controlador para cada uno de los tipos de eventos en el archivo de seguimiento; simplemente imprime cada
campo disponible para cada evento en el archivo de seguimiento.

También puede ver los scripts existentes en ~ / libexec / perf-core / scripts / perl para típico
ejemplos que muestran cómo hacer cosas básicas como datos de eventos agregados, resultados de impresión, etc.
Además, el script check-perf-script.pl, aunque no es interesante por sus resultados, intenta
ejercite todas las funciones principales de secuencias de comandos.

EVENT MANIPULADORES


Cuando se invoca el script perf mediante un script de seguimiento, un entrenador de animales función is
llamado para cada evento en la traza. Si no hay una función de controlador definida para un determinado
tipo de evento, el evento se ignora (o se pasa a un rastro_manejado función, ver más abajo) y
se procesa el siguiente evento.

La mayoría de los valores de campo del evento se pasan como argumentos a la función del controlador; algunos de
los menos comunes no lo son: están disponibles como llamadas al ejecutable perf
(vea abajo).

Como ejemplo, el siguiente comando perf record se puede utilizar para registrar todos los sched_wakeup
eventos en el sistema:

# perf record -a -e sched: sched_wakeup

Los rastros destinados a ser procesados ​​mediante un script deben registrarse con la opción anterior: -a
para habilitar la recopilación en todo el sistema.

El archivo de formato para el evento sched_wakep define los siguientes campos (consulte
/ sys / kernel / debug / tracing / events / sched / sched_wakeup / format):

.pies C
formato:
campo: tipo_común corto sin firmar;
campo: char common_flags sin firmar;
campo: char sin firmar common_preempt_count;
campo: int common_pid;

campo: char comm [TASK_COMM_LEN];
campo: pid_t pid;
campo: int prio;
campo: int éxito;
campo: int target_cpu;
.pie

La función de controlador para este evento se definiría como:

.pies C
sub sched :: sched_wakeup
{
my ($ nombre_de_evento, $ contexto, $ common_cpu, $ common_secs,
$ common_nsecs, $ common_pid, $ common_comm,
$ comm, $ pid, $ prio, $ éxito, $ target_cpu) = @_;
}
.pie

La función del controlador toma la forma subsystem :: event_name.

Los argumentos $ common_ * en la lista de argumentos del manejador son el conjunto de argumentos pasados ​​a
todos los controladores de eventos; algunos de los campos corresponden a los campos common_ * en el formato
archivo, pero algunos están sintetizados, y algunos de los campos common_ * no son lo suficientemente comunes como para
pasar a cada evento como argumentos, pero están disponibles como funciones de biblioteca.

Aquí hay una breve descripción de cada uno de los argumentos de eventos invariantes:

$ event_name el nombre del evento como texto
$ context una 'cookie' opaca utilizada en las llamadas de vuelta a perf
$ common_cpu la CPU en la que ocurrió el evento
$ common_secs la parte de segundos de la marca de tiempo del evento
$ common_nsecs la parte nsecs de la marca de tiempo del evento
$ common_pid el pid de la tarea actual
$ common_comm el nombre del proceso actual

Todos los campos restantes en el archivo de formato del evento tienen contrapartes como controlador
argumentos de función del mismo nombre, como se puede ver en el ejemplo anterior.

Lo anterior proporciona los conceptos básicos necesarios para acceder directamente a todos los campos de cada evento en un
trace, que cubre el 90% de lo que necesita saber para escribir un script de seguimiento útil. los
las secciones siguientes cubren el resto.

GUIÓN DISPOSICIÓN


Cada secuencia de comandos Perl perf debe comenzar configurando una ruta de búsqueda del módulo Perl y
'usando' algunos módulos de soporte (consulte las descripciones de los módulos a continuación):

.pies C
use lib "$ ENV {'PERF_EXEC_PATH'} / scripts / perl / Perf-Trace-Util / lib";
use lib "./Perf-Trace-Util/lib";
use Perf :: Trace :: Core;
use Perf :: Trace :: Context;
use Perf :: Trace :: Util;
.pie

El resto del script puede contener funciones de controlador y funciones de soporte en cualquier orden.

Aparte de las funciones del controlador de eventos discutidas anteriormente, cada script puede implementar un conjunto
de funciones opcionales:

traza_comienzo, si está definido, se llama antes de que se procese cualquier evento y le da a los scripts un
oportunidad de realizar tareas de configuración:

.pies C
subtrace_begin
{
}
.pie

fin_rastreo, si se define, se llama después de que se hayan procesado todos los eventos y le da a los scripts un
oportunidad de realizar tareas de final de secuencia de comandos, como mostrar resultados:

.pies C
sub trace_end
{
}
.pie

trace_unhandled, si está definido, se llama después para cualquier evento que no tenga un controlador
definido explícitamente para ello. Se le pasa el conjunto estándar de argumentos comunes:

.pies C
subtrace_unhandled
{
my ($ nombre_de_evento, $ contexto, $ common_cpu, $ common_secs,
$ common_nsecs, $ common_pid, $ common_comm) = @_;
}
.pie

Las secciones restantes proporcionan descripciones de cada uno de los scripts perf integrados disponibles.
Módulos Perl y sus funciones asociadas.

DISPONIBLE MÓDULOS Y Las funciones


Las siguientes secciones describen las funciones y variables disponibles a través de los distintos
Perf :: Trace :: * Módulos Perl. Para usar las funciones y variables del módulo dado, agregue
el correspondiente use Perf :: Traza :: XXX línea a su secuencia de comandos perf.

Perf :: Traza :: Núcleo Módulo
Estas funciones proporcionan algunas funciones esenciales para los scripts de usuario.

La sección cadena_bandera y símbolo_str Las funciones proporcionan cadenas legibles por humanos para banderas y símbolos.
los campos. Estos corresponden a las cadenas y valores analizados de la Imprimir fmt campos de la
archivos de formato de evento:

flag_str ($ event_name, $ field_name, $ field_value) - devuelve la representación de cadena correspondiente a $ field_value para el campo de bandera $ field_name del evento $ event_name
symbol_str ($ event_name, $ field_name, $ field_value) - devuelve la representación de cadena correspondiente a $ field_value para el campo simbólico $ field_name del evento $ event_name

Perf :: Trace :: Contexto Módulo
Algunos de los común Los campos en el archivo de formato de evento no son tan comunes, pero deben ser
no obstante, accesible a los scripts de usuario.

Perf :: Trace :: Context define un conjunto de funciones que se pueden utilizar para acceder a estos datos en
el contexto del evento actual. Cada una de estas funciones espera una variable $ context,
que es lo mismo que la variable $ context que se pasa a cada controlador de eventos como el segundo
argumento.

common_pc ($ context) - devuelve common_preempt count para el evento actual
common_flags ($ context): devuelve common_flags para el evento actual
common_lock_depth ($ context) - devuelve common_lock_depth para el evento actual

Perf :: Trace :: Util Módulo
Varias funciones de utilidad para usar con el script perf:

nsecs ($ secs, $ nsecs) - devuelve el total de nsecs dado el par de segundos / nsecs
nsecs_secs ($ nsecs) - devuelve la porción de segundos enteros dados nsecs
nsecs_nsecs ($ nsecs) - devuelve nsecs resto dado nsecs
nsecs_str ($ nsecs): devuelve una cadena imprimible en la forma secs.nsecs
avg ($ total, $ n): devuelve el promedio dado una suma y un número total de valores

Use perf-script-perl en línea usando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

Comandos de Linux

Ad




×
Anuncio
❤ ️Compre, reserve o adquiera aquí: sin costo, ayuda a mantener los servicios gratuitos.