Articole
    Home » Urmărirea I/O pe disc în Linux cu iotop – Ghid pas cu pas
Urmărirea I/O pe disc în Linux cu iotop – Ghid pas cu pas

Urmărirea I/O pe disc în Linux cu iotop – Ghid pas cu pas

Ce este iotop și de ce ai nevoie de el?

Ai servere, VPS, containere Docker sau dedicate? Rulezi aplicații care uneori încetinesc fără motiv? Ai nevoie să vezi rapid cine „toacă” discul și îți încetinește sistemul? Atunci iotop e prietenul tău: un utilitar CLI pentru Linux, inspirat de top/htop, dar focusat pe traficul de I/O pe disc. Cu el vezi în timp real ce procese fac cele mai multe operațiuni de citire/scriere pe disc. Pentru developeri, devops, sysadmini, sau oricine administrează un server, iotop e ca un detector de hoți de resurse.

Scenariu real: Coșmarul I/O

Imaginează-ți: ești la birou, totul merge lin, când dintr-o dată serverul tău (sau clientului) începe să „moară” în chinuri. Totul se mișcă cu viteza melcului, load-ul sare la cer, dar CPU-ul nu e ocupat. RAM-ul e ok. Ce naiba se întâmplă?! Discul e „roșu”, dar cine îl folosește? Dacă nu ai răspunsul rapid, downtime-ul te costă clienți, nervi și bani.

Cum funcționează iotop?

  • Structură: iotop folosește procfs și taskstats din kernel ca să citească statistici de I/O pentru fiecare proces/thread.
  • Algoritm: La fiecare refresh, colectează cât a citit/scris fiecare proces de la ultimul refresh. Afișează topul celor mai „gurmanzi” după IO.
  • Interfață: Seamănă cu top. Vezi PID, user, IO citit/scris, procentul din IO total per proces, plus câteva opțiuni pentru sortare și filtrare.

Pe scurt: iotop e ca un radar pentru disc. Îți arată în timp real cine „ronțăie” SSD-ul sau HDD-ul.

Cazuri de utilizare și beneficii

  • Diagnostichezi rapid procesele care „blochează” discul (ex: backup-uri, baze de date, logrotate scăpat de sub control)
  • Identifici bottleneck-uri: vezi dacă problema e la disc sau la altceva
  • Monitorizare continuă când faci tuning la server sau optimizezi aplicații
  • Depanare rapidă pe VPS (comandă VPS aici) sau server dedicat (comandă server dedicat aici), fără tool-uri grafice greoaie
  • Supervizare în medii cu storage partajat (cloud, storage over network, etc.)

Beneficii: Salvezi timp, bani și nervi. Eviți scandaluri cu clienții sau șefii.

Ghid rapid: Instalare și configurare

Instalare iotop pe cele mai populare distribuții

  • Debian/Ubuntu: sudo apt update && sudo apt install iotop
  • CentOS/RHEL/Fedora: sudo yum install iotop sau sudo dnf install iotop
  • Alpine: sudo apk add iotop
  • Arch: sudo pacman -S iotop

Notă importantă: Pentru a vedea toate procesele, rulează iotop ca root. Altfel, vezi doar procesele proprii.

Permisiuni și kernel

  • Ai nevoie de kernel cu CONFIG_TASKSTATS și CONFIG_TASK_IO_ACCOUNTING activate (majoritatea distro-urilor moderne îl au deja)
  • Pentru a evita să rulezi ca root, poți adăuga userul în grupul iostat (dacă există)

Cum folosești iotop? Exemple practice

Comandă de bază


sudo iotop

Asta pornește interfața interactivă. Vezi procesele care consumă disc în timp real.

Doar procese cu activitate


sudo iotop -o

Arată DOAR procesele care fac IO în acel moment. Super util când vrei să vezi rapid vinovatul.

Log la output, fără interfață (batch mode)


sudo iotop -b -n 10 > iotop.log

Rulează 10 refresh-uri și scrie rezultatul în fișier. Ideal pentru scripturi sau analiză ulterioară.

Numai procesele unui user


sudo iotop -u nume_user

Doar procesele unui anumit user (bun pentru debugging pe shared hosting).

Exemplu cu diagramă simplă (ASCII):

[SSD/HDD] <--- [kernel] <--- [iotop] <--- [Tu]
                           |
                      [procese]

Mini Glosar pe înțelesul tuturor

  • I/O: Input/Output. Orice citire/scriere pe disc.
  • Throughput: Cât de mult date trec prin disc pe secundă (MB/s)
  • Latency: Cât durează o operațiune de citire/scriere (ms)
  • Bottleneck: Ceva care încetinește tot sistemul (ex: un proces care „blochează” discul)
  • PID: Process ID. Fiecare proces are un număr unic.

Exemple și cazuri comice (cu tabel comparativ)

