blkparse(1): Skillnad mellan sidversioner

Från Wiki.linux.se -Linux wikipedia på Svenska.
Hoppa till navigering Hoppa till sök
 
(En mellanliggande sidversion av samma användare visas inte)
Rad 138: Rad 138:
; '''C -- complete'''
; '''C -- complete'''
: En tidigare utfärdad begäran har slutförts. Utdatan visar sektor och
: En tidigare utfärdad begäran har slutförts. Utdatan visar sektor och
  storlek för begäran samt om den lyckades eller misslyckades.
storlek för begäran samt om den lyckades eller misslyckades.


; '''D -- issued'''
; '''D -- issued'''
: En begäran som tidigare låg i blocklagrets kö eller i I/O-schemaläggaren
: En begäran som tidigare låg i blocklagrets kö eller i I/O-schemaläggaren
  har skickats till drivrutinen.
har skickats till drivrutinen.


; '''I -- inserted'''
; '''I -- inserted'''
: En begäran skickas till I/O-schemaläggaren för att läggas till i den
: En begäran skickas till I/O-schemaläggaren för att läggas till i den
  interna kön och senare hanteras av drivrutinen. Begäran är fullständigt
interna kön och senare hanteras av drivrutinen. Begäran är fullständigt
  formad vid denna tidpunkt.
formad vid denna tidpunkt.


; '''Q -- queued'''
; '''Q -- queued'''
: Markerar avsikten att köa I/O på den angivna platsen. Det finns ännu
: Markerar avsikten att köa I/O på den angivna platsen. Det finns ännu
  ingen verklig begäran.
ingen verklig begäran.


; '''B -- bounced'''
; '''B -- bounced'''
: Datasidorna kopplade till denna ''bio'' kan inte nås av hårdvaran och
: Datasidorna kopplade till denna ''bio'' kan inte nås av hårdvaran och måste studsas till en lägre minnesadress. Detta orsakar en kraftig prestandaförsämring eftersom data måste kopieras till/från kärnbuffertar.Vanligen kan detta lösas med bättre hårdvara — antingen en bättre I/O-styrenhet eller en plattform med IOMMU.
  måste studsas till en lägre minnesadress. Detta orsakar en kraftig
  prestandaförsämring eftersom data måste kopieras till/från kärnbuffertar.
  Vanligen kan detta lösas med bättre hårdvara — antingen en bättre
  I/O-styrenhet eller en plattform med IOMMU.


; '''M -- back merge'''
; '''M -- back merge'''
: Det finns redan en tidigare insatt begäran som slutar precis där denna
: Det finns redan en tidigare insatt begäran som slutar precis där denna I/O börjar, så I/O-schemaläggaren kan slå ihop dem.
  I/O börjar, så I/O-schemaläggaren kan slå ihop dem.


; '''F -- front merge'''
; '''F -- front merge'''
: Samma som back merge, men denna I/O slutar där en tidigare insatt
: Samma som back merge, men denna I/O slutar där en tidigare insatt begäran börjar.
  begäran börjar.


; '''M -- front or back merge'''
; '''M -- front or back merge'''
Rad 172: Rad 166:


; '''G -- get request'''
; '''G -- get request'''
: För att skicka någon typ av begäran till en blockenhet måste först en
: För att skicka någon typ av begäran till en blockenhet måste först en ''struct request''-behållare allokeras.
  ''struct request''-behållare allokeras.


; '''S -- sleep'''
; '''S -- sleep'''
: Det fanns inga tillgängliga begäransstrukturer, så utfärdaren måste
: Det fanns inga tillgängliga begäransstrukturer, så utfärdaren måste vänta tills en frigörs.
  vänta tills en frigörs.


; '''P -- plug'''
; '''P -- plug'''
: När I/O köas till en tidigare tom blockenhetskö kommer Linux att plugga
: När I/O köas till en tidigare tom blockenhetskö kommer Linux att plugga kön i väntan på framtida I/O som kan läggas till innan datan behövs.
  kön i väntan på framtida I/O som kan läggas till innan datan behövs.


; '''U -- unplug'''
; '''U -- unplug'''
: Det finns redan begäransdata i enheten; börja skicka begäranden till
: Det finns redan begäransdata i enheten; börja skicka begäranden till
  drivrutinen. Detta kan ske automatiskt om en timeout har passerat
