GNU/Linux >> Tutoriales Linux >  >> Linux

Usar perf para monitorear contadores de eventos sin procesar

Bien, supongo que lo descubrí.

Para la máquina Intel que uso, el formato es el siguiente:<umask><eventselector> donde ambos son valores hexadecimales. Los ceros iniciales de la umask se pueden eliminar, pero no para el selector de eventos.

Así que para el evento 0xB0 con la máscara 0x01 Puedo llamar:

perf record -e r1B0 ./mytestapp someargs

No pude encontrar el análisis exacto en el código del kernel perf (¿algún hacker del kernel aquí?), pero encontré estas fuentes:

  • Una descripción del uso de perf con eventos sin procesar en la revista c't 13/03 (se requiere suscripción), que describe algunos eventos sin procesar con su descripción del Manual para desarrolladores de software de arquitectura Intel (Vol 3b)
  • Un parche en la lista de correo del núcleo, discutiendo la forma correcta de documentarlo. Especificaba que el patrón anterior era "... era específico de x86 e incompleto en eso"
  • (Actualizado) La página de manual de las versiones más recientes muestra un ejemplo en máquinas Intel:man perf-list

Actualizar :Como se señaló en los comentarios (¡gracias!), el traductor libpfm se puede usar para obtener el descriptor de evento adecuado. El sitio web vinculado en los comentarios (Bojan Nikolic:Cómo monitorear la gama completa de eventos de rendimiento de la CPU), descubierto por el usuario 'osgx', lo explica con más detalle.


Parece que también puedes usar:

perf record -e cpu/event=0xB1,umask=0x1/u ./mytestapp someargs

No sé dónde está documentada esta sintaxis.

Probablemente también puedas usar los otros argumentos (edge, inv, cmask).


Linux
  1. Monitoree el servidor Linux usando Prometheus y Grafana

  2. ¿Usando Inotify para monitorear el acceso a un archivo?

  3. ¿Usando Gnu Screen, obtengo un aviso sin procesar con barras invertidas?

  4. Cómo monitorear las sesiones activas de VPN y la temperatura usando Nagios

  5. Cómo monitorear y registrar el tráfico de red en Linux usando vnStat

Cómo monitorear servidores Linux usando CloudStats

Cómo monitorear cambios de archivos usando fswatch en Linux

Cómo monitorear el tiempo de actividad del sistema Linux usando Uptimed

Mostrar historial de eventos de dispositivos USB usando Usbrip en Linux

Cómo monitorear el progreso de los datos a través de una tubería usando el comando 'pv'

Supervise la conexión del zócalo de la red con el comando 10 'ss'