Spore systemkall med strace og ltrace
Gå dypere inn i feilsøking ved å spore system- og bibliotekkallene en prosess utfører, slik at De nøyaktig ser hvor den stopper opp eller mislykkes.
Spore systemkall med strace og ltrace er en gratis leksjon i Bli ekspert på Linux-kommandolinjen på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Bli ekspert på Linux-kommandolinjen, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Bli ekspert på Linux-kommandolinjen inneholder totalt 4 leksjoner.
Når måleverdier ikke er nok
CPU-, minne- og I/O-verktøy forteller deg at noe går tregt. Hvis du vil finne ut hvorfor, sporer du hva en prosess faktisk ber kjernen om å gjøre. strace og ltrace gir deg innblikk i dette.
Hva strace viser
strace registrerer hvert systemkall: filåpninger, lesinger, nettverkssendinger og returverdiene deres, inkludert feil.
strace ls /tmpKoble til en prosess som kjører
Bruk -p PID for å spore noe som allerede kjører, for eksempel en tjeneste som har låst seg.
sudo strace -p 4567Filtrere bestemte systemkall
-e trace= begrenser utdataene til kallene du er interessert i, for eksempel bare filrelaterte kall.
strace -e trace=openat,read,write cat /etc/hostnameFinne manglende filer
Et klassisk bruksområde er å se hvilken fil et program ikke klarer å åpne. Se etter ENOENT (ingen slik fil) i utdataene.
strace -e trace=openat myapp 2>&1 | grep ENOENTOppsummere med -c
-c skriver ut en profil: hvilke systemkall som brukte mest tid, og hvor ofte hvert av dem ble kalt.
strace -c ls -R /usr/shareMåle tiden for kall
-T viser hvor lang tid hvert systemkall tok, og -t legger til tidsstempler, slik at du kan finne nøyaktig hvor en prosess blir blokkert.
strace -T -e trace=read myappFølge underprosesser
-f følger fork-operasjoner, slik at du også sporer underprosesser. Dette er viktig for servere som starter arbeidsprosesser.
strace -f -p 4567Lagre utdata i en fil
Sporingsdata inneholder mye støy; -o skriver dem til en fil som du kan bruke grep på senere, uten å fylle terminalen.
strace -o trace.log -f myappltrace for bibliotekkall
Mens strace viser kjernekall, viser ltrace bibliotekkall som malloc eller strcmp, noe som er nyttig ved feilsøking på logikknivå.
ltrace ./myprogramEn fremgangsmåte for feilsøking
Når en tjeneste låser seg: koble til med strace -f -p, se etter et systemkall som aldri returnerer (ofte et blokkert read eller connect), så har du funnet hvor det stopper.
Rask sjekk
Hva slags aktivitet viser strace først og fremst?
Oppsummering
Du kan nå spore en prosess på systemkallnivå:
strace cmdeller-p PIDfor å koble til-e trace=filtrerer,-clager profiler, og-T/-tmåler tid-ffølger underprosesser, og-olagrer utdataltraceviser bibliotekkall
Se etter feil som ENOENT eller et systemkall som aldri returnerer.
Lær deg Bli ekspert på Linux-kommandolinjen med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Spore systemkall med strace og ltrace» gratis?
Ja – hele teksten i «Spore systemkall med strace og ltrace» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Bli ekspert på Linux-kommandolinjen-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Bli ekspert på Linux-kommandolinjen inneholder totalt 4 leksjoner.
Hva lærer jeg i «Spore systemkall med strace og ltrace»?
Gå dypere inn i feilsøking ved å spore system- og bibliotekkallene en prosess utfører, slik at De nøyaktig ser hvor den stopper opp eller mislykkes. Du øver på Bli ekspert på Linux-kommandolinjen med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Bli ekspert på Linux-kommandolinjen?
Ingen tidligere erfaring er nødvendig. Bli ekspert på Linux-kommandolinjen på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Spore systemkall med strace og ltrace»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Bli ekspert på Linux-kommandolinjen-leksjonen?
Ja. Alle Bli ekspert på Linux-kommandolinjen-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Overvåking av disk-I/O: `iostat`, `iotop`
- Verktøy for minne- og CPU-ytelse
- Avanserte teknikker for logging og feilsøking
- Spore systemkall med strace og ltrace