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

instalación en rack del servidor
Arjuna Kodisinghe / Shutterstock

Si escribe o lee archivos con regularidad, la velocidad del 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 enfrenta a la competencia.

Índice de contenidos
  1. ¿Cómo se mide el desempeño de IO?
  2. Instale fio para una prueba de lectura / escritura aleatoria
  3. Verificar el rendimiento de la memoria

¿Cómo se mide el desempeño 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 se pueda medir.

La forma más sencilla de medir el rendimiento es calcular el tiempo que lleva leer archivos grandes o hacer copias de archivos grandes. Esto mide velocidades secuenciales de lectura y escritura, que es una buena métrica para conocer, pero rara vez verá velocidades tan rápidas en la práctica, especialmente en un entorno de servidor.

Una mejor métrica es la velocidad de acceso aleatorio, que mide la rapidez con la que puede acceder a los archivos almacenados en fragmentos 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 más rápidas que los discos duros, lo que los hace mucho más adecuados para uso general. Los discos duros aún tienen velocidades de lectura y escritura secuenciales decentes, lo que los hace excelentes para el archivo y la recuperación de datos.

Sin embargo, es posible que el rendimiento del disco no sea muy importante para determinadas cargas de trabajo. Muchas aplicaciones almacenan objetos en la memoria caché (si tiene suficiente RAM), por lo que la próxima vez que desee 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 requiere acceso al disco.

La velocidad a menudo se mide en MB / s, pero algunos proveedores pueden medir en IOPS (operaciones de E / S por segundo). Este es simplemente un número mayor que significa lo mismo; puede encontrar qué MB / s IOPS 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 hacer las pruebas usted mismo.

Instale fio para una prueba de lectura / escritura aleatoria

Aunque Linux tiene la dd El comando, que se puede utilizar para medir el rendimiento de escritura secuencial, no indica cómo funcionará en condiciones de estrés del mundo real. En su lugar, le recomendamos que pruebe su velocidad de lectura y escritura aleatoria.

fio es una utilidad que puede manejarlo. 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 realiza pruebas de lectura y escritura aleatorias utilizando 250 MB de datos, con una proporción de 80% de lecturas a 20% de escrituras. Los resultados se mostrarán en términos de IOPS y en MB / s:

La prueba anterior se realizó 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 una memoria caché incorporada para que la utilice el controlador de la unidad, lo que hace que muchas lecturas sean bastante rápidas. Sin embargo, cada vez que escribe, 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
  • E / S mixtas aleatorias: randrw

Además, puede cambiar el tamaño del bloque con la extensión --bs discusión. Lo configuramos en 4K, que es lo suficientemente estándar para pruebas aleatorias, pero las lecturas y escrituras secuenciales pueden mostrar un rendimiento mejor o peor con bloques más grandes. Los tamaños de 16 KB a 32 KB pueden ser más parecidos a los que encontrará bajo carga real.

Verificar el rendimiento de la memoria

fio La velocidad de la RAM no se puede probar, por lo que si desea comparar la RAM de su servidor, debe instalarla 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 centramos en las pruebas de memoria. El siguiente comando asigna 1 MB de RAM y luego escribe hasta que haya escrito 10 GB de datos (no se preocupe, no necesita 10 GB de RAM para ejecutar 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.

Resultados de la prueba de velocidad de memoria en MiB / s, así como la latencia de acceso asociada.

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 bloques más pequeños, lo que ejerce más presión sobre la memoria.

Sin embargo, de manera realista, la mayor parte de la RAM será lo suficientemente buena para ejecutar prácticamente cualquier cosa, y por lo general estará más limitado por la cantidad de RAM que por su rendimiento.

Descubre más contenido

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Nelida Haydee Saldivia.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a KnownHost que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Subir