Компания 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
Основным назначением 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