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.