drivrutinen. Detta kan ske automatiskt om en timeout har passerat
  (se nästa post) eller om ett antal begäranden har lagts till i kön.
(se nästa post) eller om ett antal begäranden har lagts till i kön.


; '''T -- unplug due to timer'''
; '''T -- unplug due to timer'''
: Om ingen begär den I/O som köades efter att kön pluggades kommer Linux
: Om ingen begär den I/O som köades efter att kön pluggades kommer Linux
  automatiskt att unplugga den efter en viss tid.
automatiskt att unplugga den efter en viss tid.


; '''X -- split'''
; '''X -- split'''
: På RAID- eller device-mapper-konfigurationer kan inkommande I/O gå över
: På RAID- eller device-mapper-konfigurationer kan inkommande I/O gå över
  en enhets- eller intern zon-gräns och måste delas upp i mindre delar
en enhets- eller intern zon-gräns och måste delas upp i mindre delar
  för att kunna hanteras. Detta kan indikera ett prestandaproblem på grund
för att kunna hanteras. Detta kan indikera ett prestandaproblem på grund
  av en dålig RAID/DM-konfiguration, men kan också vara normalt gränsbeteende.
av en dålig RAID/DM-konfiguration, men kan också vara normalt gränsbeteende.
  DM är särskilt dåligt på detta och kommer att klona mycket I/O.
DM är särskilt dåligt på detta och kommer att klona mycket I/O.


; '''A -- remap'''
; '''A -- remap'''
: För staplade enheter mappas inkommande I/O om till enheten under den i
: För staplade enheter mappas inkommande I/O om till enheten under den i
  I/O-stacken. Remap-åtgärden visar exakt vad som mappas om till vad.
I/O-stacken. Remap-åtgärden visar exakt vad som mappas om till vad.


; '''R -- requeue'''
; '''R -- requeue'''

Nuvarande version från 25 april 2026 kl. 11.14

NAMN

blkparse — producera formaterad utdata från händelseströmmar för blockenheter

SYNOPSIS

blkparse [ alternativ ]

BESKRIVNING

Verktyget blkparse försöker kombinera händelseströmmar för olika enheter på olika CPU:er och producera en formaterad utdata av händelseinformationen. Mer specifikt tar det den maskinläsbara utdatan från verktyget blktrace och omvandlar den till ett snyggt formaterat och lättläst format.

Precis som för blktrace hjälper några detaljer om blkparse till att förstå kommandoradsalternativen nedan.

  • Som standard förväntar sig blkparse att köras i ett efterbehandlingsläge,
 där spårningshändelserna har sparats av en tidigare körning av
 blktrace, och blkparse kombinerar händelseströmmar och skriver ut
 formaterad data.
 blkparse kan köras live samtidigt med blktrace genom att ange
 -i - till blkparse och kombinera det med live-alternativet för
 blktrace. Ett exempel:
  % blktrace -d /dev/sda -o - | blkparse -i -
  
  • Du kan styra hur många händelser blkparse läser per batch via
 alternativet -b. Standardvärdet är 512.
  • Om du har sparat spårningshändelser i blktrace med andra utdatafilnamn
 (via alternativet -o till blktrace), måste du ange samma
 indatafilnamn via alternativet -i.
  • Formatet på utdatan kan styras via alternativen -f eller -F
 se UTDATABESKRIVNING OCH FORMATTERING för detaljer.

Som standard skickar blkparse formaterad data till standardutmatningen. Detta kan ändras via alternativet -o, eller så kan textutdata inaktiveras via alternativet -O. En sammanslagen binär ström kan produceras med alternativet -d.

ALTERNATIV

-A hex-mask, --set-mask=hex-mask
Sätt filtermasken till hex-mask; se blktrace(8) för masker.
-a mask, --act-mask=mask
Lägg till mask till nuvarande filter; se blktrace(8) för masker.
-D dir, --input-directory=dir
Lägg till dir före indatafilnamn.
-b batch, --batch={batch}
Batchstorlek för läsning från standard in.
-i file, --input=file
Anger basnamn för indatafiler — standard är
 device.blktrace.cpu.
Som nämnts ovan innebär -i - att köra i live-läge med blktrace
 (läser data från standard in).
