Canonical presenta la utilidad etrace, una herramienta de creación de perfiles de aplicaciones multipropósito

noviembre 03, 2020 , 0 Comments

Canonical

Canonical ha introducido etrace, una utilidad diseñada para rastrear la actividad durante la ejecución de la aplicación. El programa se parece a las utilidades strace e ltrace y también usa ptrace en runtime.

El objetivo principal de etrace es depurar y analizar aplicaciones iniciadas desde snap La utilidad le permite evaluar rápidamente qué programas y qué archivos se utilizan cuando se ejecuta un paquete instantáneo.

Se proporcionan dos comandos, «exec» y «file», para obtener información sobre cómo acceder a archivos y ejecutar otros procesos. En el primer caso, se monitorea el trabajo de las llamadas al sistema relacionadas con el trabajo con archivos, y en el segundo, se intercepta la familia de llamadas al sistema ejecutiva.

Etrace es una aplicación de rastreo genérica, útil para tres propósitos amplios de medición y depuración:

  • Cuánto tiempo tarda una aplicación en mostrar una ventana (gráfica / UI) en una pantalla.
  • La secuencia de tareas creadas y ejecutadas por el programa principal durante su tiempo de ejecución. La lista de archivos a los que se accede durante la ejecución de un programa.

Estas métricas se pueden usar para depurar problemas potenciales en snaps y comprender lo que intenta hacer una instantánea o encontrar cuellos de botella de rendimiento en un instante.

Por supuesto, también funciona con paquetes nativos de Linux o con cualquier programa ejecutable, aunque con una funcionalidad lista para usar ligeramente reducida (no reinstala el paquete nativo, por ejemplo), pero aún puede rastrear la aplicación y medir cuánto tiempo lleva para mostrar una ventana.

La utilidad también se puede utilizar para identificar cuellos de botella de rendimiento en aplicaciones gráficas basadas en X11 y muestra cuánto tiempo tarda la aplicación en inicializarse antes de comenzar a renderizar la ventana.

Además, están disponibles las opciones específicas de snap «–reinstall-snap» y «–clean-snap-user-data», lo que le permite reinstalar el paquete snap para realizar una medición sin caché o eliminar los datos del usuario asociados con el paquete antes de ejecutarlo.

Uso básico

Etrace está disponible como paquete snap, por lo que primero tenemos que instalarlo. Debido a que etrace se usa para ejecutar programas arbitrarios, incluidas otros paquetes snap e incluso paquetes linux tradicionales, necesita permisos para todo el sistema a través del confinamiento clásico, que puede aceptarse usando el indicador –classic cuando se ejecuta el siguiente comando.

Para instalar etrace:

snap install etrace --candidate --classic

El primer caso de uso de etrace es medir cuánto tiempo tarda una aplicación gráfica en mostrar una ventana en una pantalla.

Comencemos con un simple complemento, gnome-calculator , y ejecútelo en un ciclo 10 veces para ver cuánto tiempo lleva esta ejecución. Tenga en cuenta que necesita tener instalado gnome-calculator – instale gnome-calculator . Aquí usamos la opción –no-trace porque no queremos la pila de rastreo completa, solo queremos que etrace mida cuánto tiempo tarda en iniciarse; entraremos en las capacidades de rastreo completas más adelante.

etrace --repeat = 10 exec --use-snap-run --no-trace gnome-calculator --cmd-stderr = /dev/null
Total startup time: 1.531152957s
Total startup time: 513.948576ms
Total startup time: 512.980061ms
Total startup time: 515.576753ms
Total startup time: 508.354472ms
Total startup time: 515.734329ms
Total startup time: 508.414271ms
Total startup time: 514.258788ms
Total startup time: 508.407346ms
Total startup time: 511.950964ms

Además, Canonical anunció la implementación de soporte instantáneo para el algoritmo de compresión LZO. El algoritmo LZO se centra en lograr la máxima velocidad de descompresión, a costa de aumentar el tamaño del archivo resultante. Al probar un paquete con Chromium, el uso de LZO en lugar del algoritmo XZ predeterminado le permite acelerar el lanzamiento del paquete instantáneo 2-3 veces al reducir el tiempo requerido para descomprimir la imagen de SquashFS.

En particular, el primer lanzamiento de Chromium instalado desde un paquete deb normal toma alrededor de 1,7 segundos.

El primer lanzamiento desde snap cuando se usa XZ toma 8.1 segundos y cuando se usa LZO – 3.1 segundos. Al reiniciar, con los datos almacenados en la memoria caché, los tiempos de inicio son 0,6, 0,7 y 0,6 segundos. respectivamente. El tamaño de instantánea ha aumentado de 150 MB a 250 MB con LZO.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.