Praćenje U/I diska poslužitelja: iostat i dstat – vodič | INTROSERV
EUR
european

EUR

usa

USD

Croatia Hr
Ex. VAT Ex. VAT 0%

Praćenje U/I-ja diska pomoću alata iostat i dstat

Uvod

Praćenje ulazno-izlaznih operacija diska (disk I/O) jedan je od ključnih zadataka pri radu poslužitelja u hosting infrastrukturi. Diskovni podsustav izravno utječe na performanse web-usluga, baza podataka, virtualnih strojeva, kontejnera i pozadinskih zadataka. Čak i uz dovoljno RAM-a i slobodnih procesorskih resursa, preopterećen ili spor disk može postati usko grlo cijelog sustava.

Ovaj priručnik namijenjen je administratorima sustava, DevOps inženjerima i vlasnicima poslužitelja. Obuhvaća alate iostat i dstat, načela njihova rada, tumačenje metrika te praktičan pristup pronalaženju uskih grla U/I-ja diska u hosting okruženju.

Opće informacije i načela rada

U/I diska u poslužiteljskoj infrastrukturi

Ulazno-izlazne operacije diska uključuju čitanje i pisanje podataka na blokovske uređaje. U stvarnim hosting scenarijima opterećenje diskovnog podsustava najčešće stvaraju:

  • baze podataka (MySQL, MariaDB, PostgreSQL);
  • web-aplikacije s dinamičkim sadržajem;
  • poštanske usluge;
  • sigurnosno kopiranje i sinkronizacija podataka;
  • bilježenje (logiranje);
  • swap i privremene datoteke;
  • korisničke skripte i cron zadaci.

Uska grla mogu nastati zbog sporih uređaja za pohranu, snažnog nadmetanja među procesima, neoptimalnih planera U/I-ja, nepravilnog rada predmemorije ili posebnosti virtualizacije.

Namjena alata iostat i dstat

iostat je alat iz paketa sysstat namijenjen prikupljanju detaljne statistike o opterećenju procesora i diskovnih uređaja. Glavni je zadatak alata iostat prikazati koliko se intenzivno koristi određeni disk, postoji li red zahtjeva te koliko je prosječno vrijeme čekanja operacija.

dstat je svestran alat za nadzor koji u stvarnom vremenu prikazuje statistiku više podsustava istodobno: procesora, memorije, diska, mreže, procesa. Omogućuje povezivanje aktivnosti diska s ukupnim opterećenjem poslužitelja i prikladan je za brzu dijagnostiku.

Tip

Ovi se alati međusobno nadopunjuju: iostat daje točnu sliku na razini uređaja, a dstat pruža kontekst cijelog sustava.

Preduvjeti i zahtjevi

Prije početka analize moraju biti ispunjeni sljedeći uvjeti:

  • Operacijski sustav Linux (Debian, Ubuntu, AlmaLinux, Rocky Linux, CentOS).
  • SSH pristup poslužitelju.
  • Root ovlasti ili mogućnost izvršavanja naredbi putem sudo.

Provjera inačice operacijskog sustava:

cat /etc/os-release

Instalacija potrebnih paketa:

Debian / Ubuntu:

sudo apt update sudo apt install sysstat dstat

CentOS / RHEL / AlmaLinux / Rocky Linux:

sudo yum install sysstat dstat # or sudo dnf install sysstat dstat

Provjera rada sysstata:

systemctl status sysstat

Ako je usluga aktivna, prikazat će se odgovarajuće informacije:

root@server:~# systemctl status sysstat ● sysstat.service - Resets System Activity Logs Loaded: loaded (/usr/lib/systemd/system/sysstat.service; enabled; preset: enabled) Active: active (exited) since Tue 2025-12-23 10:35:35 UTC; 16min ago Docs: man:sa1(8) man:sadc(8) man:sar(1) Main PID: 731 (code=exited, status=0/SUCCESS) CPU: 7ms