-F typ,fmt, --format=typ,fmt
-f fmt, --format-spec=fmt
Anger utdataformat (se UTDATABESKRIVNING OCH FORMATTERING för detaljer).
Formen -f anger ett format för alla händelser.
Formen -F låter dig ange ett format för en viss händelsetyp.
 Det enskilda tecknet typ är en av åtgärdsspecifikationerna som
 beskrivs i ÅTGÄRDSIDENTIFIERARE.
-M, --no-msgs
När -d anges, hindrar detta meddelanden från att skrivas till filen.
 (Kan kraftigt minska storleken på den resulterande filen vid användning
 av CFQ I/O-schemaläggaren.)
-h, --hash-by-name
Hasha processer efter namn, inte PID.
-o file, --output=file
Utdatafil.
-O, --no-text-output
Generera inte textutdata; används endast för binär utdata (-d).
-d file, --dump-binary=file
Binär utdatafil.
-q, --quiet
Tyst läge.
-s, --per-program-stats
Visar data sorterad per program.
-S event, --sort-program-stats=event
Visar varje programs data sorterad efter programnamn eller I/O-händelse,
 såsom Queued, Read, Write och Complete. När -S anges ignoreras -s.
 Versalerna Q, R, W, C står för KB, medan q/r/w/c står för IO.
Om du vill sortera program efter hur mycket data de köade kan du använda:
  blkparse -i sda.blktrace. -q -S Q -o sda.parse
  
-t, --track-ios
Visa tidsdeltan per IO.
-w span, --stopwatch=span
Visa spårningar för det angivna intervallet span, där span kan vara:
end-time — visa spårningar från tid 0 till och med end-time (i ns)
eller
start:end-time — visa spårningar från tid start till och med
 end-time (i ns).
-v, --verbose
Mer utförlig marginalinformation vid mindre fel.
-V, --version
Visa version.

SPÅRNINGSÅTGÄRDER

Följande spårningsåtgärder känns igen:

C -- complete
En tidigare utfärdad begäran har slutförts. Utdatan visar sektor och

storlek för begäran samt om den lyckades eller misslyckades.

D -- issued
En begäran som tidigare låg i blocklagrets kö eller i I/O-schemaläggaren

har skickats till drivrutinen.

I -- inserted
En begäran skickas till I/O-schemaläggaren för att läggas till i den

interna kön och senare hanteras av drivrutinen. Begäran är fullständigt formad vid denna tidpunkt.

Q -- queued
Markerar avsikten att köa I/O på den angivna platsen. Det finns ännu

ingen verklig begäran.

B -- bounced
Datasidorna kopplade till denna bio kan inte nås av hårdvaran och måste studsas till en lägre minnesadress. Detta orsakar en kraftig prestandaförsämring eftersom data måste kopieras till/från kärnbuffertar.Vanligen kan detta lösas med bättre hårdvara — antingen en bättre I/O-styrenhet eller en plattform med IOMMU.
M -- back merge
Det finns redan en tidigare insatt begäran som slutar precis där denna I/O börjar, så I/O-schemaläggaren kan slå ihop dem.
F -- front merge
Samma som back merge, men denna I/O slutar där en tidigare insatt begäran börjar.
M -- front or back merge
En av ovanstående.
G -- get request
För att skicka någon typ av begäran till en blockenhet måste först en struct request-behållare allokeras.
S -- sleep
Det fanns inga tillgängliga begäransstrukturer, så utfärdaren måste vänta tills en frigörs.
P -- plug
När I/O köas till en tidigare tom blockenhetskö kommer Linux att plugga kön i väntan på framtida I/O som kan läggas till innan datan behövs.
U -- unplug
Det finns redan begäransdata i enheten; börja skicka begäranden till

drivrutinen. Detta kan ske automatiskt om en timeout har passerat (se nästa post) eller om ett antal begäranden har lagts till i kön.

T -- unplug due to timer
Om ingen begär den I/O som köades efter att kön pluggades kommer Linux

automatiskt att unplugga den efter en viss tid.

X -- split
På RAID- eller device-mapper-konfigurationer kan inkommande I/O gå över

en enhets- eller intern zon-gräns och måste delas upp i mindre delar för att kunna hanteras. Detta kan indikera ett prestandaproblem på grund av en dålig RAID/DM-konfiguration, men kan också vara normalt gränsbeteende. DM är särskilt dåligt på detta och kommer att klona mycket I/O.

