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.