Przejdź do głównej zawartości

perf


  • perf – narzędzie dostarczane z jądrem Linux, umożliwiające monitorowanie i analizę wydajności procesów, wątków, CPU oraz całego systemu.
  • Główne zastosowania: identyfikacja wąskich gardeł, analiza liczników sprzętowych, śledzenie zdarzeń jądra.
  • Dostępność: w większości dystrybucji Linux w pakiecie linux-tools lub perf.

Okno terminala
perf [polecenie] [opcje] [argumenty]
  • Popularne podpolecenia: stat, record, report, top, list.

ParametrOpis
statZbiera statystyki wydajności dla podanej komendy lub procesu.
recordRejestruje zdarzenia wydajności w pliku danych.
reportGeneruje raport z pliku utworzonego przez record.
topWyświetla na żywo funkcje zużywające najwięcej zasobów CPU.
listWyświetla listę dostępnych zdarzeń do monitorowania.
annotatePokazuje szczegóły kodu źródłowego/assemblera dla próbek.

Okno terminala
# 1) Statystyki wydajności dla komendy
perf stat ls -R /
Okno terminala
# 2) Rejestracja danych i późniejszy raport
perf record ./program && perf report
Okno terminala
# 3) Monitorowanie w czasie rzeczywistym
perf top
Okno terminala
# 4) Lista dostępnych zdarzeń
perf list

  • Do monitorowania całego systemu wymagane są uprawnienia administratora.
  • perf może znacząco obciążać system przy intensywnym zbieraniu danych.
  • Wyniki analizy zależą od dostępnych liczników sprzętowych w CPU.

Błąd / KomunikatPrzyczynaRozwiązanie
permission deniedBrak uprawnień do zbierania zdarzeń jądra.Uruchom z sudo lub dostosuj /proc/sys/kernel/perf_event_paranoid.
No such file or directory przy recordBrak programu lub błędna ścieżka.Sprawdź nazwę pliku i lokalizację.
Brak symboli w raporcieBrak zainstalowanych pakietów z debug-symbols.Zainstaluj symbole debugowania dla używanych pakietów.