GNU/Linux >> Znalost Linux >  >> Linux

Linux perf:Jak používat Command and Profiler

Úvod

Linux perf tool je lehký nástroj příkazového řádku pro profilování a monitorování výkonu CPU v systémech Linux. Přestože je nástroj jednoduchý, poskytuje podrobné informace, které pomáhají při analýze CPU.

Příkaz obsahuje mnoho dílčích příkazů pro shromažďování, sledování a analýzu dat událostí CPU.

Tento průvodce demonstruje nástroj pro výkon pomocí příkladů.

Předpoklady

  • Přístup k terminálu.
  • Přístup k rootovi nebo uživateli s právy sudo.
  • Textový editor, jako je nano nebo Vi/Vim.

Jak nainstalovat perf

Program perf není v systémech Linux předinstalovaný. Instalace se liší podle distribuce Linuxu:

  • Ubuntu/Debian
sudo apt install linux-tools-$(uname -r) linux-tools-generic
  • RHEL/CentOS
sudo yum install perf
  • Fedora
sudo dnf install perf

Ověřte instalaci pomocí:

perf --version

Na výstupu se vytiskne číslo verze, což znamená, že instalace byla úspěšná.

Povolit běžným uživatelům používat výkon

perf příkaz ve výchozím nastavení vyžaduje sudo privilegia. Aby běžní uživatelé mohli používat perf , proveďte následující:

1. Přepněte na uživatele root:

sudo su -

2. Zadejte následující příkaz:

echo 0 > /proc/sys/kernel/perf_event_paranoid

Příkaz umožňuje běžným uživatelům používat nástroj perf v aktuální relaci.

3. Přepněte zpět na běžného uživatele pomocí:

exit

Chcete-li změny zachovat, proveďte následující:

1. Upravte sysctl konfigurační soubor:

sudo nano /etc/sysctl.conf

2. Přidejte do souboru následující:

kernel.perf_event_paranoid = 0

3. Uložte změny a ukončete nano.

Syntaxe příkazu Linux perf

perf syntaxe příkazu je:

perf <options> subcommand <options/arguments>

Nástroj perf funguje jako git. Funguje jako rozhraní pro různé dílčí příkazy a různé činnosti. Spuštění příkazu bez jakýchkoli voleb nebo argumentů zobrazí seznam dostupných dílčích příkazů.

Dílčí příkazy výkonu Linux

Níže je uvedena tabulka s běžně používaným perf dílčí příkazy:

Dílčí příkaz Popis
annotate Čte perf.data a zobrazí anotovaný kód.
list Uvádí seznam všech měřitelných událostí.
stat Shromažďuje statistiky výkonu.
record Zaznamenává vzorky do perf.data .
report Čte perf.data a zobrazí profil.
script Čte perf.data a zobrazí výstup trasování.
top Nástroj pro profilování.

Dílčí příkazy mají další možnosti. Chcete-li zobrazit volby pro jednotlivé dílčí příkazy, spusťte:

perf <subcommand> -h

Výstup zobrazí stručné okno nápovědy pro konkrétní dílčí příkaz.

Příklady příkazů Linux perf

Chcete-li otestovat perf používáme malou instanci BMC s0.d1 phoenixNAP se systémem Ubuntu 18.04.

Poznámka: Pro další případy použití malé instance BMC se podívejte na některé z našich průvodců:

  • Nastavení brány firewall na instanci BMC s0.d1.small
  • Jak nastavit Load Balancer na serveru s0.d1.small BMC
  • Nastavení prostředí Sandbox na instanci S.0 BMC

Při profilování CPU pomocí perf Typickým pracovním postupem je použití:

1. perf list najít události.

2. perf stat k počítání událostí.

3. perf record k zápisu událostí do souboru.

4. perf report pro procházení nahraného souboru.

5. perf script k výpisu událostí po zpracování.

Výstupy se liší podle systému a místně dostupných zdrojů.

1. Seznam dostupných událostí

Seznam všech měřitelných událostí pomocí perf s list dílčí příkaz:

sudo perf list

Výstup obsahuje seznam všech podporovaných událostí bez ohledu na typ. Bez sudo , příkaz zobrazí kratší seznam. Při odkazování na události v jiných dílčích příkazech použijte -e následuje název události z prvního sloupce.

Přidejte parametr filtru za příkaz pro omezení seznamu podle názvu události (první sloupec) nebo typu události (druhý sloupec). Například zobrazit pouze hardwarové události pomocí:

sudo perf list hardware

Nebo alternativně:

sudo perf list hw

Výstup zobrazuje filtrovaný výsledek na základě poskytnutého parametru nebo parametrů.

2. Zobrazit profil systému CPU v reálném čase

Chcete-li zobrazit profil CPU v reálném čase, použijte top dílčí příkaz:

sudo perf top

Příkaz zobrazuje vzorkované funkce v reálném čase, podobně jako příkaz Linux top. Výstup vytiskne následující tři sloupce v pořadí zleva doprava:

1. Využití CPU vázané na funkci vyjádřenou v procentech.

2. Knihovna nebo program, který funkci používá.