Pregled i analiza korak po korak

Osnovna analiza diska pomoću alata iostat

Alat iostat koristi se za procjenu opterećenja procesora i diskovnog podsustava te za otkrivanje kašnjenja i redova U/I-ja.

Sintaksa:

sudo iostat [options] [interval] [count]

Najčešće korišteni parametri:

  • -x - proširena statistika;
  • -d - samo podaci o diskovima;
  • -k - ispis u kilobajtima;
  • -p - statistika za particije ili određeni uređaj.

Osnovni primjer:

sudo iostat -x

Dinamička analiza:

sudo iostat -xk 5 3

Interval i broj uzoraka omogućuju praćenje promjena opterećenja tijekom vremena, umjesto prosječnog stanja od pokretanja sustava.

Primjer ispisa alata iostat

Ključne metrike procesora:

  • %iowait - postotak vremena u kojem je procesor besposlen čekajući završetak operacija U/I-ja. Porast ove metrike upućuje na utjecaj diska na ukupne performanse.
  • %steal - relevantno za virtualne poslužitelje; prikazuje »ukradeno« procesorsko vrijeme.

Ključne metrike diska:

  • %util - postotak vremena u kojem je disk bio zauzet. Vrijednosti koje su dulje vrijeme iznad 80-90 % upućuju na zasićenje uređaja.
  • r_await - prosječno vrijeme (ms) do završetka operacija čitanja (uključujući vrijeme u redu).
  • w_await - prosječno vrijeme (ms) do završetka operacija pisanja (uključujući vrijeme u redu).
  • aqu-sz - (avg queue size) prosječna duljina reda zahtjeva prema disku. Vrijednost > 1 već upućuje na stvaranje reda. Vrijednost > 2-4 za HDD / > 1-2 za SSD znak je da disk ne stiže pratiti opterećenje.

Razlika između await i svctm pokazuje uzrokuje li kašnjenje red, a ne fizička brzina diska.
Ako await tek neznatno premašuje svctm (razlika < 20-30 %), kašnjenja uglavnom uzrokuje sam disk (sporo fizičko čitanje/pisanje).
Ako je await znatno veći od svctm (razlika > 50-100 %), glavno kašnjenje uzrokuje red zahtjeva (aqu-sz će biti visok), što upućuje na preopterećenje diska zbog mnogo paralelnih zahtjeva.

U modernim inačicama alata iostat (kao u primjeru) svctm se ne prikazuje jer je njegov izračun nepouzdan. Za analizu se koristi kombinacija await + aqu-sz: visok await uz nizak aqu-sz (~0) upućuje na spor disk; visok await uz visok aqu-sz (>1) upućuje na to da je disk preopterećen zahtjevima.

Analiza cjelokupne slike pomoću alata dstat

dstat se koristi za promatranje sustava u stvarnom vremenu i za povezivanje opterećenja diska s ostalim resursima.

Primjeri naredbi:

dstat -d dstat --disk-util dstat -rd --disk-util dstat -D vda,sda

Primjer pokretanja s intervalom:

dstat -rd --disk-util 1 5

Pri analizi obratite pozornost na:

  • porast iowaita procesora;
  • vrhove čitanja ili pisanja;
  • istodobnu mrežnu i diskovnu aktivnost (sigurnosne kopije, sinkronizacija).

Example dstat output: dstat -rd --disk-util 1 5 --io/total- -dsk/total- vda- read write| read write|util 0 4.00 | 0 76k|0.50 0 29.5 | 0 240k|0.20 0 1.00 | 0 4096B| 0 0 0 | 0 0 | 0 0 1.00 | 0 32k| 0

Usporedba alata dstat i iostat:

Kriterij iostat dstat
Točnost podataka Visoka Visoka
Način rada u stvarnom vremenu Ograničen Izvrstan
Povijesni podaci Da (sar) Ne
Ispis u boji Ne Da
Proširivost Ne Dodaci (pluginovi)
Izvoz u CSV Ne Da
Opterećenje procesora Nisko Srednje

