ktrace linux dtrace

ktrace - ¿Cuál es una alternativa para DTrace en Linux?



(6)

Linux tiene strace / ltrace (mira este artículo sobre strace). Pero no son realmente equivalentes a DTrace, simplemente cubren una pequeña parte de lo que DTrace puede hacer (en realidad, DTrace es muy superior a cualquier cosa que Linux ofrezca).

Por lo que puedo ver, una implementación de DTrace en Linux se ve frenada por las licencias y la política. ¿Cuáles son las alternativas actualmente?




SystemTap es una abstracción de nivel superior construida en Kprobes. Para obtener más información sobre cómo funciona Kprobe, puede leer mi artículo técnico sobre LWN.

Como mencionó Alex, Systemtap básicamente está resolviendo el mismo problema que dtrace, excepto que es algo más lento (es posible que no lo percibas así, dependiendo de lo que intentes hacer con él) que dtrace y no tan pulido o seguro. usar.

Para instalar el paquete de desarrollo de SDT de SystemTap, intente:

yum install systemtap-sdt-devel


Systemtap está diseñado para resolver el mismo tipo de problemas que dtrace y tiene una interfaz de usuario similar: el usuario escribe pequeños scripts que asocian acciones a sondeos con nombre.

Se dice que es inestable, por lo general no se compila en su kernel de forma predeterminada, pero una vez que lo conseguí, no tuve ningún problema.

Puedes ver cómo se compara con dtrace en esta tabla en el sitio web systemtap (puede ser partidista :-)

Dtrace ha sido parcialmente portado a Linux por Paul Fox, un entusiasta, y está disponible para su descarga para que lo pruebe - revise los enlaces en su blog .

Se ha dicho que los kprobes son un reemplazo dtrace, pero nunca los he probado.


sysdig es una gran solución ahora.

Algunos casos de uso incluyen (su wiki tiene algunos ejemplos excepcionalmente interesantes ):

Para disco I / O

  • Ver los mejores procesos en términos de uso de ancho de banda de disco

    sysdig -c archivo_procesos_

  • Enumera los procesos que usan una gran cantidad de archivos

    sysdig -c fdcount_by proc.name "fd.type = file"

  • Vea los archivos superiores en términos de bytes de lectura + escritura

    sysdig -c topfiles_bytes

  • Imprima los archivos superiores que apache ha estado leyendo o escribiendo en

    sysdig -c topfiles_bytes proc.name = httpd

  • Opensnoop básico: el archivo snoop se abre a medida que ocurren

    sysdig -p "% 12user.name% 6proc.pid% 12proc.name% 3fd.num% fd.typechar% fd.name" evt.type = open

  • Consulte los directorios principales en términos de actividad de disco R + W

    sysdig -c fdbytes_by fd.directory "fd.type = file"

  • Consulte los archivos principales en términos de actividad de disco R + W en el directorio / tmp

    sysdig -c fdbytes_by fd.filename "fd.directory = / tmp /"

  • Observe la actividad de E / S en todos los archivos denominados ''passwd''

    sysdig -A -c echo_fds "fd.filename = passwd"

  • Mostrar actividad de E / S por tipo FD

    sysdig -c fdbytes_by fd.type