3. Symbol a název funkce, kde [k] je prostor jádra a [.] je uživatelský prostor.

Ve výchozím nastavení perf top monitoruje všechny online CPU. Další možnosti umožňují:

  • Monitorování všech CPU (včetně nečinných) (-a ).
  • Monitorování konkrétních procesorů (-C ).
  • Ovládání vzorkovací frekvence (-F ).

Chcete-li během režimu prohlížení zobrazit další možnosti, stiskněte h .

Chcete-li profiler ukončit a vrátit se k terminálu, stiskněte q .

3. Zobrazit statistiky výkonu CPU pomocí perf

Chcete-li zobrazit statistiku výkonu CPU pro všechny standardní hardwarové a softwarové události celého CPU, spusťte:

sudo perf stat -a sleep 5

Výstup zobrazuje podrobnou zprávu pro celý systém shromážděnou během pěti sekund. Bez sleep 5 , systém měří až do ukončení pomocí CTRL +C .

4. Zobrazit výkon procesoru pro příkaz

Chcete-li zkontrolovat statistiku výkonu CPU pro konkrétní příkaz, spusťte:

sudo perf stat <command>

Zkontrolujte například ls příkaz s:

sudo perf stat ls

Celková doba trvání příkazu se zobrazuje jako uplynulý čas na konci výstupu.

5. Zobrazit výkon procesoru pro proces

Připojte statistiky výkonu CPU ke konkrétnímu běžícímu procesu pomocí -p tag a poskytnutí ID procesu (PID):

sudo perf -p <PID> sleep 5

Výstup shromažďuje a zobrazuje statistiky výkonu pro daný proces.

6. Počítat systémová volání událostí podle typu

Chcete-li počítat systémová volání jádra Linuxu podle typu, spusťte:

sudo perf stat -e 'syscalls:sys_enter_*' -a sleep 5

Po pěti sekundách výstup zobrazí všechna celosystémová volání a jejich počet.

7. Zaznamenejte cykly CPU

Cykly CPU jsou hardwarovou událostí. Chcete-li zaznamenávat cykly CPU, použijte record dílčí příkaz a zadejte název události s -e tag:

sudo perf record -e cycles sleep 10

Záznam uloží data do perf.data soubor. Výstup vytiskne velikost souboru a počet vzorků dat, který obsahuje.

8. Zobrazit výsledky výkonu

Chcete-li zobrazit výsledky výkonu z perf.data soubor, spusťte:

sudo perf report

Příkaz pomáhá číst perf.data soubor, zobrazující všechny shromážděné události a statistiky. Chcete-li prohlížeč opustit, stiskněte CTRL +C .

9. Upravit výstupní formát vzorku

Chcete-li zobrazit ukázkový výstup ve standardním výstupním formátu, spusťte:

sudo perf report --stdio

Mezi další úpravy patří zobrazení čísla vzorku pro každou událost (-n ) a zobrazení konkrétních sloupců (--sort <column name> ). Například:

sudo perf report -n --sort comm,symbol --stdio

Výstup přidá sloupec pro číslo vzorku a informace o příkazu a symbolu.

10. Zobrazit výstup trasování

Použijte script dílčí příkaz pro výpis všech událostí z perf.dat A. Například:

sudo perf script

Výstup vytiskne perf.data podrobnosti v časovém pořadí. Použijte script dílčí příkaz jako data po zpracování.

11. Zobrazit záhlaví trasování

Chcete-li zobrazit všechny události z perf.data s dalšími informacemi v záhlaví trasování spusťte:

sudo perf script --header

Výstup zobrazuje informace o záhlaví souboru, například kdy začalo trasování, jak dlouho trvalo, informace o CPU a příkaz, který načetl data. Seznam událostí je za informací v záhlaví.

12. Vypsat nezpracovaná data

Vypsat nezpracovaná data jako hexadecimální z perf.data použijte -D možnost:

sudo perf script -D

Výsledkem jsou nezpracované informace o trasování událostí ve formátu ASCII. Tato možnost je užitečná pro ladění událostí.

13. Anotace dat

Chcete-li data anotovat a dále je rozebírat, použijte annotate dílčí příkaz:

sudo perf annotate --stdio -v

-v možnost poskytuje podrobný výstup. Výsledek ukazuje zdrojový kód a rozebrání událostí.

Závěr

Poté, co si projdete příklady v této příručce, znáte základy používání Linuxu perf příkaz a některé hlavní dílčí příkazy. Pomocí příkazu man zobrazíte úplnou dokumentaci nástroje pro analýzu výkonu a dílčích příkazů.


Linux
  1. Jak používat Linuxový příkaz grep

  2. Jak používat příkaz id v Linuxu

  3. Jak používat příkaz „screen“ v Linuxu

  1. Jak používat příkaz historie v Linuxu

  2. Jak vytvořit alias a používat příkaz Alias ​​v Linuxu

  3. Jak nainstalovat a používat příkaz Ping v Linuxu

  1. Jak používat příkaz historie Linuxu

  2. Jak používat příkaz xargs pro Linux

  3. Jak používat Linuxový příkaz tee