Monitor Disk I/O med iotop i Linux

Monitor Disk I/O med iotop i Linux
På Linux -servere har du mange prosesser som kjører, og hver av disse prosessene gjør noen I/O -operasjoner. Så disse prosessene bruker lagringsdisken båndbredde.

Vi kan bruke HTOP -kommandoen til å se en liste over alle løpsprosessene på Linux -serveren vår. Men hva om vi vil overvåke hvor mye diskbåndbredde hver av disse prosessene bruker? Vel, vi kan bruke iotop.

Iotop er et interaktivt I/O -overvåkingsverktøy på Linux akkurat som HTOP. Med Iotop kan du enkelt overvåke disklesing og skrive båndbreddebruk for hver kjøring behandlet på Linux.

I denne artikkelen skal jeg vise deg hvordan du installerer Iotop på populære Linux -distribusjoner og hvordan du bruker iotop til å overvåke disklesing og skrive båndbreddebruk per løpsprosess. Jeg skal bruke Ubuntu 18.04 LTS for demonstrasjonen, men de samme kommandoene skal jobbe med alle moderne Linux -distribusjoner. Så la oss komme i gang.

Installere iotop på Ubuntu:

Iotop er tilgjengelig i det offisielle pakkelagde av Ubuntu. Så du kan enkelt laste ned Iotop ved hjelp av APT Package Manager.

Oppdater først Apt Package Repository Cache med følgende kommando:

$ sudo apt oppdatering

Nå, installer Iotop med følgende kommando:

$ sudo apt install Iotop

Iotop skal installeres.

Nå, sjekk om Iotop jobber med følgende kommando:

$ iotop -Versjon

iotop fungerer som du kan se.

Installere iotop på Centos 7:

IOTOP er tilgjengelig i det offisielle pakkelagde av CentOS 7. Du kan enkelt installere den med Yum Package Manager som følger:

$ sudo yum installer iotop -y

Grunnleggende bruk av iotop:

For å overvåke diskbruken til hver løpsprosesser med Iotop, kjør iotop som følger:

$ sudo iotop

Som du ser åpnes det interaktive vinduet iotop. Her kan du se hvilken prosess som bruker disken.

Som du kan se på skjermdumpen nedenfor, øverst på venstre side, vises den totale diskenes hastighet/båndbredde. På samme måte, øverst til høyre, vises den totale diskskrivhastigheten/båndbredden.

Som du ser viser iotop kolonner for,

  • Tråd ID (Tid).
  • I/O prioritert klasse/nivå (Prio).
  • Eieren av tråden med TID (BRUKER).
  • disken lest per sekund (Disklesing).
  • diskskriven per sekund (Diskskriv).
  • Prosentandelen av tiden tråden brukte mens du byttet inn (Swapin).
  • Prosentandelen av tiden tråden brukte på å vente på I/O (Io>).
  • Kommandoen tråden kjører (KOMMANDO).

For de fleste tilfeller tilsvarer tråd -ID (TID) prosess -ID (PID).

Viser prosesser som bare gjør I/O -operasjoner:

Som standard viser Iotop alle løpsprosessene enten de gjør I/O -operasjoner eller ikke. Så listen er veldig lang. Det er vanskeligere å finne prosessene vi trenger og overvåke dem.

Heldigvis lar Iotop deg bare vise prosessene som gjør I/O -operasjoner. For å gjøre det, kan du bruke -o eller -bare Alternativ for iotop.

For å vise bare prosessene som utfører I/O -operasjoner, kjør iotop som følger:

$ sudo iotop -o

Eller

$ sudo iotop -bare

Som du ser, driver prosessen med TID 1345 og 1957 I/O -operasjoner akkurat nå.

Dette er kommandoen som jeg kjører for å simulere I/O -operasjoner i denne artikkelen.

$ dd if =/dev/urandom av = iotest.IMG BS = 1M telling = 1000

MERK: Hvis du ikke har startet iotop med -o eller -bare alternativet, kan du fremdeles bytte til denne modusen ved å trykke på o Nøkkel på tastaturet ditt. Du kan veksle mellom disse to modusene iToP ved å bruke o nøkkel.

Viser total I/O -bruk per prosess:

Iotop lar deg også overvåke hvor mye disk leser og disk skriver totalt hver prosesser har gjort etter at Iotop også startet. For å gjøre det, må du bruke -en eller -akkumulert alternativ. Du kan også bruke den med -o eller -bare alternativet også.

For eksempel,

$ sudo iotop -ao

Som du ser, vises den totale disken og disken skriver per prosess.

Viser PID i stedet for TID:

Som jeg har sagt tidligere, er tråd -ID (TID) den samme som prosess -ID (PID) mesteparten av tiden. Du kan bruke disse om hverandre. Men hvis du virkelig vil være sikker på at du jobber med nøyaktig prosess -ID (PID), så har Iotop -P eller -prosesser Alternativ som du kan bruke til å endre standard TID -kolonnen til PID -kolonnen.

For å vise PID -kolonnen i stedet for TID -kolonnen, kjør iotop som følger:

$ sudo iotop -p

Eller

$ sudo iotop -prosesser

Som du kan se, erstattes TID -kolonnen av PID -kolonnen.

Filtrering av Iotop -prosesser:

Du kan filtrere Iotop -prosesser basert på prosess -ID (PID), tråd -ID (TID) og den bearbeidede eieren (bruker).

Hvis du for eksempel vil overvåke disk I/O for prosessene med PID 2024 og 2035, vil du kjøre Iotop som følger:

$ sudo iotop -p -p 2024 -p 2035

Som du ser, blir bare prosessene med PID 2024 og 2035 overvåket.

Hvis du bare ville overvåke disken I/O på trådene med TID 2024 og 2035, ville du kjørt iotop som følger:

$ sudo iotop -p -p 2024 -p 2035

Igjen, la oss si, du vil overvåke disken I/O av prosessene som kjører som brukeren Shovon. For å gjøre det, kjør iotop som følger:

$ sudo iotop -p -u shovon

Som du ser, er det bare prosessene som kjører som brukeren Shovon er vist.

Hvis du vil overvåke flere brukere samtidig, kan du gjøre det også.

For eksempel å overvåke disk I/O av alle prosessene som brukerne Shovon og Lily kjører, kjør iotop som følger:

$ sudo iotop -p -u shovon -u lilje

Så det er i utgangspunktet slik du bruker Iotop til å overvåke disk I/O i Linux. Takk for at du leste denne artikkelen.