Analizar la velocidad de tu disco duro con FIO

Analizar la velocidad de tu disco duro con FIO, independientemente si es HD o SSD.

Hoy vemos una herramienta que nos analiza el rendimiento del disco, de forma rápida y detallada. Ademas mediante la prueba podrás diagnosticar no solo velocidad del mismo, también posibles problemas de configuración o su estado de salud.

Esta herramienta se llama Fio, y es una aplicación open source diseñada para verificar el hardware. de nuestro sistema. Destaca por soportar una gran cantidad de motores de lectura/escritura, como libaio, sync, nmap, syslet, slice y más. Ademas es compatible con la mayoría de distribuciones basadas en Unix, como Linux, OpenSolaris, OpenBSD, HP-UX, Android, etc.

 

Analizar la velocidad de tu disco con FIO

Antes de ver como instalar FIO debes saber que es capaz de operar, con carga o sin carga (apenas afecta al rendimiento del sistema). Vemos como instalar FIO en Debian, CentOs y todos sus derivados.

Instalar FIO en Debian, Ubuntu, Linux Mint y derivados
sudo apt-get install fio -y
Instalar FIO en CentOS, Fedora y derivados

Es necesario el repositorio epel.

# Centos
sudo yum install epel-release -y
sudo yum install fio -y

# Fedora
sudo dnf install fio -y

 

Test de escritura aleatorio

Primero hacemos un test de escritura aleatoria. Este comando lanza 2 GB de escritura divididas por núcleo de procesador (en nuestro ejemplo 4), a la vez.

sudo fio --name=randwrite --ioengine=libaio --iodepth=1 --rw=randwrite --bs=4k --direct=0 --size=512M --numjobs=4 --runtime=240 --group_reporting

Ejemplo de salida…

[root@host ~]# sudo fio --name=randwrite --ioengine=libaio --iodepth=1 --rw=randwrite --bs=4k --direct=0 --size=512M --numjobs=4 --runtime=240 --group_reporting
randwrite: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
...
fio-3.7
Starting 4 processes

randwrite: (groupid=0, jobs=4): err= 0: pid=28774: Fri May  8 18:42:07 2020
  write: IOPS=714k, BW=2790MiB/s (2926MB/s)(2048MiB/734msec)
    slat (nsec): min=1689, max=257412, avg=2704.41, stdev=1250.10
    clat (nsec): min=506, max=372169, avg=647.40, stdev=825.23
     lat (usec): min=2, max=375, avg= 3.42, stdev= 1.60
    clat percentiles (nsec):
     |  1.00th=[  516],  5.00th=[  516], 10.00th=[  524], 20.00th=[  532],
     | 30.00th=[  540], 40.00th=[  540], 50.00th=[  548], 60.00th=[  548],
     | 70.00th=[  636], 80.00th=[  788], 90.00th=[  948], 95.00th=[  972],
     | 99.00th=[ 1004], 99.50th=[ 1032], 99.90th=[ 2800], 99.95th=[ 9536],
     | 99.99th=[10816]
   bw (  KiB/s): min=525024, max=948608, per=25.73%, avg=735082.00, stdev=241971.35, samples=4
   iops        : min=131256, max=237152, avg=183770.50, stdev=60492.84, samples=4
  lat (nsec)   : 750=71.58%, 1000=27.02%
  lat (usec)   : 2=1.28%, 4=0.06%, 10=0.03%, 20=0.03%, 50=0.01%
  lat (usec)   : 250=0.01%, 500=0.01%
  cpu          : usr=27.11%, sys=72.73%, ctx=23, majf=0, minf=129
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=0,524288,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: bw=2790MiB/s (2926MB/s), 2790MiB/s-2790MiB/s (2926MB/s-2926MB/s), io=2048MiB (2147MB), run=734-734msec

Disk stats (read/write):
  sda: ios=0/2, merge=0/20, ticks=0/0, in_queue=0, util=0.00%

 

Más procesos de test de escritura aleatorio

Puedes forzar la maquina, metiendo más procesos I/O a la vez. No lo hagas en servidores en producción.

sudo fio --name=randread --ioengine=libaio --iodepth=16 --rw=randread --bs=4k --direct=0 --size=512M --numjobs=4 --runtime=240 --group_reporting

Ejemplo de salida…

[root@host ~]# sudo fio --name=randread --ioengine=libaio --iodepth=16 --rw=randread --bs=4k --direct=0 --size=512M --numjobs=4 --runtime=240 --group_reporting
randread: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=16
...
fio-3.7
Starting 4 processes
randread: Laying out IO file (1 file / 512MiB)
randread: Laying out IO file (1 file / 512MiB)
randread: Laying out IO file (1 file / 512MiB)
randread: Laying out IO file (1 file / 512MiB)
Jobs: 4 (f=4): [r(4)][100.0%][r=69.1MiB/s,w=0KiB/s][r=17.7k,w=0 IOPS][eta 00m:00s]
randread: (groupid=0, jobs=4): err= 0: pid=29950: Fri May  8 18:45:11 2020
   read: IOPS=18.1k, BW=70.6MiB/s (74.1MB/s)(2048MiB/28989msec)
    slat (usec): min=95, max=2859, avg=219.22, stdev=40.94
    clat (usec): min=5, max=6125, avg=3316.56, stdev=316.30
     lat (usec): min=229, max=6349, avg=3535.92, stdev=335.07
    clat percentiles (usec):
     |  1.00th=[ 1926],  5.00th=[ 3097], 10.00th=[ 3261], 20.00th=[ 3326],
     | 30.00th=[ 3326], 40.00th=[ 3359], 50.00th=[ 3359], 60.00th=[ 3359],
     | 70.00th=[ 3392], 80.00th=[ 3392], 90.00th=[ 3490], 95.00th=[ 3523],
     | 99.00th=[ 3654], 99.50th=[ 4113], 99.90th=[ 5407], 99.95th=[ 5604],
     | 99.99th=[ 5866]
   bw (  KiB/s): min=17520, max=30000, per=25.02%, avg=18102.25, stdev=1772.39, samples=228
   iops        : min= 4380, max= 7500, avg=4525.56, stdev=443.10, samples=228
  lat (usec)   : 10=0.01%, 250=0.01%, 500=0.01%, 750=0.01%, 1000=0.01%
  lat (msec)   : 2=3.07%, 4=96.36%, 10=0.57%
  cpu          : usr=1.06%, sys=4.47%, ctx=524387, majf=0, minf=193
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=100.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.1%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=524288,0,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=16

Run status group 0 (all jobs):
   READ: bw=70.6MiB/s (74.1MB/s), 70.6MiB/s-70.6MiB/s (74.1MB/s-74.1MB/s), io=2048MiB (2147MB), run=28989-28989msec

Disk stats (read/write):
  sda: ios=520363/49, merge=0/78, ticks=110202/0, in_queue=110111, util=97.82%

 

En este post tan solo vimos un par de ejemplos básicos del uso de Fio, pero hemos medido la velocidad de nuestros discos en Linux. La herramienta tiene más opciones, revisa su Github oficial.

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este articulo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.

 

Agregar comentario