Cómo probar la velocidad del disco y la RAM de su servidor Linux – CloudSavvy IT

instalación en rack de servidores
Arjuna Kodisinghe / Shutterstock

Si escribe o lee archivos con regularidad, la velocidad de su disco puede afectar el rendimiento de su servidor. Le mostraremos cómo medir la velocidad de su servidor y cómo comprender cómo se compara con la competencia.

¿Cómo se mide el rendimiento de IO?

Hay muchas formas diferentes de leer y escribir en discos, por lo que no existe un número único para la «velocidad» que pueda medir.

La forma más sencilla de medir el rendimiento es medir el tiempo que se tarda en leer archivos grandes o realizar copias de archivos grandes. Esto mide la velocidad secuencial de lectura y escritura, que es una buena métrica para conocer, pero rara vez verá velocidades tan altas en la práctica, especialmente en un entorno de servidor.

Una mejor métrica es la velocidad de acceso aleatorio, que mide qué tan rápido puede acceder a los archivos almacenados en bloques aleatorios, imitando mucho más el uso del mundo real.

Lista de velocidades de lectura y escritura.

Los SSD suelen tener velocidades de acceso aleatorio rápidas en comparación con los discos duros, lo que los hace mucho más adecuados para el uso general. Los discos duros todavía tienen velocidades de lectura y escritura secuenciales decentes, lo que los hace buenos para el archivo y recuperación de datos.

Sin embargo, es posible que el rendimiento del disco no importe mucho para determinadas cargas de trabajo. Muchas aplicaciones almacenan objetos en la memoria caché (si tienes suficiente RAM), por lo que la próxima vez que quieras leer ese objeto, se leerá de la memoria (que es más rápido). Sin embargo, para cargas de trabajo de escritura intensiva, aún se debe acceder al disco.

La velocidad a menudo se mide en MB / s, pero algunos proveedores pueden medir en IOPS (operaciones de entrada / salida por segundo). Este es simplemente un número mayor que significa lo mismo; puede encontrar qué IOPS de MB / s con esta fórmula:

IOPS = (MBps / Block Size) * 1024

Sin embargo, es posible que algunos proveedores no hagan un buen trabajo al decirle qué punto de referencia usan para medir IOPS, por lo que es bueno que lo haga usted mismo.

Instalar fio para pruebas de lectura / escritura aleatorias

Si bien Linux tiene incorporado dd , que se puede usar para medir el rendimiento de escritura secuencial, no es indicativo de cómo se comportará bajo tensiones del mundo real. En su lugar, querrá probar su velocidad de lectura y escritura aleatoria.

fio es una utilidad que puede manejar esto. Instálelo desde el administrador de paquetes de su distribución:

sudo apt-get install fio

Luego, ejecute una prueba básica con el siguiente comando:

fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read_write.fio --bs=4k --iodepth=64 --size=250M --readwrite=randrw --rwmixread=80

Esto ejecuta pruebas de lectura y escritura aleatorias utilizando 250 MB de datos, en una proporción de 80% de lecturas a 20% de escrituras. Los resultados se mostrarán en términos de IOPS y MB / s:

La prueba anterior se ejecutó en un AWS gp2 SSD, un SSD bastante medio, que muestra un rendimiento bastante medio. El rendimiento de escritura siempre será menor con cualquier tipo de E / S; muchos SSD y HDD tienen memoria caché incorporada para que la utilice el controlador de la unidad, lo que hace que muchas lecturas sean bastante rápidas. Sin embargo, siempre que escriba, debe realizar cambios físicos en la unidad, que es más lenta.

La ejecución de la prueba en un disco duro muestra un bajo rendimiento de E / S mixtas aleatorias, que es un problema común con los discos duros:

resultados de la prueba del disco duro fio

Sin embargo, los discos duros se utilizan normalmente para lecturas y escrituras secuenciales grandes, por lo que una prueba de E / S aleatoria no coincide con el caso de uso aquí. Si desea cambiar el tipo de prueba, puede pasar un argumento diferente para --readwrite. fio admite muchas pruebas diferentes:

  • Lectura secuencial: seqread
  • Escritura secuencial:seqwrite
  • Lectura aleatoria: randread
  • Escritura aleatoria: randwrite
  • IO mixta aleatoria: randrw

Además, puede cambiar el tamaño del bloque con el --bs argumento. Lo configuramos en 4K, que es bastante estándar para pruebas aleatorias, pero las lecturas y escrituras secuenciales pueden mostrar un rendimiento mejor o peor con tamaños de bloque más grandes. Los tamaños de 16 KB a 32 KB pueden estar más cerca de lo que encontrará bajo carga real.

Prueba del rendimiento de la memoria

fio no puede probar la velocidad de la RAM, por lo que si desea comparar la RAM de su servidor, debe instalar sysbench desde el administrador de paquetes de su distribución:

sudo apt-get install sysbench

Este paquete puede comparar muchas métricas de rendimiento, pero solo nos enfocamos en la prueba de memoria. El siguiente comando asigna 1 MB de RAM, luego realiza operaciones de escritura hasta que haya escrito 10 GB de datos (no se preocupe, no necesita 10 GB de RAM para hacer este punto de referencia).

sysbench --test=memory --memory-block-size=1M --memory-total-size=10G run

Esto mostrará la velocidad de la memoria en MiB / s, así como la latencia de acceso asociada a ella.

Resultados de las pruebas de velocidad de la memoria en MiB / s, así como la latencia de acceso asociada a ella.

Esta prueba mide la velocidad de escritura, pero puede agregar --memory-oper=read para medir la velocidad de lectura, que debería ser un poco más alta la mayor parte del tiempo. También puede probar con tamaños de bloque más bajos, lo que ejerce más presión sobre la memoria.

Sin embargo, de manera realista, la mayoría de la RAM será lo suficientemente buena para ejecutar casi cualquier cosa, y generalmente estará más limitado por la cantidad de RAM que por la velocidad real.

Deja un comentario

En esta web usamos cookies para personalizar tu experiencia de usuario.    Política de cookies
Privacidad