Analiza tu disco y su velocidad en Linux con Fio

Analiza tu disco y su velocidad en Linux con Fio

Anteriormente os he hablado de un conjunto de herramientas que os permitían medir el rendimiento de vuestro equipo en Linux, dicha suite se llama Sysbench y, aunque el artículo hacía especial énfasis en la Raspberry Pi y su sistema operativo Raspbian, es comúmente utilizado en muchas distribuciones desde hace tiempo.

Hoy traigo algo más especifico y que os servirá para analizar el rendimiento del disco de forma detallada, para de paso poder diagnosticar no solo velocidad del mismo, sino posibles problemas de configuración o salud que provoquen un rendimiento pobre o irregular.

Analiza tu disco en Linux con Fio

Esta herramienta se llama Fio y es un software open source diseñado para verificar el hardware. Soporta gran cantidad de motores de lectura/escritura, como libaio, sync, nmap, syslet, slice y otros. Soporta múltiples distribuciones como Linux, OpenSolaris, OpenBSD, HP-UX, Android e incluso Windows. Trabaja tanto con archivos como con dispositivos.

Fio se traduce como Flexible Input / Output. Más información en el repositorio Ubuntu.

 

Vamos a ver a continuación como trabajar con Fio, lanzando algunas tareas de cálculo de lectura, escritura y, antes de nada, vamos a ver los pasos de instalación.

Instalación de Fio

Ubuntu

Basta con lanzar el siguiente comando, ya que Fio está disponible en el repositorio oficial de Ubuntu por defecto:

sudo apt-get install fio -y

Debian 9

Del mismo modo que ocurre con Ubuntu, Fio está disponible en el repositorio predeterminado de Debian. Basta con poner lo siguiente:

sudo apt-get install fio -y

CentOS 7

Al no estar disponible en el repositorio predeterminado de CentOS, necesitaremos instalar el repositorio EPEL en nuestro sistema antes de continuar:

sudo yum install epel-release -y

Una vez concluido el paso anterior, instalaremos la herramienta:

sudo yum install fio -y

Requisitos de sistema

  • Ubuntu 16.04 o alguno de los sistemas operativos anteriormente citados
  • Cuenta de usuario con permisos para hacer sudo (cambiar a super-usuario o administrador)

Utilización de la herramienta Fio

Test de escritura aleatorio

Empezaremos por el test de escritura con el comando siguiente , que lanza escrituras de un total de 2 GB divididas en 4 tareas de 512 MB cada una (una para cada núcleo del procesador) al mismo tiempo:

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

Deberíamos ver una salida similar a esta cuando comience el proceso:

sudo fio --name=randwrite --ioengine=libaio --iodepth=1 --rw=randwrite --bs=4k --direct=0 --size=512M --numjobs=4 --runtime=240 --group_reporting
sudo: unable to stat /etc/sudoers.d/README: Permission denied
randwrite: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=1
...
fio-2.2.10
Starting 4 processes
randwrite: Laying out IO file(s) (1 file(s) / 512MB)
randwrite: Laying out IO file(s) (1 file(s) / 512MB)
randwrite: Laying out IO file(s) (1 file(s) / 512MB)
randwrite: Laying out IO file(s) (1 file(s) / 512MB)

A continuación tenemos los resultados del test una vez finalizado:

randwrite: (groupid=0, jobs=4): err= 0: pid=3121: Fri Aug 4 00:37:47 2017
 write: io=326988KB, bw=1362.3KB/s, iops=340, runt=240038msec
 slat (usec): min=3, max=3022.7K, avg=11732.00, stdev=81022.61
 clat (usec): min=0, max=56316, avg= 4.28, stdev=233.24
 lat (usec): min=4, max=3022.7K, avg=11738.09, stdev=81023.77
 clat percentiles (usec):
 | 1.00th=[ 1], 5.00th=[ 1], 10.00th=[ 1], 20.00th=[ 1],
 | 30.00th=[ 1], 40.00th=[ 1], 50.00th=[ 2], 60.00th=[ 2],
 | 70.00th=[ 2], 80.00th=[ 3], 90.00th=[ 3], 95.00th=[ 4],
 | 99.00th=[ 10], 99.50th=[ 12], 99.90th=[ 69], 99.95th=[ 111],
 | 99.99th=[ 6048]
 bw (KB /s): min= 5, max=27145, per=33.97%, avg=462.73, stdev=2353.60
 lat (usec) : 2=40.72%, 4=51.82%, 10=6.43%, 20=0.69%, 50=0.18%
 lat (usec) : 100=0.09%, 250=0.03%, 500=0.01%, 1000=0.01%
 lat (msec) : 2=0.01%, 4=0.01%, 10=0.01%, 20=0.01%, 50=0.01%
 lat (msec) : 100=0.01%
 cpu : usr=0.02%, sys=0.39%, ctx=4802, majf=0, minf=37
 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 : total=r=0/w=81747/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
 latency : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
 WRITE: io=326988KB, aggrb=1362KB/s, minb=1362KB/s, maxb=1362KB/s, mint=240038msec, maxt=240038msec

