READPROFILE(8)

NAZWA
readprofile - wyświetla informacje profilujące jądra

SKŁADNIA

readprofile [opcje]

WERSJA

Niniejszy podręcznik dokumentuje wersję 2.0 programu.

OPIS

Polecenie readprofile używa informacji z /proc/profile do wypisywania danych ascii na standardowe wejście. Wynik jest zorganizowany w trzech kolumnach: w pierwszej jest podana liczba cykli zegara, w drugiej nazwa funkcji C w jądrze gdzie te cykle wystąpiły, w trzeciej znormalizowane obciążenie procedury, obliczone jako współczynnik pomiędzy liczbą cykli a wielkością procedury. Wynik jest wypełniany odstępami, aby go uczytelnić.

This utility is a diagnostic tool and is not designed or intended for use in security-sensitive contexts (e.g., setuid, setgid, sudo, or similar privilege-elevation scenarios). It is installed without any special permissions.

OPCJE

-a, --all
    Wypisuje wszystkie symbole z pliku mapy. Domyślnie, procedury ze zgłoszonymi cyklami nie są wypisywane.

-b, --histbin
    Wypisuje poszczególne liczniki histogram-bin.

-i, --info
    Informacja. readprofile jedynie wypisze krok profilowania używany przez jądro. Krok profilowania to rozdzielczość bufora profilowania, wybierana przy konfiguracji jądra (za pomocą make config) lub z wiersza polecenia jądra. Jeśli zastosuje się przełącznik -t (terse - zwięźle) wraz z -i, to wypisze samą liczbę dziesiętną.

-m, --mapfile plik-mapy
    Określa plik mapy, domyślnym jest /boot/System.map. Plik mapy należy podać w wierszu polecenia wtedy, gdy bieżące jądro nie jest ostatnim, jakie się kompilowało albo chce się przechowywać System.map w innym miejscu. Jeśli nazwa pliku mapy kończy się rozszerzeniem .gz, jest rozpakowywana w locie.

-n, --no-auto
    Wyłącza automatyczne wykrywanie kolejności bajtów.

-M, --multiplier mnożnik
    Na niektórych architekturach można zmienić częstotliwość, z jaką jądro dostarcza przerwania profilowania do każdego procesora. Opcja ta pozwala ustawić częstotliwość, jako wielokrotność częstotliwości zegara systemowego w HZ. Linux 2.6.16 porzucił obsługę mnożnika w większości systemów. Opcja resetuje również bufor profilowania i wymaga uprawnień superużytkownika.

-p, --profile plik-profilowania
    Określa inny bufor profilowania, zamiast domyślnego /proc/profile. Stosowania innego pliku-profilowania jest przydatne, gdy chce się "zamrozić" profilowanie jądra na jakiś moment i odczytać je później. Plik /proc/profile można kopiować za pomocą cat(1) lub cp(1). Obecnie nie są już obsługiwane skompresowane bufory profilowania, jak miało to miejsce w readprofile-1.1, ponieważ program z góry musi znać rozmiar bufora.

-r, --reset
    Reset the profiling buffer. This can only be invoked by root, because /proc/profile is readable by everybody but writable only by the superuser.

-s, --counters
    Wypisuje poszczególne liczniki wewnątrz funkcji.

-v, --verbose
    Tryb szczegółowy. Wynik jest zorganizowany w czterech kolumnach i wypełniany odstępami. Pierwsza kolumna zawiera adres pamięci RAM funkcji jądra, w drugiej jest nazwa funkcji, w trzeciej liczba cykli zegara, a w ostatniej znormalizowane obciążenie.

-h, --help
    Wyświetla ten tekst i wychodzi.

-V, --version
    Wyświetla wersję i wychodzi.

PLIKI

/proc/profile
    Binarna migawka bufora profilowania.

/usr/src/linux/System.map
    Tablica symboli jądra.

/usr/src/linux/*
    Profilowany program :-)

USTERKI

readprofile działa tylko z jądrami 1.3.x lub nowszymi, ponieważ krok /proc/profile zmienił się pomiędzy wersjami 1.2 i 1.3.

Program działa tylko z jądrami ELF. Zmiana wymagana do działania z jądrami a.out jest trywialna i pozostawia się ją jako ćwiczenie dla użytkownika a.out.

Do włączenia profilowania konieczne jest przeładowanie jądra, ponieważ nie jest dostępny moduł profilowania, a jego zbudowanie nie byłoby łatwe. Do włączenia profilowania można podać profile=2 (lub z inną liczbą) w wierszu polecenia jądra. Podana liczba jest potęgą dwójki służącą jako krok profilowania.

Profilowanie jest wyłączone, gdy wstrzymane są przerwania. Oznacza to, że wiele cykli profilowania wystąpi przy wznowieniu przerwań. Należy wystrzegać się tych mylących informacji.

PRZYKŁAD

Przeglądanie bufora profilowania według cykli zegara:

       readprofile | sort -nr | less

Wypisanie 20 najbardziej obciążających procedur:

       readprofile | sort -nr +2 | head -20

Wypisanie jedynie profilu systemu plików:

       readprofile | grep _ext2

Sprawdzenie wszystkich informacji jądra, łącznie z adresami ram:

       readprofile -av | less

Przeglądanie "zamrożonego" bufora profilowania niedziałającego obecnie jądra:

       readprofile -p ~/profile.freeze -m /zImage.map.gz

Żądanie profilowania przy 2kHz na procesor i zresetowanie bufora profilowania:

       readprofile -M 20

ZGŁASZANIE BŁĘDÓW

Problemy należy zgłaszać w

DOSTĘPNOŚĆ

Polecenie readprofile jest częścią pakietu util-linux, który można pobrać ze strony