READPROFILE(8) Administracja systemem READPROFILE(8)

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

readprofile [opcje]

Niniejszy podręcznik dokumentuje wersję 2.0 programu.

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.

-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.

/proc/profile

Binarna migawka bufora profilowania.

/usr/src/linux/System.map

Tablica symboli jądra.

/usr/src/linux/*

Profilowany program :-)

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.

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

Problemy należy zgłaszać w systemie śledzenia błędów https://github.com/util-linux/util-linux/issues.

Polecenie readprofile jest częścią pakietu util-linux, który można pobrać ze strony Archiwum jądra Linux https://www.kernel.org/pub/linux/utils/util-linux/.

2026-09-02 util-linux 2.42.3