A -- remap
För staplade enheter mappas inkommande I/O om till enheten under den i

I/O-stacken. Remap-åtgärden visar exakt vad som mappas om till vad.

R -- requeue
Lägg tillbaka en begäran i kön.

UTDATABESKRIVNING OCH FORMATTERING

Utdatan från blkparse kan anpassas för särskilda behov — särskilt för att förenkla parsning av utdatan och/eller begränsa fälten till dem som användaren vill se. Data för fält som kan skrivas ut inkluderar:

a
Åtgärd, en (kort) sträng (1 eller 2 tecken) — se tabellen nedan för fler detaljer
c
CPU-id
C
Kommando
d
RWBS-fält, en (kort) sträng (1–3 tecken) — se avsnittet nedan för fler detaljer
D
7-teckenssträng som innehåller major- och minor-nummer för händelsens
 enhet (separerade med kommatecken)
e
Felvärde
g
Cgroup-identifierare för den cgroup som genererade I/O:t. Observera att
 detta kräver lämpligt kärnstöd (kärnversion minst 4.14).
m
Minor-nummer för händelsens enhet
M
Major-nummer för händelsens enhet
n
Antal block
N
Antal byte
p
Process-ID
P
Visa paketdata — serie hexadecimala värden
s
Sekvensnummer
S
Sektornummer
t
Tidsstämpel (nanosekunder)
T
Tidsstämpel (sekunder)
u
Förfluten tid i mikrosekunder (kommandoradsalternativet -t)
U
Unsigned integer i nyttolasten
z
Absolut tid, som lokal tid i din tidszon, utan datum

Observera att användaren valfritt kan ange fältbredd och även en vänsterjusteringsflagga. Dessa föregår fältspecifikationen med ett %-tecken, följt av den valfria vänsterjusteringsflaggan (-), därefter bredden (ett decimaltal) och sedan fältet.

För att till exempel ange kommandot i ett 12-teckensfält som är vänsterjusterat:

-f "%-12C"

ÅTGÄRDSIDENTIFIERARE

Följande tabell visar de olika åtgärder som kan skrivas ut:

A
IO mappades om till en annan enhet
B
IO studsade
C
IO-slutförande
D
IO utfärdades till drivrutin
F
IO front-mergades med begäran i kön
G
Hämta begäran
I
IO lades in i begärandekön
M
IO back-mergades med begäran i kön
P
Plug-begäran
Q
IO hanterades av begärandekod
S
Sovbegäran
T
Unplug på grund av timeout
U
Unplug-begäran
X
Split

RWBS-BESKRIVNING

Detta är en kort sträng som innehåller tecken i följande ordning:

F
Flush
R
Read
W
Write
D
Discard
B
Barrier
N
Annan operation
F
Force Unit Access (FUA)
A
Readahead
S
Synkron
M
Meta

Ett av R, W, D eller N finns alltid med. Övriga tecken är valfria. Observera att F har två betydelser beroende på position.

STANDARDUTDATA

Standardhuvudet (eller de första visade fälten) innehåller:

"%D %2c %8s %5T.%9t %5p %2a %3d"

Uppdelat betyder detta:

%D
Visar händelsens major/minor för enheten som: %3d,%-3d.
%2c
CPU-ID (2-teckensfält).
%8s
Sekvensnummer.
%5T.%9t
5-teckensfält för sekunddelen av tidsstämpeln och ett 9-teckensfält för
 nanosekunderna i tidsstämpeln.
%5p
5-teckensfält för process-ID.
%2a
2-teckensfält för någon av åtgärderna.
%3d
3-teckensfält för RWBS-data.

Detta ser ut så här i praktiken:

    8,0    3        1     0.000000000   697  G   W 223490 + 8 [kjournald]

Rubriken är datan i denna rad fram till 223490 (startblock). Standardutdatan för alla händelsetyper inkluderar detta huvud.

STANDARDUTDATA PER ÅTGÄRD

C -- complete
Om en nyttolast finns närvarande visas den inom parentes efter huvudet,
 följt av felvärdet.
Om ingen nyttolast finns visas sektor och antal block (med ett plustecken
 emellan). Om alternativet -t angavs visas även den förflutna tiden.
 I båda fallen följs detta av felvärdet för slutförandet.
