SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
561
OProfile
OProfile es una herramienta de supervisión de rendimiento que se ejecuta a lo largo de todo el
sistema. Utiliza el hardware de supervisión de rendimiento en el procesador para recuperar
información sobre el kernel y los ejecutables en el sistema, tal como cuando la memoria es
referenciada, el número de peticiones caché L2 y el número de interrupciones de hardware recibidas.
En un sistema Red Hat Enterprise Linux, el paquete RPM oprofile debe estar instalado para poder
utilizar esta herramienta.
Muchos procesadores incluyen hardware dedicado a la supervisión. Este hardware hace posible
detectar la ocurrencia de ciertos eventos (tal como que los datos solicitados no estén en caché).
El harware normalmente toma la forma de uno o más contadores que se incrementan cada vez
que ocurre un evento. Cuando el valor del contador llega al "máximo," se genera una interrupción,
haciendo posible controlar la cantidad de detalles (y por tanto, la sobrecarga) producida por la
supervisión del rendimiento.
OProfile utiliza este hardware(o un substituto basado en temporizadores en casos donde no está
presente el hardware de supervisión) para reunir muestras de datos relacionados al rendimiento
cada vez que un contador genera una interrupción. Estas muestras son escritas periódicamente al
disco; luego los datos contenidos en estas muestras pueden ser usados para generar informes de
rendimiento a nivel del sistema y de las aplicaciones.
Oprofile es una herramienta útil, pero tenga en cuenta ciertas limitaciones cuando lo esté utilizando:
• Uso de bibliotecas compartidas — Las muestras de código en las bibliotecas compartidas no son
atribuídos a una aplicación particular a menos que se utilice la opción --separate=library.
• Las muestras de supervisión de rendimiento son inexactas — Cuando un registro de supervisión
de rendimiento lanza una muestra, el manejo de la interrupción no es preciso como una excepción
de división por cero. Debido a la ejecución de instrucciones fuera de orden por el procesador, la
muestra puede que se grabe en una instrucción cercana.
• opreport does not associate samples for inline functions' properly — opreport uses a simple
address range mechanism to determine which function an address is in. Inline function samples are
not attributed to the inline function but rather to the function the inline function was inserted into.
• OProfile acumula datos desde múltiples ejecuciones — Oprofile es un perfilador extendido a todo
el sistema y que espera que los procesosse inicien y terminen en tiempos diferentes. Por tanto,
se acumulan muestras de múltiples ejecuciones. Utilice el comando opcontrol --reset para
limpiar las muestras de ejecuciones anteriores.
• Problemas de rendimiento no limitados al CPU — OProfile está orientado a encontrar problemas
con procesos limitados al CPU. Oprofile no identifica procesos que estén dormidos porque estos
estan esperando por bloqueos o porque ocurra algún otro evento (por ejemplo, que un dispositivo
de E/S termine una operación).
39.1. Descripción general de las herramientas
Tabla 39.1, “Comandos OProfile” provides a brief overview of the tools provided with the oprofile
package.
562
Configurar los eventos a supervisar
Comando Descripción
ophelp Displays available events for the system's processor along with a brief
description of each.
opimport Convierte archivos de la base de datos de muestras de un formato
binario extraño al formato nativo para el sistema. Solamente utilice
esta opción cuando esté analizando una base de datos de muestras
desde una arquitectura diferente.
opannotate Creates annotated source for an executable if the application was
compiled with debugging symbols. Refer to Sección 39.5.4, “Utilizando
opannotate” for details.
opcontrol Configures what data is collected. Refer to Sección 39.2,
“Configuración de Oprofile” for details.
opreport Retrieves profile data. Refer to Sección 39.5.1, “Utilizando opreport”
for details.
oprofiled Se ejecuta como un demonio para escribir periódicamente datos de
muestra al disco.
Tabla 39.1. Comandos OProfile
39.2. Configuración de Oprofile
Antes de que pueda ejecutar Oprofile, debe configurarlo. Como mínimo, se requiereseleccionar
supervisar el kernel (o seleccionar no supervisar el kernel). Las secciones siguientes describen cómo
utilizar la utilidad opcontrol para configurar Oprofile. A medida que se ejecutan los comandos
opcontrol, las opciones de configuración son guardadas al archivo /root/.oprofile/
daemonrc.
39.2.1. Especificar el Kernel
Primero, configure si Oprofile debería supervisar el kernel. Esta es la única opción de configuración
que se requiere antes de iniciar Oprofile. Todas las otras opciones son opcionales.
Para supervisar el kernel, ejecute el comando siguiente como root:
opcontrol --setup --vm linux=/usr/lib/debug/lib/m odules/`uname -r`/vm linux
Nota
El paquete debuginfo (el cual contiene el kernel sin comprimir) debe ser instalado
para poder monitorear el kernel.
Para configurar Oprofile para que no controle el kernel, ejecute el comando siguiente como root:
opcontrol --setup --no-vmlinux
563
Configurar los eventos a supervisar
This command also loads the oprofile kernel module, if it is not already loaded, and creates the /
dev/oprofile/ directory, if it does not already exist. Refer to Sección 39.6, “Comprender /dev/
oprofile/” for details about this directory.
Nota
Aún si se configura Oprofile para que no perfile el kernel, el kernel de SMP debe
estar ejecutándose para que el módulo oprofile se pueda cargar a partir de este.
Setting whether samples should be collected within the kernel only changes what data is collected,
not how or where the collected data is stored. To generate different sample files for the kernel and
application libraries, refer to Sección 39.2.3, “Separar perfiles del Kernel y del espacio del usuario”.
39.2.2. Configurar los eventos a supervisar
Most processors contain counters, which are used by OProfile to monitor specific events. As shown
in Tabla 39.2, “Procesadores y contadores de Oprofile”, the number of counters available depends on
the processor.
Procesador cpu_type Número de contadores
Pentium Pro i386/ppro 2
Pentium II i386/pii 2
Pentium III i386/piii 2
Pentium 4 (sin hilos múltiples) i386/p4 8
Pentium 4 (múltiples hilos o hyper-
threaded)
i386/p4-ht 4
Athlon i386/athlon 4
AMD64 x86-64/hammer 4
Itanium ia64/itanium 4
Itanium 2 ia64/itanium2 4
TIMER_INT timer 1
IBM eServer iSeries y pSeries timer 1
ppc64/power4 8
ppc64/power5 6
ppc64/970 8
IBM eServer S/390 y S/390x timer 1
IBM eServer zSeries timer 1
Tabla 39.2. Procesadores y contadores de Oprofile
Use Tabla 39.2, “Procesadores y contadores de Oprofile” to verify that the correct processor type was
detected and to determine the number of events that can be monitored simultaneously. timer is used
as the processor type if the processor does not have supported performance monitoring hardware.
Si se utiliza timer, los eventos no se puedenconfigurar para ningún procesador porque el hardware
no tiene el soporte para el hardware de contadores de rendimiento. En su lugar, se utilizan las
interrupciones del temporizador para crear perfiles.
564
Configurar los eventos a supervisar
If timer is not used as the processor type, the events monitoredcan be changed, and counter 0
for the processor is set to a time-based event by default. If more than one counter exists on the
processor, the counters other than counter 0 are not set to an event by default. The default events
monitored are shown in Tabla 39.3, “Eventos predeterminados”.
Procesador Evento Predeterminado para
el Contador
Descripción
Pentium Pro, Pentium
II, Pentium III, Athlon,
AMD64
Pentium 4 (HT y no-
HT)
CPU_CLK_UNHALTED The processor's clock is not halted
GLOBAL_POWER_EVENTS El tiempo durante el cual el procesador
no está detenido
Itanium 2 CPU_CYCLES CPU Cycles
TIMER_INT (ninguno) Muestra para cada interrupción del
temporizador
ppc64/power4 CICLOS Ciclos del Procesador
ppc64/power5 CICLOS Ciclos del Procesador
ppc64/970 CICLOS Ciclos del Procesador
Tabla 39.3. Eventos predeterminados
El número de eventos que se pueden supervisar a la vez, es determinado por el número de
contadores para el procesador. Sin embargo, no es una relación de uno a uno; en algunos
procesadores,se deben mapear ciertos eventos a contadores específicos. Para determinar el número
de contadores disponibles, ejecute el comando siguiente:
ls -d /dev/oprofile/ [0-9]*
The events available vary depending on the processor type. To determine the events available for
profiling, execute the following command as root (the list is specific to the system's processor type):
ophelp
The events for each counter can be configured via the command line or with a graphical interface.
For more information on the graphical interface, refer to Sección 39.8, “Interfaz gráfica”. If the counter
cannot be set to a specific event, an error message is displayed.
Para configurar el evento para cada contador configurable a través de la línea de comandos, utilice
opcontrol:
opcontrol --event=<event-name>:<sample-rate>
Replace <event-name> with the exact name of the event from ophelp, and replace <sample-
rate> with the number of events between samples.
565
Separar perfiles del Kernel y del espacio del usuario
39.2.2.1. Velocidad de muestreo
Por defecto, se selecciona un evento basado en tiempo. Esto crea aproximadamente 100,000
muestras por segundo por procesador. Si se utilizan las interrupciones del temporizador, el
temporizador es configurado a la velocidad instantánea que sea y no el usuario no la puede
configurar. Si el cpu_type no es timer, cada evento puede tener una velocidad de muestreo
configurada. La velocidad de muestreo es el número de eventos entre cada instantánea de muestra.
Cuando configure el evento para el contador, también se puede especificar una velocidad de
muestreo:
opcontrol --event=<event-name>:<sample-rate>
Replace <sample-rate> with the number of events to wait before sampling again. The smaller the
count, the more frequent the samples. For events that do not happen frequently, a lower count may be
needed to capture the event instances.
Atención
Tenga extremo cuidado cuando configure las velocidades de muestreo. Si se toman
muestras con demasiada frecuencia puede sobrecargar al sistema, causando que el
sistema parezca congelado o que en verdad el sistema se congele.
39.2.2.2. Máscaras de unidades
Algunos eventos de monitoriamiento del desempeño pueden necesitar máscaras de unidades para
definir aún más el evento.
Las máscaras de unidades para cada evento son enumeradas con el comando ophelp. Los valores
para cada máscara de unidad son listados en formato hexadecimal. Para especificar más de una
máscara de unidad, los valores hexadecimales deben estar combinados usando una operación de
bits or.
opcontrol --event=<event-name>:<sample-rate>:<unit-mask>
39.2.3. Separar perfiles del Kernel y del espacio del usuario
Por defecto, se reune información del modo del kernel y del modo del usuario por cada evento. Para
configurar Oprofile para que ignore los eventos en modo del kernel para un contador en particular,
ejecute el siguiente comando:
opcontrol --event=<event-name>:<sample-rate>:<unit-mask>:0
Ejecute el comando siguiente para comenzar a perfilar otra vez en modo kernel para el contador:
opcontrol --event=<event-name>:<sample-rate>:<unit-mask>:1
Para configurar Oprofile para que ignore eventos en modo usuario para un contador específico,
ejecute el siguiente comando:
566
Separar perfiles del Kernel y del espacio del usuario
opcontrol --event=<event-name>:<sample-rate>:<unit-mask>:<kernel>:0
Ejecute el comando siguiente para comenzar a perfilar nuevamente en modo usuario para el
contador:
opcontrol --event=<event-name>:<sample-rate>:<unit-mask>:<kernel>:1
Cuando el demonio Oprofile escribe datos del perfil a los archivos de muestras, puede separar los
datos del perfil de kernel y de la biblioteca en archivos separados. Para configurar la forma en que el
demonio escribe a los archivos de muestra, ejecute el comando siguiente como root:
opcontrol --separate=<choice>
<choice> can be one of the following:
• none — no separa los perfiles (predeterminado)
• library — genera perfiles por aplicación para las bibliotecas
• kernel — genera perfiles por aplicación para el kernel y sus módulos
• all — genera perfiles por aplicación para las bibliotecas y perfiles por aplicación para el kernel y
los módulos del kernel
Si se utiliza --separate=library, el nombre del archivo de muestras incluye el nombre del
ejecutable así como también el nombre de la biblioteca.
Nota
Estos cambios en la configuración tendrán lugar cuandose reinicie oprofile.
39.3. Iniciar y detener Oprofile
Para comenzar a supervisar el sistema con Oprofile, ejecute el comando siguiente como root:
opcontrol --start
Se muestra una salida similar a la siguiente:
Using log file /var/lib/oprofile/oprofiled.log Daemon started. Profiler running.
Se utilizan las configuraciones en /root/.oprofile/daemonrc.
El demonio Oprofile, oprofiled, es iniciado; este escribe periódicamente los datos de muestra al
directorio /var/lib/oprofile/samples/. El archivo de registro para el demonio está ubicado en
/var/lib/oprofile/oprofiled.log.
Para detener el perfilador, ejecute el siguiente comando como root:
567
Guardar los datos
opcontrol --shutdown
39.4. Guardar los datos
Algunas veces es útil guardar las muestras a una hora específica. Por ejemplo, cuando se esté
perfilando un ejecutable, puede ser útil reunir muestras diferentes basadas en diferentes conjuntos de
datos de entrada. Si el número de eventos a monitorear excede el número de contadores disponibles
para el procesador, se puede ejecutar varias veces Oprofile para reunir los datos, guardando los
datos de muestra a archivos diferentes cada vez.
To save the current set of sample files, execute the following command, replacing <name> with a
unique descriptive name for the current session.
opcontrol --save=<name>
Se crea el directorio /var/lib/oprofile/samples/name/ y los archivos de muestras actuales
son copiados a él.
39.5. Análisis de los datos
Periódicamente, el demonio Oprofile, oprofiled colecciona las muestras y las escribe al directorio /
var/lib/oprofile/samples/. Antes de leer los datos,asegúrese de que todos los datos han sido
escritos a este directorio ejecutando el siguiente comando como root:
opcontrol --dump
Cada archivo de muestra se basa en el nombre del ejecutable. Por ejemplo, las muestras para el
evento predeterminado en un procesador Pentium III para /bin/bash se convierte en:
{root}/bin/bash/{dep}/{root}/bin/bash/CPU_CLK_UNHALTED.100000
Las herramientas siguientes están disponibles para perfilar los datos de muestra una vez que se han
reunido:
• opreport
• opannotate
Utilice estas herramientas, junto con los binarios perfilados para generar informes que pueden ser
analizados más aún.
Aviso
The executable being profiled must be used with these tools to analyze the data. If
it must change after the data is collected, backup the executable used to create the
samples as well as the sample files. Please note that the sample file and the binary
have to agree. Making a backup isn't going to work if they do not match. oparchive
can be used to address this problem.
568
Guardar los datos
Samples for each executable are written to a single sample file. Samples from each dynamically linked
library are also written to a single sample file. While OProfile is running, if the executable being
monitored changes and a sample file for the executable exists, the existing sample file is automatically
deleted. Thus, if the existing sample file is needed, it must be backed up, along with the executable
used to create it before replacing the executable with a new version. The oprofile analysis tools use
the executable file that created the samples during analysis. If the executable changes the analysis
tools will be unable to analyze the associated samples. Refer to Sección 39.4, “Guardar los datos” for
details on how to backup the sample file.
39.5.1. Utilizando opreport
La herramienta opreport proporciona una descripción general de todos los ejecutables que se están
perfilando.
Lo siguiente forma parte de una salida de ejemplo:
Profiling through timer interrupt
TIMER:0|
samples| %|
------------------
25926 97.5212 no-vmlinux
359 1.3504 pi
65 0.2445 Xorg
62 0.2332 libvte.so.4.4.0
56 0.2106 libc-2.3.4.so
34 0.1279 libglib-2.0.so.0.400.7
19 0.0715 libXft.so.2.1.2
17 0.0639 bash
8 0.0301 ld-2.3.4.so
8 0.0301 libgdk-x11-2.0.so.0.400.13
6 0.0226 libgobject-2.0.so.0.400.7
5 0.0188 oprofile d
4 0.0150 libpthread-2.3.4.so
4 0.0150 libgtk-x11-2.0.so.0.400.13
3 0.0113 libXre nder.so.1.2.2
3 0.0113 du
1 0.0038 libcrypto.so.0.9.7a
1 0.0038 libpa m.so.0.77
1 0.0038 libtermca p.so.2.0.8
1 0.0038 libX11.so.6.2
1 0.0038 libgthrea d-2.0.so.0.400.7
1 0.0038 libwnc k-1.so.4.9.0
Cada ejecutable es listado en su propia línea. La primera columna es el número de muestras
registradas para el ejecutable. La segunda columna es el porcentaje de muestras relativo al número
total de muestras. La tercera columna es el nombre del ejecutable.
Consulte la página man de opreport para ver una lista de las opciones de línea de comandos
disponibles, tales como la opción -r utilizada para ordenar la salida desde el ejecutable con el que
tiene menos muestras hasta el que tiene el mayor número.
39.5.2. Utilizando opreport en un Ejecutable Unico
Para recuperar más información detallada sobre un ejecutable en particular utilice opreport:
569
Utilizando opreport en un Ejecutable Unico
opreport <mode> <executable>
<executable> must be the full path to the executable to be analyzed. <mode> must be one of the
following:
-l
List sample data by symbols. For example, the following is part of the output from running the
command opreport -l /lib/tls/libc-<version>.so:
samples % symbol name
12 21.4286 gconv_transform_utf8_interna l
5 8.9286 _int_malloc
4 7.1429 malloc
3 5.3571 i686.get_pc _thunk.bx
3 5.3571 _dl_mcount_wrapper_check
3 5.3571 mbrto wc
3 5.3571 memcpy
2 3.5714 _int_realloc
2 3.5714 _nl_inte rn_loca le _data
2 3.5714 free
2 3.5714 strcmp
1 1.7857 ctype_get _m b_c ur_max
1 1.7857 unre gister_atfork
1 1.7857 write _nocancel
1 1.7857 _dl_addr
1 1.7857 _int_fre e
1 1.7857 _itoa_word
1 1.7857 calc _ec losure _ite r
1 1.7857 fopen@@GLIBC_2.1
1 1.7857 ge tpid
1 1.7857 memmove
1 1.7857 msort_with_tmp
1 1.7857 strc py
1 1.7857 strlen
1 1.7857 vfprintf
1 1.7857 write
La primera columna es el número de muestras para el símbolo, la segunda columna es el
porcentaje de muestras para este símbolo con relación a las muestras en general para el
ejecutable y la tercera columna es el nombre del símbolo.
Para ordenar la salida desde el número más grande de muestras al más pequeño (orden inverso),
utilice la opción -r en conjunto con la opción -l.
-i <symbol-name>
List sample data specific to a symbol name. For example, the following output is from the
command opreport -l -i gconv_transform_utf8_internal /lib/tls/
libc-<version>.so:
samples % symbol name
12 100.000 gc onv_tra nsform_utf8_internal
La primera línea es un resúmen para la combinación símbolo/ejecutable.
570
Utilizando opreport en un Ejecutable Unico
La primera columna es el número de muestras para el símbolo de memoria. La segunda columna
es el número el porcentaje de muestras para la dirección de memoria relativa al número total de
muestras para el símbolo. La tercera columna es el nombre del símbolo.
-d
List sample data by symbols with more detail than -l. For example, the following output is from
the command opreport -l -d gconv_transform_utf8_internal /lib/tls/
libc-<version>.so:
vma samples % symbol name
00a98640 12 100.000 gc onv_tra nsform_utf8_internal
00a98640 1 8.3333
00a9868c 2 16.6667
00a9869a 1 8.3333
00a986c1 1 8.3333
00a98720 1 8.3333
00a98749 1 8.3333
00a98753 1 8.3333
00a98789 1 8.3333
00a98864 1 8.3333
00a98869 1 8.3333
00a98b08 1 8.3333
Los datos son los mismos que con la opción -l excepto que para cada símbolo, se muestra cada
dirección virtual de memoria utilizada. Para cada dirección virtual de memoria se despliegan, el
número de muestras y los porcentajes de las muestras relativos al número de muestras para el
símbolo.
-x<symbol-name>
Excluye la lista de símbolos separada por comas de la salida.
session:<name>
Especifica la ruta completa a la sesión o un directorio relativo al directorio /var/lib/
oprofile/samples/.
39.5.3. Obtener salidas más detalladas sobre los módulos
OProfile recopila datos a nivel del sistema para código de espacio de usuario y de kernel que se
ejecuta en la máquina. Sin embargo, una vez que se carga un módulo en el kernel, la información
sobre el origen del módulo del kernel se pierde. Elo módulo puedo haber provenido del archivo
initrd durante el arranque, el directorio con varios módulos de kernel o un módulo de kernel creado
localmente. Por consiguiente, cuando OProfile graba muestras para un módulo sólamente enumera
las muestras para los módulos para un ejecutable el el directorio root, pero no es muy probable que
sea el lugar con el código real para el módulo. Necesitará seguir ciertos pasos para asegurarse de
que las herramientas de análisis obtengan el ejecutable.
For example on an AMD64 machine the sampling is set up to record "Data cache accesses" and "Data
cache misses" and assuming you would like to see the data for the ext3 module:
$ opreport /ext3
CPU: AMD64 processors, spee d 797.948 MHz (estima te d)
Co unt ed DAT A_CAC HE_ ACCE SSE S eve nts (Da ta cache accesses) with a unit mask of 0x00 (No unit
mask) count 500000
Co unt ed DAT A_ CACHE _ M ISSE S events (Data cache misses) with a unit mask of 0x00 (No unit mask)
count 500000
571
Utilizando opannotate
DATA_CACHE_ACC...|DATA_CACHE_MIS...|
samples| %| samples| %|
------------------------------------
148721 100.000 1493 100.000 ext3
Para obtener una vista más detallada de las acciones del módulo necesitará tener el módulo montado
(por ejemplo, instalado desde una cosntrcción personalizada) o tener el RPM debuginfo instalado
para el kernel.
Find out which kernel is running, "uname -a", get the appropriate debuginfo rpm, and install on the
machine.
Then make a symbolic link so oprofile finds the code for the module in the correct place:
# ln -s /lib/modules/`unam e -r`/kernel/fs/ext3/ext3.ko /ext3
Then the detailed information can be obtained with:
# opreport im age:/ext3 -l|m ore
warning: c ould not chec k tha t the binary file /ext3 has not been modified since the profile
was take n. Results may be inaccurate.
CPU: AMD64 processors, spee d 797.948 MHz (estima te d)
Co unt ed DAT A_CAC HE_ ACCE SSE S eve nts (Da ta cache accesses) with a unit mask of 0x00 (No unit
mask) count 500000
Co unt ed DAT A_ CACHE _ M ISSE S events (Data cache misses) with a unit mask of 0x00 (No unit mask)
count 500000
samples % samples % symbol name
16728 11.2479 7 0.4689 ext3_group_sparse
16454 11.0637 4 0.2679 ext3_count_free_blocks
14583 9.8056 51 3.4159 e xt3_fill_supe r
8281 5.5681 129 8.6403 ext3_ioctl
7810 5.2514 62 4.1527 ext3_write _info
7286 4.8991 67 4.4876 ext3_ordered_writepage
6509 4.3767 130 8.7073 ext3_new_inode
6378 4.2886 156 10.4488 ext3_new_block
5932 3.9887 87 5.8272 e xt3_xa ttr_bloc k_list
...
39.5.4. Utilizando opannotate
La herramienta opannotate trata de poner juntas las muestras para instrucciones particulares con
sus líneas correspondientes en el código fuente. Los archivos que resultan deberían tener las
muestras para las líneas a la izquierda. También coloca un comentario al comienzo de cada función
listando las muestras totales para la función.
For this utility to work, the executable must be compiled with GCC's -g option. By default, Red Hat
Enterprise Linux packages are not compiled with this option.
La sintaxis general para opannotate es la siguiente:
opannotate --search-dirs <sr c-dir> --source <executable>
Se debe especificar el directorio que contiene el código fuente y el ejecutable a analizar. Consulte la
página del manual de opannotate para obtener una lista con las opciones de línea de comandos
adicionales.
572
Utilizando opannotate
39.6. Comprender /dev/oprofile/
El directorio /dev/oprofile/ contiene los archivos para Oprofile. Utilice el comando cat para
mostrar los valores de los archivos virtuales en este sistema de archivos. Por ejemplo, el comando
siguiente muestra el tipo de procesador que Oprofile detectó:
cat /dev/oprofile/cpu_type
Existe un directorio en /dev/oprofile/ para cada contador. Por ejemplo, si hay dos contadores,
existen los directorios /dev/oprofile/0/ y dev/oprofile/1/.
Cada directorio de contadores contiene los archivos siguientes:
• count — El intervalo entre las muestras.
• enabled — Si es 0, el contador está desactivado y no se reúnenmuestras para este; si es 1, el
contador está activado y se están recogiendo las muestras.
• event — El evento a supervisar
• kernel — Si es 0, las muestras no son reunidas para este contador de eventos cuando el
procesador está en el espacio del kernel; si es 1, las muestras son reunidas aún si el procesador
está en el espacio del kernel.
• unit_mask — Define cuáles máscaras de unidades son activadas para el contador.
• user — Si es 0, las muestras no son reunidas para el contador cuando el procesador está en el
espacio del usuario; si es 1, las muestras son reunidas aún si el procesador está en el espacio del
usuario
Los valores de estos archivos se pueden obtener con el comando cat. Por ejemplo:
cat /dev/oprofile/0/count
39.7. Ejemplo de uso
Mientras que Oprofile puede ser usado por desarrolladores para analizar el rendimiento de una
aplicación, también puede ser usado por los administradores de sistemas para analizar el rendimiento
del sistema. Por ejemplo:
• Determina cuáles aplicaciones y servicios son los más usados en un sistema — opreport se
puede usar para determinar cuánto tiempo de procesador utiliza una aplicación o servicio. Si el
sistema es usado para múltiples servicios pero no está rindiendo bien, los servicios que consuman
más tiempo de procesamiento se pueden mover a sistemas dedicados.
• Determinar el uso del procesador — El evento CPU_CLK_UNHALTED se puede monitorear para
determinar la carga del procesador durante un tiempo determinado. Estos datos luego se pueden
usar para determinar si la implementación de procesadores adicionales o más rápidos pueden
mejorar el rendimiento del sistema.
573
Interfaz gráfica
39.8. Interfaz gráfica
Algunas preferencias de Oprofile se puedenconfigurar con una interfaz gráfica. Para iniciarla, ejecute
el comando oprof_start como root en el indicador de comandos. Para utilizar la interfaz gráfica
necesitará tener instalado el paquete oprofile-gui.
Después de cambiar cualquiera de las opciones, las puede guardar pulsando el botón Guardar y
salir. Las preferencias son escritas al /root/.oprofile/daemonrc y la aplicación termina. Al salir
de la aplicación no detiene a Oprofile de seguir tomando muestras.
On the Setup tab, to set events for the processor counters as discussed in Sección 39.2.2,
“Configurar los eventos a supervisar”, select the counter from the pulldown menu and select the
event from the list. A brief description of the event appears in the text box below the list. Only events
available for the specific counter and the specific architecture are displayed. The interface also
displays whether the profiler is running and some brief statistics about it.
Figura 39.1. Disposición de Oprofile
On the right side of the tab, select the Profile kernel option to count events in kernel mode for the
currently selected event, as discussed in Sección 39.2.3, “Separar perfiles del Kernel y del espacio del
usuario”. If this option is unselected, no samples are collected for the kernel.
574
Interfaz gráfica
Select the Profile user binaries option to count events in user mode for the currently selected event,
as discussed in Sección 39.2.3, “Separar perfiles del Kernel y del espacio del usuario”. If this option is
unselected, no samples are collected for user applications.
Use the Count text field to set the sampling rate for the currently selected event as discussed in
Sección 39.2.2.1, “Velocidad de muestreo”.
If any unit masks are available for the currently selected event, as discussed in Sección 39.2.2.2,
“Máscaras de unidades”, they are displayed in the Unit Masks area on the right side of the Setup tab.
Select the checkbox beside the unit mask to enable it for the event.
En la pestaña Configuración, para perfilar el kernel, ingrese el nombre y ubicación del archivo
vmlinux del kernel para supervisar en el campo de texto Archivo de imagen del kernel. Para
configurar Oprofile para que no supervise el kernel, seleccione No kernel image.
Figura 39.2. OProfile Configuration
Si la opción Verbose está seleccionada, el demonio de registro de oprofiled incluye más
información.
If Per-application kernel samples files is selected, OProfile generates per-application profiles for
the kernel and kernel modules as discussed in Sección 39.2.3, “Separar perfiles del Kernel y del
espacio del usuario”. This is equivalent to the opcontrol --separate=kernel command. If Per-
application shared libs samples files is selected, OProfile generates per-application profiles for
libraries. This is equivalent to the opcontrol --separate=library command.
To force data to be written to samples files as discussed in Sección 39.5, “Análisis de los datos”, click
the Flush profiler data button. This is equivalent to the opcontrol --dump command.
Para iniciar Oprofile desde la interfaz gráfica, pulse en Iniciar perfilador. Para detener el perfilador,
pulse en Detener perfilador. Al salir de la aplicación no se detiene Oprofile de continuar tomando
muestras.
575
Interfaz gráfica
39.9. Recursos adicionales
Este capítulo solamente resalta Oprofile y cómo configurarlo y utilizarlo. Para aprender un
poco más, consulte los recursos siguientes.
39.9.1. Documentos instalados
• /usr/share/doc/oprofile-<version>/oprofile.html — OProfile Manual
• oprofile man page — Discusses opcontrol, opreport, opannotate,y ophelp
39.9.2. Sitios Web útiles
• http://oprofile.sourceforge.net/ — contiene la última documentación, listas de correo,
canales IRC y mucho más.

Mais conteúdo relacionado

Mais procurados

Unidad 11 - Administración básica del sistema
Unidad 11 - Administración básica del sistemaUnidad 11 - Administración básica del sistema
Unidad 11 - Administración básica del sistemavverdu
 
Administración y Comando Básicos
Administración y Comando BásicosAdministración y Comando Básicos
Administración y Comando BásicosAbrilRojasMedina
 
Instalación Y Conf Gnu/Linux
Instalación Y Conf Gnu/LinuxInstalación Y Conf Gnu/Linux
Instalación Y Conf Gnu/Linuxmquispep
 
Ajustes posteriores a la instalación de cent os 6
Ajustes posteriores a la instalación de cent os 6Ajustes posteriores a la instalación de cent os 6
Ajustes posteriores a la instalación de cent os 6Isaac Gómez M
 
Semana 10 administracion de procesos
Semana 10 administracion de procesosSemana 10 administracion de procesos
Semana 10 administracion de procesosvictdiazm
 
Evasión de Técnicas Forenses
Evasión de Técnicas ForensesEvasión de Técnicas Forenses
Evasión de Técnicas ForensesConferencias FIST
 
Instalacion y monitorizacion de linux server y linux desktop
Instalacion y monitorizacion de linux server y linux desktopInstalacion y monitorizacion de linux server y linux desktop
Instalacion y monitorizacion de linux server y linux desktopPilarGZ
 
Como instalar Unix(Johanna)
Como instalar Unix(Johanna)Como instalar Unix(Johanna)
Como instalar Unix(Johanna)JohannaCamila
 
Niveles de ejecucion de linux
Niveles de ejecucion de linuxNiveles de ejecucion de linux
Niveles de ejecucion de linuxJulio Adrian
 

Mais procurados (18)

Unidad 11 - Administración básica del sistema
Unidad 11 - Administración básica del sistemaUnidad 11 - Administración básica del sistema
Unidad 11 - Administración básica del sistema
 
Administración y Comando Básicos
Administración y Comando BásicosAdministración y Comando Básicos
Administración y Comando Básicos
 
Presentacion
PresentacionPresentacion
Presentacion
 
Instalación Y Conf Gnu/Linux
Instalación Y Conf Gnu/LinuxInstalación Y Conf Gnu/Linux
Instalación Y Conf Gnu/Linux
 
Ajustes posteriores a la instalación de cent os 6
Ajustes posteriores a la instalación de cent os 6Ajustes posteriores a la instalación de cent os 6
Ajustes posteriores a la instalación de cent os 6
 
Curso básico linux
Curso básico linuxCurso básico linux
Curso básico linux
 
Tema3
Tema3Tema3
Tema3
 
Sistemas operativos ii
Sistemas operativos iiSistemas operativos ii
Sistemas operativos ii
 
Transcripcion yamy
Transcripcion yamyTranscripcion yamy
Transcripcion yamy
 
Semana 10 administracion de procesos
Semana 10 administracion de procesosSemana 10 administracion de procesos
Semana 10 administracion de procesos
 
Evasión de Técnicas Forenses
Evasión de Técnicas ForensesEvasión de Técnicas Forenses
Evasión de Técnicas Forenses
 
Instalacion y monitorizacion de linux server y linux desktop
Instalacion y monitorizacion de linux server y linux desktopInstalacion y monitorizacion de linux server y linux desktop
Instalacion y monitorizacion de linux server y linux desktop
 
Laboratorio 1
Laboratorio 1Laboratorio 1
Laboratorio 1
 
PROCESOS EN LINUX. ::: http://leymebamba.com
PROCESOS EN LINUX.   ::: http://leymebamba.comPROCESOS EN LINUX.   ::: http://leymebamba.com
PROCESOS EN LINUX. ::: http://leymebamba.com
 
Jhonatan
JhonatanJhonatan
Jhonatan
 
Como instalar Unix(Johanna)
Como instalar Unix(Johanna)Como instalar Unix(Johanna)
Como instalar Unix(Johanna)
 
Niveles de ejecucion de linux
Niveles de ejecucion de linuxNiveles de ejecucion de linux
Niveles de ejecucion de linux
 
Comandos consola-windows-xp
Comandos consola-windows-xpComandos consola-windows-xp
Comandos consola-windows-xp
 

Destaque

44 seguridad y se linux
44  seguridad y se linux44  seguridad y se linux
44 seguridad y se linuxAprende Viendo
 
38 reunir información del sistema
38  reunir información del sistema38  reunir información del sistema
38 reunir información del sistemaAprende Viendo
 
42 seguridad y autenticación
42  seguridad y autenticación42  seguridad y autenticación
42 seguridad y autenticaciónAprende Viendo
 
24 correo electrónico
24  correo electrónico24  correo electrónico
24 correo electrónicoAprende Viendo
 
36 archivos de registro
36  archivos de registro36  archivos de registro
36 archivos de registroAprende Viendo
 

Destaque (7)

44 seguridad y se linux
44  seguridad y se linux44  seguridad y se linux
44 seguridad y se linux
 
38 reunir información del sistema
38  reunir información del sistema38  reunir información del sistema
38 reunir información del sistema
 
42 seguridad y autenticación
42  seguridad y autenticación42  seguridad y autenticación
42 seguridad y autenticación
 
24 correo electrónico
24  correo electrónico24  correo electrónico
24 correo electrónico
 
Guia postfix
Guia postfixGuia postfix
Guia postfix
 
36 archivos de registro
36  archivos de registro36  archivos de registro
36 archivos de registro
 
33 usuarios y grupos
33  usuarios y grupos33  usuarios y grupos
33 usuarios y grupos
 

Semelhante a 39 o profile

Introducción a los procesos alfa ii
Introducción a los procesos alfa iiIntroducción a los procesos alfa ii
Introducción a los procesos alfa iiAlejandro Ordoñez
 
Inittab y Upstarts
Inittab y UpstartsInittab y Upstarts
Inittab y UpstartsRosariio92
 
Cap3
Cap3Cap3
Cap3CJAO
 
Funciones principales de los sistemas operativos
Funciones principales de los sistemas operativosFunciones principales de los sistemas operativos
Funciones principales de los sistemas operativosIrving Hofstadter
 
Arquitectura de Computadores
Arquitectura de ComputadoresArquitectura de Computadores
Arquitectura de ComputadoresErwin Meza
 
Informe de Laboratorio Rendimiento de Computadores
Informe de Laboratorio Rendimiento de ComputadoresInforme de Laboratorio Rendimiento de Computadores
Informe de Laboratorio Rendimiento de Computadores26miya
 
Sesión 10
Sesión 10Sesión 10
Sesión 10percebra
 
Sistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosSistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosChiNo Sosa Erazo
 
Administración de Procesos
Administración de ProcesosAdministración de Procesos
Administración de ProcesosIsrael Pilla
 
base de datos
base de datosbase de datos
base de datosnotalone
 
Sistema Operativos PNFI IUTM (2º Capitulo Procesos y Administracion del Proc...
Sistema Operativos PNFI IUTM (2º Capitulo  Procesos y Administracion del Proc...Sistema Operativos PNFI IUTM (2º Capitulo  Procesos y Administracion del Proc...
Sistema Operativos PNFI IUTM (2º Capitulo Procesos y Administracion del Proc...ruben ferrer
 

Semelhante a 39 o profile (20)

Introducción a los procesos alfa ii
Introducción a los procesos alfa iiIntroducción a los procesos alfa ii
Introducción a los procesos alfa ii
 
Procesos
ProcesosProcesos
Procesos
 
Gestion de nucleo
Gestion de nucleoGestion de nucleo
Gestion de nucleo
 
Inittab y Upstarts
Inittab y UpstartsInittab y Upstarts
Inittab y Upstarts
 
Cap3
Cap3Cap3
Cap3
 
Parte u 3
Parte u 3Parte u 3
Parte u 3
 
Informe de sistemas operativos
Informe de sistemas operativosInforme de sistemas operativos
Informe de sistemas operativos
 
Funciones principales de los sistemas operativos
Funciones principales de los sistemas operativosFunciones principales de los sistemas operativos
Funciones principales de los sistemas operativos
 
Arquitectura de Computadores
Arquitectura de ComputadoresArquitectura de Computadores
Arquitectura de Computadores
 
Informe de Laboratorio Rendimiento de Computadores
Informe de Laboratorio Rendimiento de ComputadoresInforme de Laboratorio Rendimiento de Computadores
Informe de Laboratorio Rendimiento de Computadores
 
Sesión 10
Sesión 10Sesión 10
Sesión 10
 
Sistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosSistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesos
 
Comandos centos
Comandos centos Comandos centos
Comandos centos
 
Administración de Procesos
Administración de ProcesosAdministración de Procesos
Administración de Procesos
 
Estructura de registros
Estructura de registrosEstructura de registros
Estructura de registros
 
base de datos
base de datosbase de datos
base de datos
 
ALGUNAS CURIOSIDADES
ALGUNAS CURIOSIDADESALGUNAS CURIOSIDADES
ALGUNAS CURIOSIDADES
 
El procesado y su importancia
El procesado y su importanciaEl procesado y su importancia
El procesado y su importancia
 
Sistema Operativos PNFI IUTM (2º Capitulo Procesos y Administracion del Proc...
Sistema Operativos PNFI IUTM (2º Capitulo  Procesos y Administracion del Proc...Sistema Operativos PNFI IUTM (2º Capitulo  Procesos y Administracion del Proc...
Sistema Operativos PNFI IUTM (2º Capitulo Procesos y Administracion del Proc...
 
Expo So
Expo SoExpo So
Expo So
 

Mais de Aprende Viendo

34 configuración de la impresora
34  configuración de la impresora34  configuración de la impresora
34 configuración de la impresoraAprende Viendo
 
32 configuración del sistema x window
32  configuración del sistema x window32  configuración del sistema x window
32 configuración del sistema x windowAprende Viendo
 
31 el sistema x window
31  el sistema x window31  el sistema x window
31 el sistema x windowAprende Viendo
 
46 customizing se linux policy
46  customizing se linux policy46  customizing se linux policy
46 customizing se linux policyAprende Viendo
 
45 trabajar con se linux
45  trabajar con  se linux45  trabajar con  se linux
45 trabajar con se linuxAprende Viendo
 
29 configuración de la fecha y hora
29  configuración de la fecha y hora29  configuración de la fecha y hora
29 configuración de la fecha y horaAprende Viendo
 
27 configuración del sistema
27  configuración del sistema27  configuración del sistema
27 configuración del sistemaAprende Viendo
 
25 protocolo ligero de acceso a directorios ldap
25  protocolo ligero de acceso a directorios ldap25  protocolo ligero de acceso a directorios ldap
25 protocolo ligero de acceso a directorios ldapAprende Viendo
 
30 configuración del teclado
30  configuración del teclado30  configuración del teclado
30 configuración del tecladoAprende Viendo
 
21 protocolo de configuración dinámica de hosts dhcp
21  protocolo de configuración dinámica de hosts dhcp21  protocolo de configuración dinámica de hosts dhcp
21 protocolo de configuración dinámica de hosts dhcpAprende Viendo
 
26 configuración de la autenticación
26  configuración de la autenticación26  configuración de la autenticación
26 configuración de la autenticaciónAprende Viendo
 
19 sistema de archivos de red nfs
19  sistema de archivos de red nfs19  sistema de archivos de red nfs
19 sistema de archivos de red nfsAprende Viendo
 
17 berkeley internet name domain
17  berkeley internet name  domain17  berkeley internet name  domain
17 berkeley internet name domainAprende Viendo
 
16 control de acceso a servicios
16  control de acceso a servicios16  control de acceso a servicios
16 control de acceso a serviciosAprende Viendo
 
15 configuración de la red
15  configuración de la red15  configuración de la red
15 configuración de la redAprende Viendo
 
14 configuración relacionada a la red
14  configuración relacionada a la red14  configuración relacionada a la red
14 configuración relacionada a la redAprende Viendo
 

Mais de Aprende Viendo (19)

35 automated tasks
35  automated tasks35  automated tasks
35 automated tasks
 
34 configuración de la impresora
34  configuración de la impresora34  configuración de la impresora
34 configuración de la impresora
 
32 configuración del sistema x window
32  configuración del sistema x window32  configuración del sistema x window
32 configuración del sistema x window
 
31 el sistema x window
31  el sistema x window31  el sistema x window
31 el sistema x window
 
46 customizing se linux policy
46  customizing se linux policy46  customizing se linux policy
46 customizing se linux policy
 
45 trabajar con se linux
45  trabajar con  se linux45  trabajar con  se linux
45 trabajar con se linux
 
29 configuración de la fecha y hora
29  configuración de la fecha y hora29  configuración de la fecha y hora
29 configuración de la fecha y hora
 
27 configuración del sistema
27  configuración del sistema27  configuración del sistema
27 configuración del sistema
 
25 protocolo ligero de acceso a directorios ldap
25  protocolo ligero de acceso a directorios ldap25  protocolo ligero de acceso a directorios ldap
25 protocolo ligero de acceso a directorios ldap
 
22 apache http server
22  apache http server22  apache http server
22 apache http server
 
30 configuración del teclado
30  configuración del teclado30  configuración del teclado
30 configuración del teclado
 
21 protocolo de configuración dinámica de hosts dhcp
21  protocolo de configuración dinámica de hosts dhcp21  protocolo de configuración dinámica de hosts dhcp
21 protocolo de configuración dinámica de hosts dhcp
 
26 configuración de la autenticación
26  configuración de la autenticación26  configuración de la autenticación
26 configuración de la autenticación
 
19 sistema de archivos de red nfs
19  sistema de archivos de red nfs19  sistema de archivos de red nfs
19 sistema de archivos de red nfs
 
17 berkeley internet name domain
17  berkeley internet name  domain17  berkeley internet name  domain
17 berkeley internet name domain
 
16 control de acceso a servicios
16  control de acceso a servicios16  control de acceso a servicios
16 control de acceso a servicios
 
15 configuración de la red
15  configuración de la red15  configuración de la red
15 configuración de la red
 
14 configuración relacionada a la red
14  configuración relacionada a la red14  configuración relacionada a la red
14 configuración relacionada a la red
 
13 red hat network
13  red hat network13  red hat network
13 red hat network
 

Último

Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2montoyagabriela340
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....Aaron Betancourt
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfangelinebocanegra1
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfcastrodanna185
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 

Último (20)

Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdf
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdf
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 

39 o profile

  • 1. 561 OProfile OProfile es una herramienta de supervisión de rendimiento que se ejecuta a lo largo de todo el sistema. Utiliza el hardware de supervisión de rendimiento en el procesador para recuperar información sobre el kernel y los ejecutables en el sistema, tal como cuando la memoria es referenciada, el número de peticiones caché L2 y el número de interrupciones de hardware recibidas. En un sistema Red Hat Enterprise Linux, el paquete RPM oprofile debe estar instalado para poder utilizar esta herramienta. Muchos procesadores incluyen hardware dedicado a la supervisión. Este hardware hace posible detectar la ocurrencia de ciertos eventos (tal como que los datos solicitados no estén en caché). El harware normalmente toma la forma de uno o más contadores que se incrementan cada vez que ocurre un evento. Cuando el valor del contador llega al "máximo," se genera una interrupción, haciendo posible controlar la cantidad de detalles (y por tanto, la sobrecarga) producida por la supervisión del rendimiento. OProfile utiliza este hardware(o un substituto basado en temporizadores en casos donde no está presente el hardware de supervisión) para reunir muestras de datos relacionados al rendimiento cada vez que un contador genera una interrupción. Estas muestras son escritas periódicamente al disco; luego los datos contenidos en estas muestras pueden ser usados para generar informes de rendimiento a nivel del sistema y de las aplicaciones. Oprofile es una herramienta útil, pero tenga en cuenta ciertas limitaciones cuando lo esté utilizando: • Uso de bibliotecas compartidas — Las muestras de código en las bibliotecas compartidas no son atribuídos a una aplicación particular a menos que se utilice la opción --separate=library. • Las muestras de supervisión de rendimiento son inexactas — Cuando un registro de supervisión de rendimiento lanza una muestra, el manejo de la interrupción no es preciso como una excepción de división por cero. Debido a la ejecución de instrucciones fuera de orden por el procesador, la muestra puede que se grabe en una instrucción cercana. • opreport does not associate samples for inline functions' properly — opreport uses a simple address range mechanism to determine which function an address is in. Inline function samples are not attributed to the inline function but rather to the function the inline function was inserted into. • OProfile acumula datos desde múltiples ejecuciones — Oprofile es un perfilador extendido a todo el sistema y que espera que los procesosse inicien y terminen en tiempos diferentes. Por tanto, se acumulan muestras de múltiples ejecuciones. Utilice el comando opcontrol --reset para limpiar las muestras de ejecuciones anteriores. • Problemas de rendimiento no limitados al CPU — OProfile está orientado a encontrar problemas con procesos limitados al CPU. Oprofile no identifica procesos que estén dormidos porque estos estan esperando por bloqueos o porque ocurra algún otro evento (por ejemplo, que un dispositivo de E/S termine una operación). 39.1. Descripción general de las herramientas Tabla 39.1, “Comandos OProfile” provides a brief overview of the tools provided with the oprofile package.
  • 2. 562 Configurar los eventos a supervisar Comando Descripción ophelp Displays available events for the system's processor along with a brief description of each. opimport Convierte archivos de la base de datos de muestras de un formato binario extraño al formato nativo para el sistema. Solamente utilice esta opción cuando esté analizando una base de datos de muestras desde una arquitectura diferente. opannotate Creates annotated source for an executable if the application was compiled with debugging symbols. Refer to Sección 39.5.4, “Utilizando opannotate” for details. opcontrol Configures what data is collected. Refer to Sección 39.2, “Configuración de Oprofile” for details. opreport Retrieves profile data. Refer to Sección 39.5.1, “Utilizando opreport” for details. oprofiled Se ejecuta como un demonio para escribir periódicamente datos de muestra al disco. Tabla 39.1. Comandos OProfile 39.2. Configuración de Oprofile Antes de que pueda ejecutar Oprofile, debe configurarlo. Como mínimo, se requiereseleccionar supervisar el kernel (o seleccionar no supervisar el kernel). Las secciones siguientes describen cómo utilizar la utilidad opcontrol para configurar Oprofile. A medida que se ejecutan los comandos opcontrol, las opciones de configuración son guardadas al archivo /root/.oprofile/ daemonrc. 39.2.1. Especificar el Kernel Primero, configure si Oprofile debería supervisar el kernel. Esta es la única opción de configuración que se requiere antes de iniciar Oprofile. Todas las otras opciones son opcionales. Para supervisar el kernel, ejecute el comando siguiente como root: opcontrol --setup --vm linux=/usr/lib/debug/lib/m odules/`uname -r`/vm linux Nota El paquete debuginfo (el cual contiene el kernel sin comprimir) debe ser instalado para poder monitorear el kernel. Para configurar Oprofile para que no controle el kernel, ejecute el comando siguiente como root: opcontrol --setup --no-vmlinux
  • 3. 563 Configurar los eventos a supervisar This command also loads the oprofile kernel module, if it is not already loaded, and creates the / dev/oprofile/ directory, if it does not already exist. Refer to Sección 39.6, “Comprender /dev/ oprofile/” for details about this directory. Nota Aún si se configura Oprofile para que no perfile el kernel, el kernel de SMP debe estar ejecutándose para que el módulo oprofile se pueda cargar a partir de este. Setting whether samples should be collected within the kernel only changes what data is collected, not how or where the collected data is stored. To generate different sample files for the kernel and application libraries, refer to Sección 39.2.3, “Separar perfiles del Kernel y del espacio del usuario”. 39.2.2. Configurar los eventos a supervisar Most processors contain counters, which are used by OProfile to monitor specific events. As shown in Tabla 39.2, “Procesadores y contadores de Oprofile”, the number of counters available depends on the processor. Procesador cpu_type Número de contadores Pentium Pro i386/ppro 2 Pentium II i386/pii 2 Pentium III i386/piii 2 Pentium 4 (sin hilos múltiples) i386/p4 8 Pentium 4 (múltiples hilos o hyper- threaded) i386/p4-ht 4 Athlon i386/athlon 4 AMD64 x86-64/hammer 4 Itanium ia64/itanium 4 Itanium 2 ia64/itanium2 4 TIMER_INT timer 1 IBM eServer iSeries y pSeries timer 1 ppc64/power4 8 ppc64/power5 6 ppc64/970 8 IBM eServer S/390 y S/390x timer 1 IBM eServer zSeries timer 1 Tabla 39.2. Procesadores y contadores de Oprofile Use Tabla 39.2, “Procesadores y contadores de Oprofile” to verify that the correct processor type was detected and to determine the number of events that can be monitored simultaneously. timer is used as the processor type if the processor does not have supported performance monitoring hardware. Si se utiliza timer, los eventos no se puedenconfigurar para ningún procesador porque el hardware no tiene el soporte para el hardware de contadores de rendimiento. En su lugar, se utilizan las interrupciones del temporizador para crear perfiles.
  • 4. 564 Configurar los eventos a supervisar If timer is not used as the processor type, the events monitoredcan be changed, and counter 0 for the processor is set to a time-based event by default. If more than one counter exists on the processor, the counters other than counter 0 are not set to an event by default. The default events monitored are shown in Tabla 39.3, “Eventos predeterminados”. Procesador Evento Predeterminado para el Contador Descripción Pentium Pro, Pentium II, Pentium III, Athlon, AMD64 Pentium 4 (HT y no- HT) CPU_CLK_UNHALTED The processor's clock is not halted GLOBAL_POWER_EVENTS El tiempo durante el cual el procesador no está detenido Itanium 2 CPU_CYCLES CPU Cycles TIMER_INT (ninguno) Muestra para cada interrupción del temporizador ppc64/power4 CICLOS Ciclos del Procesador ppc64/power5 CICLOS Ciclos del Procesador ppc64/970 CICLOS Ciclos del Procesador Tabla 39.3. Eventos predeterminados El número de eventos que se pueden supervisar a la vez, es determinado por el número de contadores para el procesador. Sin embargo, no es una relación de uno a uno; en algunos procesadores,se deben mapear ciertos eventos a contadores específicos. Para determinar el número de contadores disponibles, ejecute el comando siguiente: ls -d /dev/oprofile/ [0-9]* The events available vary depending on the processor type. To determine the events available for profiling, execute the following command as root (the list is specific to the system's processor type): ophelp The events for each counter can be configured via the command line or with a graphical interface. For more information on the graphical interface, refer to Sección 39.8, “Interfaz gráfica”. If the counter cannot be set to a specific event, an error message is displayed. Para configurar el evento para cada contador configurable a través de la línea de comandos, utilice opcontrol: opcontrol --event=<event-name>:<sample-rate> Replace <event-name> with the exact name of the event from ophelp, and replace <sample- rate> with the number of events between samples.
  • 5. 565 Separar perfiles del Kernel y del espacio del usuario 39.2.2.1. Velocidad de muestreo Por defecto, se selecciona un evento basado en tiempo. Esto crea aproximadamente 100,000 muestras por segundo por procesador. Si se utilizan las interrupciones del temporizador, el temporizador es configurado a la velocidad instantánea que sea y no el usuario no la puede configurar. Si el cpu_type no es timer, cada evento puede tener una velocidad de muestreo configurada. La velocidad de muestreo es el número de eventos entre cada instantánea de muestra. Cuando configure el evento para el contador, también se puede especificar una velocidad de muestreo: opcontrol --event=<event-name>:<sample-rate> Replace <sample-rate> with the number of events to wait before sampling again. The smaller the count, the more frequent the samples. For events that do not happen frequently, a lower count may be needed to capture the event instances. Atención Tenga extremo cuidado cuando configure las velocidades de muestreo. Si se toman muestras con demasiada frecuencia puede sobrecargar al sistema, causando que el sistema parezca congelado o que en verdad el sistema se congele. 39.2.2.2. Máscaras de unidades Algunos eventos de monitoriamiento del desempeño pueden necesitar máscaras de unidades para definir aún más el evento. Las máscaras de unidades para cada evento son enumeradas con el comando ophelp. Los valores para cada máscara de unidad son listados en formato hexadecimal. Para especificar más de una máscara de unidad, los valores hexadecimales deben estar combinados usando una operación de bits or. opcontrol --event=<event-name>:<sample-rate>:<unit-mask> 39.2.3. Separar perfiles del Kernel y del espacio del usuario Por defecto, se reune información del modo del kernel y del modo del usuario por cada evento. Para configurar Oprofile para que ignore los eventos en modo del kernel para un contador en particular, ejecute el siguiente comando: opcontrol --event=<event-name>:<sample-rate>:<unit-mask>:0 Ejecute el comando siguiente para comenzar a perfilar otra vez en modo kernel para el contador: opcontrol --event=<event-name>:<sample-rate>:<unit-mask>:1 Para configurar Oprofile para que ignore eventos en modo usuario para un contador específico, ejecute el siguiente comando:
  • 6. 566 Separar perfiles del Kernel y del espacio del usuario opcontrol --event=<event-name>:<sample-rate>:<unit-mask>:<kernel>:0 Ejecute el comando siguiente para comenzar a perfilar nuevamente en modo usuario para el contador: opcontrol --event=<event-name>:<sample-rate>:<unit-mask>:<kernel>:1 Cuando el demonio Oprofile escribe datos del perfil a los archivos de muestras, puede separar los datos del perfil de kernel y de la biblioteca en archivos separados. Para configurar la forma en que el demonio escribe a los archivos de muestra, ejecute el comando siguiente como root: opcontrol --separate=<choice> <choice> can be one of the following: • none — no separa los perfiles (predeterminado) • library — genera perfiles por aplicación para las bibliotecas • kernel — genera perfiles por aplicación para el kernel y sus módulos • all — genera perfiles por aplicación para las bibliotecas y perfiles por aplicación para el kernel y los módulos del kernel Si se utiliza --separate=library, el nombre del archivo de muestras incluye el nombre del ejecutable así como también el nombre de la biblioteca. Nota Estos cambios en la configuración tendrán lugar cuandose reinicie oprofile. 39.3. Iniciar y detener Oprofile Para comenzar a supervisar el sistema con Oprofile, ejecute el comando siguiente como root: opcontrol --start Se muestra una salida similar a la siguiente: Using log file /var/lib/oprofile/oprofiled.log Daemon started. Profiler running. Se utilizan las configuraciones en /root/.oprofile/daemonrc. El demonio Oprofile, oprofiled, es iniciado; este escribe periódicamente los datos de muestra al directorio /var/lib/oprofile/samples/. El archivo de registro para el demonio está ubicado en /var/lib/oprofile/oprofiled.log. Para detener el perfilador, ejecute el siguiente comando como root:
  • 7. 567 Guardar los datos opcontrol --shutdown 39.4. Guardar los datos Algunas veces es útil guardar las muestras a una hora específica. Por ejemplo, cuando se esté perfilando un ejecutable, puede ser útil reunir muestras diferentes basadas en diferentes conjuntos de datos de entrada. Si el número de eventos a monitorear excede el número de contadores disponibles para el procesador, se puede ejecutar varias veces Oprofile para reunir los datos, guardando los datos de muestra a archivos diferentes cada vez. To save the current set of sample files, execute the following command, replacing <name> with a unique descriptive name for the current session. opcontrol --save=<name> Se crea el directorio /var/lib/oprofile/samples/name/ y los archivos de muestras actuales son copiados a él. 39.5. Análisis de los datos Periódicamente, el demonio Oprofile, oprofiled colecciona las muestras y las escribe al directorio / var/lib/oprofile/samples/. Antes de leer los datos,asegúrese de que todos los datos han sido escritos a este directorio ejecutando el siguiente comando como root: opcontrol --dump Cada archivo de muestra se basa en el nombre del ejecutable. Por ejemplo, las muestras para el evento predeterminado en un procesador Pentium III para /bin/bash se convierte en: {root}/bin/bash/{dep}/{root}/bin/bash/CPU_CLK_UNHALTED.100000 Las herramientas siguientes están disponibles para perfilar los datos de muestra una vez que se han reunido: • opreport • opannotate Utilice estas herramientas, junto con los binarios perfilados para generar informes que pueden ser analizados más aún. Aviso The executable being profiled must be used with these tools to analyze the data. If it must change after the data is collected, backup the executable used to create the samples as well as the sample files. Please note that the sample file and the binary have to agree. Making a backup isn't going to work if they do not match. oparchive can be used to address this problem.
  • 8. 568 Guardar los datos Samples for each executable are written to a single sample file. Samples from each dynamically linked library are also written to a single sample file. While OProfile is running, if the executable being monitored changes and a sample file for the executable exists, the existing sample file is automatically deleted. Thus, if the existing sample file is needed, it must be backed up, along with the executable used to create it before replacing the executable with a new version. The oprofile analysis tools use the executable file that created the samples during analysis. If the executable changes the analysis tools will be unable to analyze the associated samples. Refer to Sección 39.4, “Guardar los datos” for details on how to backup the sample file. 39.5.1. Utilizando opreport La herramienta opreport proporciona una descripción general de todos los ejecutables que se están perfilando. Lo siguiente forma parte de una salida de ejemplo: Profiling through timer interrupt TIMER:0| samples| %| ------------------ 25926 97.5212 no-vmlinux 359 1.3504 pi 65 0.2445 Xorg 62 0.2332 libvte.so.4.4.0 56 0.2106 libc-2.3.4.so 34 0.1279 libglib-2.0.so.0.400.7 19 0.0715 libXft.so.2.1.2 17 0.0639 bash 8 0.0301 ld-2.3.4.so 8 0.0301 libgdk-x11-2.0.so.0.400.13 6 0.0226 libgobject-2.0.so.0.400.7 5 0.0188 oprofile d 4 0.0150 libpthread-2.3.4.so 4 0.0150 libgtk-x11-2.0.so.0.400.13 3 0.0113 libXre nder.so.1.2.2 3 0.0113 du 1 0.0038 libcrypto.so.0.9.7a 1 0.0038 libpa m.so.0.77 1 0.0038 libtermca p.so.2.0.8 1 0.0038 libX11.so.6.2 1 0.0038 libgthrea d-2.0.so.0.400.7 1 0.0038 libwnc k-1.so.4.9.0 Cada ejecutable es listado en su propia línea. La primera columna es el número de muestras registradas para el ejecutable. La segunda columna es el porcentaje de muestras relativo al número total de muestras. La tercera columna es el nombre del ejecutable. Consulte la página man de opreport para ver una lista de las opciones de línea de comandos disponibles, tales como la opción -r utilizada para ordenar la salida desde el ejecutable con el que tiene menos muestras hasta el que tiene el mayor número. 39.5.2. Utilizando opreport en un Ejecutable Unico Para recuperar más información detallada sobre un ejecutable en particular utilice opreport:
  • 9. 569 Utilizando opreport en un Ejecutable Unico opreport <mode> <executable> <executable> must be the full path to the executable to be analyzed. <mode> must be one of the following: -l List sample data by symbols. For example, the following is part of the output from running the command opreport -l /lib/tls/libc-<version>.so: samples % symbol name 12 21.4286 gconv_transform_utf8_interna l 5 8.9286 _int_malloc 4 7.1429 malloc 3 5.3571 i686.get_pc _thunk.bx 3 5.3571 _dl_mcount_wrapper_check 3 5.3571 mbrto wc 3 5.3571 memcpy 2 3.5714 _int_realloc 2 3.5714 _nl_inte rn_loca le _data 2 3.5714 free 2 3.5714 strcmp 1 1.7857 ctype_get _m b_c ur_max 1 1.7857 unre gister_atfork 1 1.7857 write _nocancel 1 1.7857 _dl_addr 1 1.7857 _int_fre e 1 1.7857 _itoa_word 1 1.7857 calc _ec losure _ite r 1 1.7857 fopen@@GLIBC_2.1 1 1.7857 ge tpid 1 1.7857 memmove 1 1.7857 msort_with_tmp 1 1.7857 strc py 1 1.7857 strlen 1 1.7857 vfprintf 1 1.7857 write La primera columna es el número de muestras para el símbolo, la segunda columna es el porcentaje de muestras para este símbolo con relación a las muestras en general para el ejecutable y la tercera columna es el nombre del símbolo. Para ordenar la salida desde el número más grande de muestras al más pequeño (orden inverso), utilice la opción -r en conjunto con la opción -l. -i <symbol-name> List sample data specific to a symbol name. For example, the following output is from the command opreport -l -i gconv_transform_utf8_internal /lib/tls/ libc-<version>.so: samples % symbol name 12 100.000 gc onv_tra nsform_utf8_internal La primera línea es un resúmen para la combinación símbolo/ejecutable.
  • 10. 570 Utilizando opreport en un Ejecutable Unico La primera columna es el número de muestras para el símbolo de memoria. La segunda columna es el número el porcentaje de muestras para la dirección de memoria relativa al número total de muestras para el símbolo. La tercera columna es el nombre del símbolo. -d List sample data by symbols with more detail than -l. For example, the following output is from the command opreport -l -d gconv_transform_utf8_internal /lib/tls/ libc-<version>.so: vma samples % symbol name 00a98640 12 100.000 gc onv_tra nsform_utf8_internal 00a98640 1 8.3333 00a9868c 2 16.6667 00a9869a 1 8.3333 00a986c1 1 8.3333 00a98720 1 8.3333 00a98749 1 8.3333 00a98753 1 8.3333 00a98789 1 8.3333 00a98864 1 8.3333 00a98869 1 8.3333 00a98b08 1 8.3333 Los datos son los mismos que con la opción -l excepto que para cada símbolo, se muestra cada dirección virtual de memoria utilizada. Para cada dirección virtual de memoria se despliegan, el número de muestras y los porcentajes de las muestras relativos al número de muestras para el símbolo. -x<symbol-name> Excluye la lista de símbolos separada por comas de la salida. session:<name> Especifica la ruta completa a la sesión o un directorio relativo al directorio /var/lib/ oprofile/samples/. 39.5.3. Obtener salidas más detalladas sobre los módulos OProfile recopila datos a nivel del sistema para código de espacio de usuario y de kernel que se ejecuta en la máquina. Sin embargo, una vez que se carga un módulo en el kernel, la información sobre el origen del módulo del kernel se pierde. Elo módulo puedo haber provenido del archivo initrd durante el arranque, el directorio con varios módulos de kernel o un módulo de kernel creado localmente. Por consiguiente, cuando OProfile graba muestras para un módulo sólamente enumera las muestras para los módulos para un ejecutable el el directorio root, pero no es muy probable que sea el lugar con el código real para el módulo. Necesitará seguir ciertos pasos para asegurarse de que las herramientas de análisis obtengan el ejecutable. For example on an AMD64 machine the sampling is set up to record "Data cache accesses" and "Data cache misses" and assuming you would like to see the data for the ext3 module: $ opreport /ext3 CPU: AMD64 processors, spee d 797.948 MHz (estima te d) Co unt ed DAT A_CAC HE_ ACCE SSE S eve nts (Da ta cache accesses) with a unit mask of 0x00 (No unit mask) count 500000 Co unt ed DAT A_ CACHE _ M ISSE S events (Data cache misses) with a unit mask of 0x00 (No unit mask) count 500000
  • 11. 571 Utilizando opannotate DATA_CACHE_ACC...|DATA_CACHE_MIS...| samples| %| samples| %| ------------------------------------ 148721 100.000 1493 100.000 ext3 Para obtener una vista más detallada de las acciones del módulo necesitará tener el módulo montado (por ejemplo, instalado desde una cosntrcción personalizada) o tener el RPM debuginfo instalado para el kernel. Find out which kernel is running, "uname -a", get the appropriate debuginfo rpm, and install on the machine. Then make a symbolic link so oprofile finds the code for the module in the correct place: # ln -s /lib/modules/`unam e -r`/kernel/fs/ext3/ext3.ko /ext3 Then the detailed information can be obtained with: # opreport im age:/ext3 -l|m ore warning: c ould not chec k tha t the binary file /ext3 has not been modified since the profile was take n. Results may be inaccurate. CPU: AMD64 processors, spee d 797.948 MHz (estima te d) Co unt ed DAT A_CAC HE_ ACCE SSE S eve nts (Da ta cache accesses) with a unit mask of 0x00 (No unit mask) count 500000 Co unt ed DAT A_ CACHE _ M ISSE S events (Data cache misses) with a unit mask of 0x00 (No unit mask) count 500000 samples % samples % symbol name 16728 11.2479 7 0.4689 ext3_group_sparse 16454 11.0637 4 0.2679 ext3_count_free_blocks 14583 9.8056 51 3.4159 e xt3_fill_supe r 8281 5.5681 129 8.6403 ext3_ioctl 7810 5.2514 62 4.1527 ext3_write _info 7286 4.8991 67 4.4876 ext3_ordered_writepage 6509 4.3767 130 8.7073 ext3_new_inode 6378 4.2886 156 10.4488 ext3_new_block 5932 3.9887 87 5.8272 e xt3_xa ttr_bloc k_list ... 39.5.4. Utilizando opannotate La herramienta opannotate trata de poner juntas las muestras para instrucciones particulares con sus líneas correspondientes en el código fuente. Los archivos que resultan deberían tener las muestras para las líneas a la izquierda. También coloca un comentario al comienzo de cada función listando las muestras totales para la función. For this utility to work, the executable must be compiled with GCC's -g option. By default, Red Hat Enterprise Linux packages are not compiled with this option. La sintaxis general para opannotate es la siguiente: opannotate --search-dirs <sr c-dir> --source <executable> Se debe especificar el directorio que contiene el código fuente y el ejecutable a analizar. Consulte la página del manual de opannotate para obtener una lista con las opciones de línea de comandos adicionales.
  • 12. 572 Utilizando opannotate 39.6. Comprender /dev/oprofile/ El directorio /dev/oprofile/ contiene los archivos para Oprofile. Utilice el comando cat para mostrar los valores de los archivos virtuales en este sistema de archivos. Por ejemplo, el comando siguiente muestra el tipo de procesador que Oprofile detectó: cat /dev/oprofile/cpu_type Existe un directorio en /dev/oprofile/ para cada contador. Por ejemplo, si hay dos contadores, existen los directorios /dev/oprofile/0/ y dev/oprofile/1/. Cada directorio de contadores contiene los archivos siguientes: • count — El intervalo entre las muestras. • enabled — Si es 0, el contador está desactivado y no se reúnenmuestras para este; si es 1, el contador está activado y se están recogiendo las muestras. • event — El evento a supervisar • kernel — Si es 0, las muestras no son reunidas para este contador de eventos cuando el procesador está en el espacio del kernel; si es 1, las muestras son reunidas aún si el procesador está en el espacio del kernel. • unit_mask — Define cuáles máscaras de unidades son activadas para el contador. • user — Si es 0, las muestras no son reunidas para el contador cuando el procesador está en el espacio del usuario; si es 1, las muestras son reunidas aún si el procesador está en el espacio del usuario Los valores de estos archivos se pueden obtener con el comando cat. Por ejemplo: cat /dev/oprofile/0/count 39.7. Ejemplo de uso Mientras que Oprofile puede ser usado por desarrolladores para analizar el rendimiento de una aplicación, también puede ser usado por los administradores de sistemas para analizar el rendimiento del sistema. Por ejemplo: • Determina cuáles aplicaciones y servicios son los más usados en un sistema — opreport se puede usar para determinar cuánto tiempo de procesador utiliza una aplicación o servicio. Si el sistema es usado para múltiples servicios pero no está rindiendo bien, los servicios que consuman más tiempo de procesamiento se pueden mover a sistemas dedicados. • Determinar el uso del procesador — El evento CPU_CLK_UNHALTED se puede monitorear para determinar la carga del procesador durante un tiempo determinado. Estos datos luego se pueden usar para determinar si la implementación de procesadores adicionales o más rápidos pueden mejorar el rendimiento del sistema.
  • 13. 573 Interfaz gráfica 39.8. Interfaz gráfica Algunas preferencias de Oprofile se puedenconfigurar con una interfaz gráfica. Para iniciarla, ejecute el comando oprof_start como root en el indicador de comandos. Para utilizar la interfaz gráfica necesitará tener instalado el paquete oprofile-gui. Después de cambiar cualquiera de las opciones, las puede guardar pulsando el botón Guardar y salir. Las preferencias son escritas al /root/.oprofile/daemonrc y la aplicación termina. Al salir de la aplicación no detiene a Oprofile de seguir tomando muestras. On the Setup tab, to set events for the processor counters as discussed in Sección 39.2.2, “Configurar los eventos a supervisar”, select the counter from the pulldown menu and select the event from the list. A brief description of the event appears in the text box below the list. Only events available for the specific counter and the specific architecture are displayed. The interface also displays whether the profiler is running and some brief statistics about it. Figura 39.1. Disposición de Oprofile On the right side of the tab, select the Profile kernel option to count events in kernel mode for the currently selected event, as discussed in Sección 39.2.3, “Separar perfiles del Kernel y del espacio del usuario”. If this option is unselected, no samples are collected for the kernel.
  • 14. 574 Interfaz gráfica Select the Profile user binaries option to count events in user mode for the currently selected event, as discussed in Sección 39.2.3, “Separar perfiles del Kernel y del espacio del usuario”. If this option is unselected, no samples are collected for user applications. Use the Count text field to set the sampling rate for the currently selected event as discussed in Sección 39.2.2.1, “Velocidad de muestreo”. If any unit masks are available for the currently selected event, as discussed in Sección 39.2.2.2, “Máscaras de unidades”, they are displayed in the Unit Masks area on the right side of the Setup tab. Select the checkbox beside the unit mask to enable it for the event. En la pestaña Configuración, para perfilar el kernel, ingrese el nombre y ubicación del archivo vmlinux del kernel para supervisar en el campo de texto Archivo de imagen del kernel. Para configurar Oprofile para que no supervise el kernel, seleccione No kernel image. Figura 39.2. OProfile Configuration Si la opción Verbose está seleccionada, el demonio de registro de oprofiled incluye más información. If Per-application kernel samples files is selected, OProfile generates per-application profiles for the kernel and kernel modules as discussed in Sección 39.2.3, “Separar perfiles del Kernel y del espacio del usuario”. This is equivalent to the opcontrol --separate=kernel command. If Per- application shared libs samples files is selected, OProfile generates per-application profiles for libraries. This is equivalent to the opcontrol --separate=library command. To force data to be written to samples files as discussed in Sección 39.5, “Análisis de los datos”, click the Flush profiler data button. This is equivalent to the opcontrol --dump command. Para iniciar Oprofile desde la interfaz gráfica, pulse en Iniciar perfilador. Para detener el perfilador, pulse en Detener perfilador. Al salir de la aplicación no se detiene Oprofile de continuar tomando muestras.
  • 15. 575 Interfaz gráfica 39.9. Recursos adicionales Este capítulo solamente resalta Oprofile y cómo configurarlo y utilizarlo. Para aprender un poco más, consulte los recursos siguientes. 39.9.1. Documentos instalados • /usr/share/doc/oprofile-<version>/oprofile.html — OProfile Manual • oprofile man page — Discusses opcontrol, opreport, opannotate,y ophelp 39.9.2. Sitios Web útiles • http://oprofile.sourceforge.net/ — contiene la última documentación, listas de correo, canales IRC y mucho más.