Startpagina > Pakket- en systeembeheer > perf

perf: Linux prestatieanalyse-tool

perf is een krachtige prestatiebewakings- en analyse-tool ingebouwd in de Linux-kernel. Het wordt gebruikt om knelpunten in de prestaties van applicaties en systemen te identificeren en te optimaliseren door diverse hardware- en software-gebeurtenissen bij te houden, zoals CPU-gebruik, cachemissers en systeemoproepen. Het werkt op kernelniveau en levert zeer gedetailleerde en nauwkeurige prestatiestatistieken.

Overzicht

perf is een essentieel hulpmiddel voor ontwikkelaars en systeembeheerders om prestatieproblemen te diagnosticeren en te optimaliseren. Via verschillende subcommando's biedt het uitgebreide prestatieanalysefuncties, zoals het verzamelen van statistieken, het vastleggen van gebeurtenissen en het genereren van rapporten.

Belangrijkste functies

  • CPU-profilering (CPU-gebruik, analyse van aanroepstacks)
  • Hardware-gebeurtenissenbewaking (cachemissers, branch prediction misses, etc.)
  • Software-gebeurtenissenbewaking (scheduling-gebeurtenissen, page faults, etc.)
  • Systeemoproep-tracering en -analyse
  • Dynamische tracering (kprobes, uprobes)

Belangrijkste opties (subcommando's)

perf voert functies uit via verschillende subcommando's. Elk subcommando heeft zijn eigen unieke opties.

perf stat: Statistieken verzamelen

perf record: Prestatiegegevens vastleggen

perf report: Vastgelegde gegevens analyseren

perf list: Lijst van beschikbare gebeurtenissen

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`perf` Voer het commando uit.

Combineer deze opties en voer de opdracht virtueel uit met de AI.

Gebruiksvoorbeelden

Diverse gebruiksvoorbeelden van het perf-commando.

Statistieken voor ls-commando bekijken

perf stat ls

Controleert basis prestatie-statistieken zoals CPU-cycli, aantal instructies en cachemissers tijdens de uitvoering van het ls-commando.

Specifiek proces 5 seconden monitoren

perf stat -p 1234 sleep 5

Monitort de prestatie-statistieken van het proces met PID 1234 gedurende 5 seconden. (Vervang door de daadwerkelijke PID)

Aanroepgrafiek opnemen tijdens applicatie-uitvoering

perf record -g ./my_app

Legt prestatiegegevens vast, inclusief informatie over de aanroepstack van functies, tijdens de uitvoering van my_app. De vastgelegde gegevens worden opgeslagen in het bestand perf.data.

Vastgelegde gegevens analyseren

perf report

Analyseert interactief het perf.data-bestand, gegenereerd door perf record, om prestatieknelpunten visueel te identificeren.

Lijst van beschikbare hardware-gebeurtenissen bekijken

perf list hw

Controleert de lijst van alle hardware-prestatiegebeurtenissen die perf kan bewaken op het huidige systeem.

Installatie

perf is mogelijk niet standaard geïnstalleerd op de meeste Linux-distributies. U kunt het installeren met de volgende commando's.

Debian/Ubuntu

sudo apt update
sudo apt install linux-tools-common linux-tools-$(uname -r)

Commando om perf te installeren op Debian- of Ubuntu-gebaseerde systemen. U moet het linux-tools-pakket installeren dat overeenkomt met uw kernelversie.

CentOS/RHEL/Fedora

sudo yum install perf
# of sudo dnf install perf (Fedora)

Commando om perf te installeren op CentOS-, RHEL- of Fedora-gebaseerde systemen.

Tips & Aandachtspunten

Handige tips en aandachtspunten bij het gebruik van perf.

Root-rechten

De meeste perf-commando's vereisen root-rechten (sudo) omdat ze systeembrede prestatiegegevens verzamelen.

  • Als u de foutmelding 'Operation not permitted' krijgt bij het uitvoeren van een perf-commando, probeer dan sudo te gebruiken.

Kernel-symbolen laden

Als functienamen in 'perf report' als 'unknown' worden weergegeven, moeten de kernel-symbolen worden geladen. Dit kan door het installeren van het 'kernel-debuginfo'- of 'kernel-devel'-pakket.

  • CentOS/RHEL: `sudo debuginfo-install kernel`
  • Ubuntu/Debian: `sudo apt install linux-image-$(uname -r)-dbg`

Overhead

Perf verzamelt zeer gedetailleerde gegevens, dus het gebruik van 'perf record' met een hoge samplingfrequentie kan een kleine overhead op het systeem veroorzaken. Wees voorzichtig bij gebruik in productieomgevingen.

  • Op prestatiegevoelige systemen, begin met een lage samplingfrequentie (-F optie) om de overhead te minimaliseren.

Gebruik van perf top

'perf top' is een handig subcommando dat in realtime de functies met het hoogste CPU-gebruik weergeeft. Het is geschikt voor eenvoudige prestatiebewaking.

  • Gebruik 'perf top' om snel de functies te identificeren die momenteel de meeste CPU-tijd op uw systeem verbruiken.

Hétzelfde categoriecommando