B -- bounced
D -- issued
I -- inserted
Q -- queued
Om en nyttolast finns visas antalet nyttolastbyte följt av nyttolasten i
 hexadecimal form inom parentes.
Om ingen nyttolast finns visas sektor och antal block (med ett
 plustecken emellan). Om alternativet -t angavs visas även den
 förflutna tiden inom parentes. I båda fallen följs detta av kommandot
 associerat med händelsen (inom hakparenteser).
F -- front merge
G -- get request
M -- back merge
S -- sleep
Startsektorn och antal block visas (med ett plustecken emellan), följt
 av kommandot associerat med händelsen (inom hakparenteser).
P -- plug
Kommandot associerat med händelsen (inom hakparenteser) visas.
U -- unplug
T -- unplug due to timer
Kommandot associerat med händelsen (inom hakparenteser) visas, följt av
 antalet utestående begäranden.
X -- split
Den ursprungliga startsektorn följt av den nya sektorn (separerade med
 ett snedstreck /) visas, följt av kommandot associerat med
 händelsen (inom hakparenteser).
A -- remap
Sektor och längd visas tillsammans med den ursprungliga enheten och
 sektoroffseten.

EXEMPEL

För att spåra I/O på enheten /dev/sda och tolka utdatan till ett människoläsbart format, använd följande kommando:

% blktrace -d /dev/sda -o - | blkparse -i -

(se blktrace(8) för mer information). Samma beteende kan uppnås med hjälpskriptet btrace. Kommandot

% btrace /dev/sda

har exakt samma effekt som föregående kommando. Se btrace(8) för mer information.

För att spåra I/O på en enhet och spara utdatan för senare bearbetning med blkparse, använd blktrace så här:

% blktrace /dev/sda /dev/sdb

Detta kommer att spåra I/O på enheterna /dev/sda och /dev/sdb och spara informationen i filerna sda respektive sdb i aktuell katalog. Denna spårningsinformation kan senare tolkas av verktyget blkparse:

% blkparse sda sdb

vilket skriver den tidigare inspelade spårningsinformationen i människoläsbar form till standardutmatningen.

FÖRFATTARE

blkparse skrevs av Jens Axboe, Alan D. Brunelle och Nathan Scott. Denna manualsida skapades utifrån dokumentationen för blktrace av Bas Zoetekouw.

RAPPORTERING AV FEL

Rapportera fel till <linux-btrace@vger.kernel.org>

UPPHOVSRÄTT

Copyright © 2006 Jens Axboe, Alan D. Brunelle och Nathan Scott. Detta är fri programvara. Du får vidaredistribuera kopior av den enligt villkoren i GNU General Public License <http://www.gnu.org/licenses/gpl.html>. Det finns INGEN GARANTI, i den utsträckning lagen tillåter.

Denna manualsida skapades för Debian av Bas Zoetekouw. Den härleddes från dokumentationen som tillhandahölls av författarna och får användas, distribueras och modifieras enligt villkoren i GNU General Public License, version 2.

På Debian-system finns texten till GNU General Public License i /usr/share/common-licenses/GPL-2.

SE ÄVEN

btrace(8), blktrace(8), verify_blkparse(1), blkrawverify(1), btt(1)

COLOPHON

Denna sida är en del av projektet blktrace (Linux block layer I/O tracer). Information om projektet finns på [okänt — om du vet, kontakta man-pages@man7.org] Det är inte känt hur fel för denna manualsida ska rapporteras; om du vet, skicka e-post till man-pages@man7.org. Denna sida hämtades från projektets uppströms Git-arkiv ⟨https://git.kernel.org/pub/scm/linux/kernel/git/axboe/blktrace.git⟩ den 2026-01-16. (Vid den tidpunkten var datumet för den senaste commit som hittades i arkivet 2025-12-10.) Om du upptäcker renderingsproblem i denna HTML-version av sidan, eller om du anser att det finns en bättre eller mer uppdaterad källa för sidan, eller om du har korrigeringar eller förbättringar av informationen i denna COLOPHON (som inte är en del av originalmanualsidan), skicka e-post till man-pages@man7.org

Sidslut

Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/blkparse.1.html Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till PC Service som har sponsrat Linux.se med webbhotell.