Firma Canonical wprowadziła etrace, narzędzie przeznaczone do śledzenia aktywności podczas wykonywania aplikacji. Program przypomina narzędzia strace i ltrace, a także używa ptrace w czasie wykonywania.
Cel główny etrace to debugowanie i analizowanie uruchomionych aplikacji from snap To narzędzie pozwala szybko ocenić, które programy i pliki są używane podczas uruchamiania pakietu snap.
Dostępne są dwie komendy, „exec” i „file”, aby uzyskać informacje na temat uzyskiwania dostępu do plików i uruchamiania innych procesów. W pierwszym przypadku monitorowana jest praca wywołań systemowych związanych z plikami, aw drugim przechwytywana jest rodzina wywołań systemowych wykonawczych.
Etrace to ogólna aplikacja śledząca, przydatna do trzech szerokich celów pomiaru i debugowania:
- Ile czasu zajmuje aplikacji wyświetlenie okna (graficznego / interfejsu użytkownika) na ekranie.
- Sekwencja zadań tworzonych i wykonywanych przez program główny w czasie jego wykonywania. Lista plików, do których uzyskano dostęp podczas wykonywania programu.
Te metryki mogą służyć do debugowania potencjalnych problemów w zatrzaskach i natychmiast dowiedz się, co pakiet próbuje przyciągnąć lub znaleźć wąskie gardła wydajności.
Oczywiście, działa również z natywnymi pakietami Linuksa lub dowolnym programem wykonywalnym, choć z nieco ograniczoną funkcjonalnością po wyjęciu z pudełka (na przykład nie ponownie instaluje pakietu natywnego), ale nadal możesz śledzić aplikację i mierzyć, ile czasu zajmuje wyświetlenie okna.
Narzędzie może również służyć do identyfikowania wąskich gardeł wydajności w aplikacjach graficznych opartych na X11 i pokazuje, ile czasu zajmuje inicjalizacja aplikacji przed rozpoczęciem renderowania okna.
Ponadto dostępne są określone opcje przyciągania „–reinstall-snap” i „–clean-snap-user-data”, które umożliwiają ponowne zainstalowanie pakietu przystawki w celu wykonania pomiaru bez pamięci podręcznej lub usunięcie danych użytkownika skojarzonych z pakietem przed działa.
Podstawowe zastosowanie
Etrace jest dostępny jako pakiet przystawki, więc musimy go najpierw zainstalować. Ponieważ etrace jest używany do uruchamiania dowolnych programów, w tym innych pakietów snap, a nawet tradycyjnych pakietów linuxowych, wymaga uprawnień dla całego systemu poprzez klasyczną blokadę, którą można zaakceptować, używając flagi –classic podczas wykonywania następującego polecenia.
Aby zainstalować etrace:
snap install etrace --candidate --classic
Pierwszy przypadek użycia etrace to pomiar czasu potrzebnego aplikacji graficznej na wyświetlenie okna na ekranie.
Zacznijmy od prostej wtyczki, kalkulatora gnome i wykonaj 10 cykli, aby zobaczyć, ile czasu zajmie to wykonanie. Zauważ, że musisz mieć zainstalowany gnome-calculator - zainstaluj gnome-calculator. Tutaj używamy opcji –no-trace, ponieważ nie chcemy pełnego stosu śledzenia, chcemy po prostu, aby etrace mierzył, ile czasu zajmuje uruchomienie; później przejdziemy do pełnych możliwości śledzenia.
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
Ponadto, Firma Canonical ogłosiła wdrożenie obsługi snapów dla algorytm kompresji LZO. Algorytm LZO koncentruje się na osiągnięciu maksymalnej szybkości dekompresji kosztem zwiększenia rozmiaru pliku wynikowego. Podczas testowania pakietu z Chromium użycie LZO zamiast domyślnego algorytmu XZ pozwala przyspieszyć publikację pakietu przystawki 2-3 razy, skracając czas potrzebny do dekompresji obrazu SquashFS.
W szczególności pierwsze uruchomienie Chromium z normalnego pakietu deb trwa około 1,7 sekundy.
Pierwsze uwolnienie z przystawki przy użyciu XZ zajmuje 8.1 sekundy, a przy użyciu LZO - 3.1 sekundy. Po ponownym uruchomieniu z buforowanymi danymi czas uruchamiania wynosi 0,6, 0,7 i 0,6 sekundy. odpowiednio.
Rozmiar pakietu zatrzasków wzrósł ze 150 MB do 250 MB w przypadku LZO.