22.09.2023

Компания Canonical представила утилиту etrace и добавила поддержку LZO в snap


Компания Canonical представила утилиту etrace, предназначенную для отслеживания активности во время выполнения приложения. Программа напоминает утилиты strace и ltrace, и также использует ptrace в процессе работы. Код распространяется под лицензией GPLv3.

Основным назначением etrace является отладка и анализ приложений, запускаемых из пакетов в формате snap. Утилита позволяет быстро оценить какие программы и какие файлы используются при запуске snap-пакета. Предоставляются две команды — «exec» и «file», позволяющие получить информацию об обращении к файлам и выполнению других процессов. В первом случае отслеживается работа системных вызовов, связанных с работой с файлами, а во втором перехватывается семейство системных вызов execve.

     $ etrace exec telegram-desktop --no-window-wait     56 exec calls during snap run:          Start   Stop     Elapsed       Exec          0       95417    95.417022ms   /snap/bin/telegram-desktop          14991   20267    5.276918ms    /usr/lib/snapd/snap-seccomp          38522   39649    1.127004ms    /usr/lib/snapd/snap-device-helper          ...          88778   93460    4.682064ms    snap-update-ns          95417   100613   5.196094ms    /usr/lib/snapd/snap-exec          100613  212749   112.13684ms   /snap/telegram-desktop/1708/bin/desktop-launch          105275  107645   2.36988ms     /usr/bin/date          115309  118616   3.30615ms     /usr/bin/getent          ...          120239  122471   2.232074ms    /usr/bin/md5sum          192968  196316   3.347873ms    /usr/bin/head          199725  203120   3.395795ms    /usr/bin/ln          204533  207864   3.331899ms    /usr/bin/rm          208199  211477   3.277063ms    /usr/bin/ln          212749  6000720  5.787970066s  /snap/telegram-desktop/1708/usr/bin/telegram-desktop     Total time:  6.000720024s     Total startup time: 6.008373172s  

Утилита также может применяться для определения узких мест в производительности графических приложений на базе X11, и показывает какое время приложение затрачивает на инициализацию до начала отрисовки окна. Дополнительно доступны специфичные для snap опции «—reinstall-snap» и «—clean-snap-user-data», дающие возможность перед запуском переустановить snap-пакет для проведения измерения без учёта кэша или удалить связанные с пакетом пользовательские данные.

Кроме того, компания Canonical объявила о реализации поддержки в snap-пакетах алгоритма сжатия LZO. Алгоритм LZO сфокусирован на достижении максимальной скорости распаковки, ценой увеличения размера итогового архива. При тестировании пакета с Chromium применение LZO вместо используемого по умолчанию алгоритма XZ позволяет в 2-3 раза ускорить запуск snap-пакета за счёт сокращения времени на распаковку образа SquashFS.

В частности, первый запуск Chromium, установленного из обычного deb-пакета, занимает около 1.7 секунд. Первый запуск из snap при использовании XZ занимает 8.1 сек, а при использовании LZO — 3.1 сек. При повторном запуске, в условиях когда данные прокэшированы в памяти, время запуска составляет 0.6, 0.7 и 0.6 сек. соответственно. Размер snap-пакета при использовании LZO увеличился со 150 до 250 МБ.

Источник: https://www.opennet.ru/opennews/art.shtml?num=53998

Добавить комментарий