Imaginează-ți un „Comic Battle” între utilitare de monitorizare:

  • top – „Eu sunt regele CPU-ului!”
  • htop – „Eu am culori și bară de progres!”
  • iotop – „Eu văd cine toacă discul pe furiș!”
  • glances – „Eu le fac pe toate, dar nu excelează nimeni!”
Utilitar CPU RAM I/O pe disc Cool Factor
top ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ 👴
htop ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ 😎
iotop ⭐⭐⭐⭐⭐ 🤓
glances ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐ 🤠

Greșeli frecvente, mituri și alte utilitare

  • Mit: „Dacă CPU-ul nu e la 100%, totul e ok.” Fals! Discul poate fi blocat și să îți sufoce aplicațiile.
  • Mit: „iotop arată IO istoric.” Fals! Vezi doar ce se întâmplă ACUM.
  • Greșeală: Rulezi iotop ca user obișnuit și te miri că vezi prea puține procese.
  • Greșeală: Confunzi IOPS cu Throughput. Un proces poate face multe operații mici (IOPS mare), dar să transfere puține date.
  • Alternative: glances, iostat, htop, fio (pentru testare, nu monitorizare)

Flowchart de decizie: Uite dacă ți se potrivește

Ai încetinel serverul?
  ↓
CPU ocupat? ──► DA ▶ verifică cu top/htop
  ↓ NU
Discul e ocupat? ──► DA ▶ Rulează iotop!
  ↓ NU
Ai rețea lentă? ──► DA ▶ vezi iftop, nload
  ↓ NU
Totul e ok? ──► DA ▶ Ia-ți o cafea ☕

Use this if: Vrei să vezi cine consumă disc ACUM, nu istoric. Vrei ceva rapid, CLI, fără setup complicat.

Statistici și fapte interesante

  • Un VPS tipic cu SSD partajat poate avea spike-uri de la alți vecini de pe host. Iotop te ajută să vezi dacă problema e la tine sau la altcineva.
  • Pe servere dedicate, poți depista procese „rătăcite” (ex: backup-uri automate lăsate la default la ora de vârf)
  • Pe cloud (AWS, GCP, Azure), discurile închiriate pot avea „credit burst”. Iotop te ajută să vezi când atingi limita.
  • Iotop e folosit în multe scripturi automate de health-check, fiindcă e ușor de integrat.

Automatizare, scripting și trucuri avansate

  • Poți folosi iotop în mod batch pentru a genera rapoarte automate:


sudo iotop -b -n 60 -d 1 | grep -i "python" > python_io.log

Monitorizezi IO-ul scripturilor Python timp de 60 de secunde, la 1s refresh.

  • Integrează iotop în Nagios/Zabbix/Prometheus cu scripturi custom.
  • Alertă automată dacă un proces depășește un anumit prag de IO:


while true; do
sudo iotop -b -n 1 -o | awk '{if($10>50) print $0}' | mail -s "Alertă IO mare!" admin@domeniu.tld
sleep 60
done

  • Folosește-l în cron pentru logging zilnic, ca să vezi dacă există patternuri suspecte.

Truc: Poți combina iotop cu lsof pentru a vedea ce fișiere deschide un proces cu IO mare.

Poveste: Scenă de viață din SysAdminLand

Era o dimineață ploioasă, iar serverul de producție începea să „țipe” în monitoring. Load > 20, dar procesorul lenevea la 10%. Discul era „fierbinte”, dar cine-l folosea? Pornesc rapid iotop -o și văd: un proces zombie de backup, lăsat de vechiul sysadmin, făcea un tar uriaș pe tot /var. Două clickuri, un kill și… load-ul revine la normal. Șeful mulțumit, clienții fericiți, eu cu cafeaua caldă în mână. #RealSysAdminStories

Concluzii și recomandări

  • De ce să folosești iotop? Pentru transparență, rapiditate și control. E ca o lupă pentru IO pe disc.
  • Când? Oricând serverul merge greu și suspectezi discul – sau vrei să optimizezi IO.
  • Cum? Instalare rapidă, zero configurare, rezultate instant. Rulează ca root pentru info completă.
  • Unde? Orice server Linux, fie VPS (comandă VPS aici), dedicat (comandă server dedicat aici), cloud sau chiar Raspberry Pi.
  • Bonus: Îl poți integra ușor în scripturi de monitorizare sau alertare.

Dacă vrei să te simți ca un adevărat detectiv de servere, dă-i o șansă lui iotop. Nu e doar pentru „geeks”, ci pentru oricine vrea să doarmă liniștit știind că știe cine și când îi consumă discul.

Pentru servere VPS sau dedicate gata de acțiune, vezi și oferta de VPS sau servere dedicate!

Happy debugging și spor la optimizat servere!

Leave a reply

Your email address will not be published. Required fields are marked