Disk stats (read/write):
 sda: ios=2707/53905, merge=3192/23052, ticks=8832/618200, in_queue=626972, util=88.75%

Test de lectura aleatorio

De forma similar a lo anterior, lanzaremos 4 procesos de lectura de disco (cada uno con 512 MB) para un total de archivo de 2GB.

El pase de diapositivas requiere JavaScript.

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

Y esta es la salida que tenemos al finalizar:

root@ubuntu:~# sudo fio --name=randread --ioengine=libaio --iodepth=16 --rw=randread --bs=4k --direct=0 --size=512M --numjobs=4 --runtime=240 --group_reporting
sudo: unable to stat /etc/sudoers.d/README: Permission denied
randread: (g=0): rw=randread, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=16
...
fio-2.2.10
Starting 4 processes
randread: Laying out IO file(s) (1 file(s) / 512MB)
randread: Laying out IO file(s) (1 file(s) / 512MB)
randread: Laying out IO file(s) (1 file(s) / 512MB)
randread: Laying out IO file(s) (1 file(s) / 512MB)
Jobs: 4 (f=4): [r(4)] [100.0% done] [3430KB/0KB/0KB /s] [857/0/0 iops] [eta 00m:00s]
randread: (groupid=0, jobs=4): err= 0: pid=3400: Fri Aug 4 00:49:02 2017
 read : io=824080KB, bw=3433.7KB/s, iops=858, runt=240004msec
 slat (usec): min=846, max=108007, avg=4636.19, stdev=1341.72
 clat (usec): min=12, max=174325, avg=69880.01, stdev=5797.63
 lat (msec): min=4, max=178, avg=74.52, stdev= 6.00
 clat percentiles (msec):
 | 1.00th=[ 64], 5.00th=[ 67], 10.00th=[ 68], 20.00th=[ 69],
 | 30.00th=[ 69], 40.00th=[ 70], 50.00th=[ 70], 60.00th=[ 71],
 | 70.00th=[ 71], 80.00th=[ 72], 90.00th=[ 73], 95.00th=[ 74],
 | 99.00th=[ 96], 99.50th=[ 105], 99.90th=[ 147], 99.95th=[ 169],
 | 99.99th=[ 174]
 bw (KB /s): min= 574, max= 924, per=25.01%, avg=858.65, stdev=29.85
 lat (usec) : 20=0.01%
 lat (msec) : 10=0.01%, 20=0.01%, 50=0.03%, 100=99.36%, 250=0.60%
 cpu : usr=0.07%, sys=5.27%, ctx=206487, majf=0, minf=94
 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 : total=r=206020/w=0/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
 latency : target=0, window=0, percentile=100.00%, depth=16

Run status group 0 (all jobs):
 READ: io=824080KB, aggrb=3433KB/s, minb=3433KB/s, maxb=3433KB/s, mint=240004msec, maxt=240004msec

Disk stats (read/write):
 sda: ios=205962/90, merge=0/70, ticks=881032/344180, in_queue=1310388, util=92.64%

Estos son dos ejemplos básicos de uso de Fio para medir la velocidad de nuestros discos en equipos Linux, pero tiene muchas más opciones, así que o sugiero probar y leer la documentación para ver todas sus capacidades.

2 comentarios en “Analiza tu disco y su velocidad en Linux con Fio

  1. Hola
    He llegado a esta comunidad vía g+,te comento que soy usuario básico en SO dese le secundaria q me ha lamido la
    Atención los distri tía sirena operativos, he usado Mac Os9 sonata , Windows 98 hacia adelante, xubunto. Entre otros, estudie armado y configuración de Compuatdoras y diseño gráfico inconcluso.
    Siempre me ha llamado la atención Linux .
    Actúalmente. Tengo instalado Mint, en un descktop de escritorio con las siguiente caractwristicas: Intel penrhuim 4. 1 g en RAM .
    El paquete de ofimatica no anda bien..!
    Que me recomiendas.?
    Saludos
    Desde Chile
    Sergio

    Me gusta

    1. Hola Sergio, gracias por venir.
      Dado que tienes un problema de hardware anticuado (extremadamente diría yo) con hardware lo debes solucionar. No hay atajos ni soluciones milagrosas si quieres que te vayan bien aplicaciones actuales. Mint es bastante liviano, de los mejores para este caso, pero entiendo que el resto de programas que tienes en tu equipo y el propio sistema operativo lo dejan renqueante cuando inicias la ofimática. Intenta cerrar aplicaciones en segundo plano, deshabilita servicios de inicio y…compra nuevo hardware.

      Cualquier otra cosa me cuentas.
      Saludos.

      Me gusta

Deja tu comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s