Info

dstat je osobito koristan kod kratkotrajnih skokova opterećenja koji se u alatu iostat ne vide uvijek.

Otkrivanje uskih grla U/I-ja diska

Za brzu dijagnostiku koriste se sljedeće naredbe:

sudo iostat -mx 2 sudo iostat -p /dev/vda 2 5 sar -d 1 5

Tipični znakovi problema:

  • %util iznad 80 % dulje vrijeme;
  • await iznad 20-30 ms za SSD ili iznad 50-100 ms za HDD;
  • aqu-sz veći od 2-3, što upućuje na nakupljanje u redu.

U primjeru se koristi disk /dev/vda – to je virtualni disk (VirtIO) na virtualnom poslužitelju.

Na fizičkim poslužiteljima i u drugim okruženjima diskovi mogu imati drukčija imena:

  • /dev/sdX (npr. /dev/sda) - uobičajeni SATA/SAS/USB diskovi
  • /dev/nvmeXnY (npr. /dev/nvme0n1) - NVMe pogoni
  • /dev/vdX - virtualni diskovi

Utvrđivanje procesa koji uzrokuju veliko opterećenje U/I-ja diska

Nakon što se pomoću alata iostat i dstat utvrdi preopterećenost diskovnog podsustava, sljedeći je korak utvrditi konkretne procese koji pokreću intenzivne operacije čitanja ili pisanja. Analiza na razini uređaja bez utvrđivanja izvora opterećenja ne omogućuje ispravne korektivne mjere.

Korištenje alata iotop

Osnovni alat za pronalaženje procesa koji aktivno koriste disk jest iotop.

sudo iotop -ao

Parametri naredbe:

-a - prikazuje kumulativnu statistiku od pokretanja procesa, što pomaže u otkrivanju pozadinskih zadataka s dugotrajnim U/I-jem;

-o - prikazuje samo procese koji trenutačno izvode operacije U/I-ja.

Primjer ispisa:

TID 41PRIO USER41DISK READ41DISK WRITE41SWAPIN41IO>4141COMMAND 1105641be/441mysql410.00 B 413.44 M410.00 %410.76 %41mysqld 258041be/441rsync410.00 B4123.48 M410.00 %411.17 %41rsync

U ispisu alata iotop posebnu pozornost treba obratiti na polja DISK READ i DISK WRITE te na postotak vremena U/I-ja. Izvori opterećenja obično su procesi baza podataka, procesi sigurnosnog kopiranja, procesi sinkronizacije datoteka ili korisničke skripte.

Korištenje alata pidstat za analizu U/I-ja po procesima

Za formaliziraniju i ponovljivu analizu može se koristiti pidstat, koji je dio paketa sysstat.

pidstat -d 1

Ova naredba ispisuje statistiku U/I-ja diska za svaki proces u intervalima od jedne sekunde. To je praktično za otkrivanje kratkotrajnih skokova aktivnosti i njihovo povezivanje s drugim sustavnim metrikama.

Info

pidstat je osobito koristan u situacijama kada se opterećenje pojavljuje periodično i iotop ga ne bilježi uvijek.

Korištenje alata lsof za analizu aktivnosti datoteka

U slučajevima kada je potrebno razumjeti s kojim konkretnim datotekama ili direktorijima proces radi, koristi se alat lsof.

lsof +D /path

Pritom je /path određeni direktorij unutar kojeg treba utvrditi aktivne datoteke i procese. To može biti, primjerice, direktorij baze podataka, direktorij sigurnosnih kopija ili područje privremenih datoteka.

Naredba omogućuje utvrditi koji procesi trenutačno drže deskriptore datoteka i izvode operacije unutar navedene putanje, što je osobito korisno pri analizi opterećenja koje stvaraju aplikacije.

