Com mesurar la velocitat de lectura i escriptura d’un punt de muntatge a Linux


Quan gestionem sistemes Linux, sovint necessitem comprovar el rendiment d’un dispositiu d’emmagatzematge o punt de muntatge. Saber quina velocitat d’escriptura i lectura ofereix ens ajuda a detectar colls d’ampolla, comprovar la salut del maquinari o simplement validar configuracions (RAID, LVM, discos NVMe, etc.).

En aquest article veurem com fer-ho amb dues eines populars:

  • dd: eina simple inclosa en gairebé totes les distribucions.
  • fio: eina avançada per a proves de rendiment d’I/O.

Com mesurar la velocitat amb dd

El dd és una eina senzilla que pot simular una escriptura seqüencial al disc.

Exemple: test d’escriptura

dd if=/dev/zero of=/mnt/test/dd_test bs=1G count=1 oflag=direct
  • if=/dev/zero: genera dades buides (zeros)
  • of=/mnt/test/dd_test: fitxer de sortida al punt de muntatge a provar
  • bs=1G: mida del bloc (1 GB)
  • count=1: nombre de blocs
  • oflag=direct: evita la memòria cau del sistema per a un test més real

Atenció: això escriu dades reals al disc. Assegura’t de fer-ho en un lloc segur.

Exemple: test de lectura

Primer crea un fitxer gran:

dd if=/dev/zero of=/mnt/test/read_test bs=1G count=1 oflag=direct

Després llegeix-lo:

dd if=/mnt/test/read_test of=/dev/null bs=1G iflag=direct

Això descarta les dades llegides, però calcula la velocitat de lectura.


Com fer proves avançades amb fio

El fio és molt més complet i configurable. Permet simular càrregues reals: aleatòries, seqüencials, amb diferents mides de bloc, múltiples fils, etc.

Instal·lació

sudo apt install fio   # Debian/Ubuntu
sudo dnf install fio   # RHEL/CentOS/Fedora

Exemple: test d’escriptura seqüencial

fio --name=seq_write --filename=/mnt/test/fio_test --size=1G --bs=1M --rw=write --ioengine=libaio --direct=1

Exemple: test de lectura aleatòria

fio --name=rand_read --filename=/mnt/test/fio_test --size=1G --bs=4k --rw=randread --ioengine=libaio --direct=1

Paràmetres comuns:

  • --rw: tipus d’I/O (writereadrandwriterandread, etc.)
  • --bs: mida del bloc (ex: 4k, 1M)
  • --size: mida total de la prova
  • --direct=1: evita la memòria cau
  • --ioengine: motor d’I/O (com libaio o sync)

Diferències entre dd i fio

Característicaddfio
ComplexitatMolt simpleAvançada i molt configurable
Tipus de provesSeqüencials bàsiquesSeqüencials, aleatòries, combinades
MultithreadingNo
Resultats detallatsLimitats (només temps i MB/s)Complets (IOPS, latència, etc.)
Ús en benchmarkingAcceptable per a casos simplesIdeal per a proves reals i complexes

✅ Conclusió

Si només vols fer una prova ràpida, dd pot ser suficient. Però si necessites entendre realment com respon el sistema d’emmagatzematge sota càrrega, fio és la millor eina. T’ofereix flexibilitat, detall i realisme.