Najbolji alati za nadzor I/O performansi diska u Linuxu


Ukratko: u ovom ćemo vodiču raspravljati o najboljim alatima za nadzor i otklanjanje pogrešaka I/O aktivnosti diska (performanse) na Linux poslužiteljima.

Ključna metrika performansi za praćenje na Linux poslužitelju je I/O (ulaz/izlaz) aktivnost diska, koja može značajno utjecati na nekoliko aspekata Linux poslužitelja, posebno na brzinu spremanja na disk ili dohvaćanja s diska, datoteka ili podataka (osobito na poslužiteljima baze podataka). To ima efekt valova na performanse aplikacija i usluga.

1. iostat – Prikazuje statistiku ulaza i izlaza uređaja

uslužni programi za nadzor sustava u paketu sysstat, koji je široko korišteni uslužni program dizajniran za izvješćivanje CPU statistike i I/O statistike za blok uređaje i particije.

Da biste koristili iostat na vašem Linux poslužitelju, trebate instalirati sysstat paket na svoj Linux sustav pokretanjem odgovarajuće naredbe za vašu distribuciju Linuxa.

$ sudo apt install sysstat          [On Debian, Ubuntu and Mint]
$ sudo yum install sysstat          [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a app-admin/sysstat  [On Gentoo Linux]
$ sudo apk add sysstat              [On Alpine Linux]
$ sudo pacman -S sysstat            [On Arch Linux]
$ sudo zypper install sysstat       [On OpenSUSE]    

Za prikaz jednostavnog izvješća o korištenju uređaja, pokrenite iostat s opcijom naredbenog retka -d. Prvo izvješće obično daje statistiku o vremenu od pokretanja sustava (vrijeme podizanja sustava), a svako sljedeće izvješće odnosi se na vrijeme od prethodnog izvješća.

Koristite -x za prošireno statističko izvješće i oznaku -t da omogućite vrijeme za svako izvješće. Osim toga, ako želite eliminirati uređaje bez ikakve aktivnosti u izlazu izvješća, dodajte oznaku -z:

# iostat -d -t 
OR
# iostat -d -x -t 

Za prikaz statistike u kilobajtima po sekundi za razliku od blokova po sekundi dodajte oznaku -k ili koristite oznaku -m za prikaz statistike u megabajtima po sekundi.

# iostat -d -k
OR
# iostat -d -m

iostat također može prikazati kontinuirana izvješća uređaja u intervalima od x sekundi. Na primjer, sljedeća naredba prikazuje izvješća u intervalima od dvije sekunde:

# iostat -d 2

Vezano za prethodnu naredbu, možete prikazati n izvještaja u intervalima od x sekundi. Sljedeća naredba će prikazati 10 izvješća u intervalima od dvije sekunde. Alternativno, možete spremiti izvješće u datoteku za kasniju analizu:

# iostat -d 2 10
OR
# iostat -d 2 10 > disk_io_report.txt &

Za više informacija o stupcima izvješća, pročitajte iostat stranicu priručnika:

# man iostat

2. sar – Prikaži aktivnost Linux sustava

sar je još jedan koristan uslužni program koji se isporučuje s paketom sysstat, namijenjen prikupljanju, izvješćivanju ili spremanju informacija o aktivnostima sustava. Prije nego što ga počnete koristiti, morate ga postaviti na sljedeći način.

Prvo mu omogućite prikupljanje podataka u datoteci /etc/default/sysstat.

# vi /etc/default/sysstat

Potražite sljedeći redak i promijenite vrijednost u true kao što je prikazano.

ENABLED="true"

Zatim trebate smanjiti interval prikupljanja podataka definiran u sysstat cron poslovima. Standardno je postavljeno na svakih 10 minuta, a možete ga smanjiti na svake 2 minute.

To možete učiniti u datoteci /etc/cron.d/sysstat:

# vi /etc/cron.d/sysstat

Spremite datoteku i zatvorite je.

Na kraju omogućite i pokrenite uslugu sysstat pomoću sljedeće naredbe systemctl:

# systemctl enable --now sysstat.service
# systemctl enable sysstat.service

Zatim pričekajte 2 minute da počnete pregledavati sar izvješća. Upotrijebite naredbu sar i opciju naredbenog retka -b za izvješćivanje statistike I/O i brzine prijenosa i -d za izvješćivanje o aktivnosti za svaki blok uređaj kao što je prikazano.

# sar -d -b

3. iotop – Pratite korištenje I/O diska Linuxa

Sličan iotopu je jednostavan pomoćni program koji vam omogućuje praćenje I/O aktivnosti diska i korištenja na bazi procesa.

Možete ga instalirati na svoj Linux poslužitelj na sljedeći način (ne zaboravite pokrenuti odgovarajuću naredbu za svoju distribuciju Linuxa):

$ sudo apt install iotop             [On Debian, Ubuntu and Mint]
$ sudo yum install iotop             [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a sys-processs/iotop  [On Gentoo Linux]
$ sudo apk add iotop                 [On Alpine Linux]
$ sudo pacman -S iotop               [On Arch Linux]
$ sudo zypper install iotop          [On OpenSUSE]    

Za praćenje I/O aktivnosti po procesu, možete pokrenuti iotop bez ikakvih argumenata kako slijedi. Prema zadanim postavkama, odgoda između ponavljanja je 1 sekunda. Ovo možete promijeniti pomoću oznake -d.

# iotop
OR
# iotop -d 2

iotop će prema zadanim postavkama prikazati sve niti procesa. Da biste promijenili ovo ponašanje tako da prikazuje samo procese, upotrijebite opciju -P naredbenog retka.

# iotop -P

Također, koristeći opciju -a, možete ga uputiti da prikazuje akumulirane I/O umjesto prikazivanja propusnosti. U ovom načinu, iotop pokazuje količinu I/O procesa izvedenih otkad je iotop pozvan.

# iotop -P -a

To je sve što smo imali za vas! Željeli bismo znati vaše mišljenje o ovom vodiču ili gore navedenim alatima. Ostavite komentar putem obrasca za povratne informacije u nastavku.

Također nas možete obavijestiti o alatima za koje mislite da nedostaju na ovom popisu, ali zaslužuju da se pojave ovdje.