Analiza konteksta opterećenja

Utvrđivanje procesa s visokom diskovnom aktivnošću nije konačni cilj. Administrator mora procijeniti kontekst njegova rada:

  • je li opterećenje očekivano za tu uslugu;
  • izvodi li se proces u odgovarajuće vrijeme (npr. sigurnosne kopije u satima vršnog opterećenja);
  • mogu li se promijeniti raspored ili radni parametri;
  • je li dopustivo smanjiti prioritet U/I-ja.

Taj pristup omogućuje razlikovanje normalnog od problematičnog opterećenja i odabir ispravne metode optimizacije.

Provjera ispravnosti analize

Ispravnost provedene analize potvrđena je ako:

  • se vrhovi %util, await ili aqu-sz u alatu iostat vremenski podudaraju s aktivnošću procesa u alatu iotop ili pidstat;
  • se porast iowaita u alatu dstat podudara s diskovnim operacijama, a ne s opterećenjem procesora;
  • ponovljena mjerenja pokazuju ponovljiv obrazac opterećenja.

Za prikupljanje podataka i kasniju analizu preporučuje se korištenje bilježenja u datoteku:

sar -d 1 100 > io.log

To omogućuje zabilježiti ponašanje diskovnog podsustava tijekom određenog razdoblja i koristiti podatke pri istraživanju incidenata.

Tipične pogreške i posebnosti rada

U praksi rada hosting poslužitelja najčešće se javljaju sljedeći problemi:

  • pokretanje sigurnosnih kopija i sinkronizacije podataka u satima vršnog opterećenja;
  • intenzivno korištenje swapa uz nedovoljno RAM-a;
  • planer U/I-ja neprikladan za vrstu pogona;
  • nedostatak određivanja prioriteta za pozadinske zadatke.

Za smanjenje utjecaja pozadinskih procesa na performanse preporučuje se korištenje alata ionice za upravljanje prioritetom U/I-ja procesa, što omogućuje ublažavanje utjecaja pozadinskih zadataka na odzivnost sustava.

Primjer uporabe:

ionice -c3 rsync /source /destination

Ključni prioriteti:

  • -c1 (realtime) - najviši prioritet. Koristi se za zadatke kritične s obzirom na kašnjenje. Može potpuno blokirati druge procese.
  • -c2 (best-effort) - zadano za većinu procesa. Omogućuje podešavanje razine prioriteta (od 0 (visok) do 7 (nizak)).
  • -c3 (idle) - pozadina. Proces dobiva pristup disku samo kada ga nijedan drugi proces ne koristi. Sigurno i preporučeno za pozadinske operacije (sigurnosne kopije, sinkronizacija podataka).

U ovom primjeru proces rsync radi s najnižim prioritetom U/I-ja, čime se njegov utjecaj na osnovne operacije sustava svodi na najmanju mjeru. Korištenje alata ionice omogućuje smanjiti utjecaj pozadinskih procesa bez potrebe da ih se potpuno isključi.

Zaključak

Praćenje U/I-ja diska sastavni je dio održavanja performansi i stabilnosti poslužiteljske infrastrukture. Alati iostat i dstat omogućuju otkrivanje situacija preopterećenja i procjenu stanja diskovnog podsustava, dok alati poput iotop, pidstat i lsof pomažu utvrditi konkretne procese i narav njihova opterećenja.

Redovita primjena opisanog pristupa, ispravno tumačenje metrika i upravljanje prioritetima U/I-ja pomažu skratiti vrijeme odziva usluga, povećati predvidljivost opterećenja i osigurati usklađenost sa zahtjevima SLA-a. Nadalje, ova se metodologija može proširiti centraliziranim nadzorom i automatizacijom analize opterećenja U/I-ja.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • kingdom
  • germany
  • Español
  • French
  • Hrvatska
  • Italiano
  • Poland
  • Slovenski
  • ukraine
  • Türkçe
  • Русский
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA