Cómo comparar el rendimiento del disco en Linux

Cómo comparar el rendimiento del disco en Linux

Acabo de comprar el último y más rápido, y especialmente más rápido, SDD? O actualizar la tarjeta de memoria microSD de su teléfono? Antes de comenzar a usar su nuevo hardware brillante, es posible que desee ejecutar una verificación de rendimiento en la unidad. ¿La escritura y la lectura se aceleran a las especificaciones del fabricante?? ¿Cómo se compara su rendimiento con el de los demás?? ¿Es esa unidad flash de 1 TB que compraste en un sitio de subastas desde China realmente tan rápido como la lista dijo que era? Averigüemos!

En este tutorial aprenderás:

  • ¿Qué herramientas de medición del rendimiento del disco CLI (Interfaz de línea de comandos?
  • Qué GUI (interfaz gráfica de usuario: su entorno de escritorio) Herramienta de medición de rendimiento del disco recomendamos
  • Cómo medir efectivamente el rendimiento del disco de manera directa
  • Descubra y aprenda con varios ejemplos de medición de rendimiento del disco
  • Cómo tener una sensación de la calidad del disco/hardware flash que posee
Cómo comparar el rendimiento del disco en Linux

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Cualquier GNU/Linux
Software N / A
Otro Acceso privilegiado a su sistema Linux como root o a través del sudo dominio.
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Cómo comparar el rendimiento del disco en Linux - Herramientas de CLI

Para iniciar, conecte su unidad a su máquina. Si se trata de un SSD (unidad de estado sólido) o HDD (unidad de disco duro), querrá cerrar su computadora, insertar la unidad y reiniciar el sistema. Para las tarjetas SD, generalmente usará un lector de tarjetas SD que puede insertar a través de un puerto USB a su computadora. Para las unidades USB Memory Stick/Flash, simplemente inserte a través de un puerto USB a su computadora.

A continuación, navegue a su símbolo de terminal/sistema (en Ubuntu
por ejemplo, puede hacerlo simplemente haciendo clic en Actividades en la parte superior izquierda de la pantalla> Tipo Terminal y haga clic en el icono del terminal).

En la línea de comando, escriba LSBLK:

$ lsblk | GREP SDC SDC 8:32 1 119.Disco 3G 0 

Aquí estamos ejecutando lsblk: puedes leer esto como LS BLK: i.mi. Haga una lista similar a LS ('Listado de directorio') en todos los volúmenes de masa (BLK).

Como puede ver, hay un 119.3G Drive disponible. Esta unidad se comercializa como 128 GB, y es una marca importante. No es raro que se muestre una unidad de 128 GB como solo ~ 115-120g en lsblk. Esto es porque lsblk te dará el resultado en Gibibyte (1 gibibyte = 1073700000 bytes) mientras que la unidad de fabricación vende sus unidades utilizando el estándar "gigabyte" (un Gigabyte = 1000000000 bytes).

Podemos ver en este caso esto funciona casi perfectamente cuando miramos el tamaño basado en bytes:

$ LSBLK -B | GREP SDC SDC 8:32 1 128043712512 0 Disco 


Y 119.3 (según lo informado por LSBLK) = 119.3 x 1073700000 = 128092410000. Entonces, cuando compre la siguiente unidad, lea la letra pequeña en la parte posterior y verifique si usan los bytes "1000" por kilobyte o los bytes "1024" por estándar de kibibyte. Casi siempre, será el primero.

Algunos fabricantes de SD incluso incluyen el tamaño de un área especial reservada para la nivelación del desgaste en la tarjeta SD como espacio de disco principal, sin embargo, dicho espacio no es accesible para el usuario, y puede terminar, por ejemplo, solo 115 g que se muestra como se puede usar. El comprador tenga cuidado.

Cuando ejecutas lsblk Por primera vez, querrá tomarse un tiempo mirando las diversas unidades disponibles. La forma más fácil de localizar un volumen específico, por ejemplo, una unidad flash que se acaba de insertar, es buscar un tamaño que coincida aproximadamente con el tamaño del disco insertado.

Ahora que sabemos que nuestra nueva unidad está etiquetada SDC (Linux usa SDA,SDB,SDC etc. Según las unidades detectadas durante el inicio y/o insertado), también sabemos dónde se encuentra el descriptor del archivo del dispositivo para este dispositivo (siempre está en /desarrollo)

$ ls /dev /sdc /dev /sdc 

Además, si ya hubiera particiones en la unidad, se mostraría de manera diferente, así:

$ LSBLK -B | GREP SDC SDC 8:32 1 128043712512 0 Disco └─SDC1 8:33 1 128042663936 0 Parte 

Puedes ver cómo tiene el disco (/dev/sdc - indicado por 'disco'), y la primera partición (/dev/sdc1 - indicado por 'parte'). Lógicamente, la partición es ligeramente menor que el tamaño total del disco debido a la alineación/espacio reservado para la tabla de partición, etc.

Finalmente, si tiene otros tipos de dispositivos de almacenamiento/disco, por ejemplo, una unidad NVME, entonces esto puede mostrarse, por ejemplo, como:

$ lsblk | GREP NVME NVME0N1 259: 0 0 701.3g 0 disco ├─Nvme0n1p1 259: 1 0 512m 0 Parte /Boot /Efi ├─NVME0N1P2 259: 2 0 732M 0 Parte /Boot └─NVME0N1P3 259: 3 0 700G 0 Parte 0 Parte 

Aquí tenemos una unidad NVME que alberga 3 particiones (P1, p2, p3) y los dos primeros son particiones de arranque pequeñas y la tercera es nuestra partición de datos principal. Como esta partición está en uso, no podremos tener acceso exclusivo o acceso desmontado lo. Esto se volverá relevante una vez que discutamos algunas de las herramientas a continuación.

Armado con esta información, ahora es fácil ejecutar una verificación básica de rendimiento del disco contra esta unidad usando hdparm:

$ sudo hdparm -ttv/dev/sdc1/dev/sdc1: multCount = 0 (OFF) readonly = 0 (OFF) readeAtead = 256 (en) geometría = 15567/255/63, sectores = 2500833328, inicio = 2048 REMISIÓN DE CAMBIADO lecturas de lecturas : 36928 MB en 1.99 segundos = 18531.DISCO DE TIEMPO DE 46 MB/SEC LECES: 276 MB en 3.02 segundos = 91.37 MB/seg 

Nosotros podemos usar hdparm para realizar horarios para fines de referencia y comparación, utilizando el -T (Realice los horarios de las lecturas de caché) y -T (Realice los horarios de las lecturas del dispositivo) Opciones.

Como puede ver, nuestras lecturas almacenadas en caché son extremadamente rápidas (como es de esperar; está en caché), y no son necesariamente un buen número, a menos que esté probando el rendimiento del caché específicamente.

El número más útil es el disco bufferado lectura, y entran en 91.37 MB/seg. No está mal, ya que el fabricante de esta unidad ni siquiera anunció la velocidad de escritura.

Como el manual para hdparm (-TT opciones) estados, Para obtener resultados significativos, esta operación debe repetirse 2-3 veces en un sistema inactivo (sin otros procesos activos) con al menos un par de megabytes de memoria libre, Deberíamos ejecutar otra prueba para estar seguros de nuestros resultados.

Una prueba repetida, esta vez con solo lecturas amortiguadas y un poco más de salida detallada (lograda agregando la opción '-V'):

$ sudo hdparm -tv/dev/sdc1/dev/sdc1: multCount = 0 (OFF) readonly = 0 (apagado) readeátead = 256 (en) geometría = 15567/255/63, sectores = 2500833328, inicio = 2048 Disco tamponado de tiempo de tiempo de tiempo de tiempo. lectura: 276 MB en 3.01 segundos = 91.54 MB/seg 

Como podemos ver, el número informado por HDParm es bastante confiable.



Hasta ahora solo hemos discutido las velocidades de lectura. A continuación, echemos un vistazo a las velocidades de escritura. Para esto, usaremos DD.

La forma más segura de hacerlo es crear primero un sistema de archivos (fuera del alcance de este artículo, para facilitarlo, puede usar una herramienta GUI como Gparted) y luego medir el rendimiento con DD
. Tenga en cuenta que el tipo de sistema de archivos (E.gramo. Ext4, Fat32, ...) afectará el rendimiento, la usabilidad y la seguridad de su impulso.

$ sudo Su # CD /TMP # Mkdir Mnt # Mount /Dev /SDC1 ./mnt # supone que hay al menos 1 partición definida en /dev /sdc. En este caso hay, y es una partición ext4. # Sync # echo 3>/proc/sys/vm/drop_caches # dd if =/dev/cero of =/tmp/mnt/temp oflag = direct bs = 128k count = 1g # nuestra prueba de rendimiento real # rm -f/tmp /mnt/temp 

La prueba de rendimiento se mostrará de la siguiente manera:

# dd if =/dev/cero of =/tmp/mnt/temp oflag = directo bs = 128k count = 16k 16384+0 registros en 16384+0 registra 2147483648 bytes (2.1 GB, 2.0 gib) copiado, 32.1541 S, 66.8 MB/s 

Como podemos ver, nuestra unidad de 128 GB está funcionando razonablemente bien con un 66.8 MB/s velocidad de escritura. Permítanos verificar dos veces el doble del tamaño (archivo de 4 GB) utilizando el recuento = 32k opción:

# dd if =/dev/cero of =/tmp/mnt/temp oflag = directo bs = 128k count = 32k 32768+0 registros en 32768+0 registra 4294967296 bytes (4.3 GB, 4.0 gib) copiado, 66.7746 S, 64.3 MB/s 

Así que veamos todo lo que hicimos aquí.

Primero elevamos los privilegios al nivel de sudo/raíz sudo su, Y luego creamos un MNT carpeta en /TMP. Este será nuestro 'punto de montaje' en el que accederemos a nuestra unidad de 128 GB desde (después de montarla usando montura /dev /sdc1 ./MNT que asigna efectivamente la primera partición sdc1hacia ./MNT (/tmp/mnt) carpeta).

Después de esto, nos aseguramos de que todos los cachones de archivos de nuestro sistema se sincronizaran/vacíos usando sincronización. Este también es un comando útil para ejecutar antes de montar y sacar sus unidades USB, ya que asegura que todos los datos que se estaban escribiendo en su unidad USB se enjuagan en el disco en lugar de permanecer en la memoria. Si desmonta un disco en el escritorio/GUI, ejecutará un sincronización para usted en segundo plano antes de desmontar la unidad y posteriormente decirle que el disco se guarda para eliminar.

A continuación, nos aseguramos de que todos los cachés del sistema restantes se eliminen de la memoria ejecutando echo 3>/proc/sys/vm/drop_caches. Mientras que los dos últimos comandos podrían dejarse de lado, especialmente cuando estamos usando /dev/cero Como el dispositivo de entrada (un dispositivo virtual que sigue emitiendo cero cuando se accede), es bueno tener el sistema 'súper limpio y listo' para realizar una prueba de rendimiento del disco! Básicamente, nos estamos asegurando de que haya el menor almacenamiento de caché posible.

A continuación tenemos nuestra prueba de rendimiento principal usando dd. La sintaxis de dd es bastante sencillo, pero diferente de la mayoría de las otras herramientas de línea de comandos. Veamoslo con algún detalle:

  • if =/dev/cero: Use el dispositivo /dev /cero como archivo de entrada
  • de =/tmp/mnt/temp: Use el archivo 'temp', ubicado en la partición (/disco), acabamos de montar en/tmp/mnt como archivo de salida
  • oflag = directo: Establezca el indicador de salida 'directo' asegurando que 'usemos la E/S directa para los datos' que eliminará la mayoría si no todo el almacenamiento en caché del sistema operativo
  • BS = 128K: Escribir hasta 128k bytes a la vez. El valor predeterminado de 512 es demasiado pequeño y daría como resultado no maximizar la posible velocidad de rendimiento
  • recuento = 16k: Copiar bloques de entrada de 16k, que totaliza alrededor de 2.1 GB o 2.0 GIB. Es posible que desee ajustar esta variable dependiendo de los requisitos de precisión del rendimiento de su accionamiento y su unidad (más es mejor: más confiable)

Y finalmente eliminamos el archivo al que escribimos con RM -F/TMP/MNT/TEMP.

Nota importante y advertencia
Tenga en cuenta que si su disco estaba vacío, y solo si está seguro de que está completamente vacío y no contiene datos valiosos, Podrías hacer algo en la línea de: de =/dev/sdc1 o incluso de =/dev/sdc para ejecutar una prueba de velocidad de disco de acceso exclusivo / desmontaje.

Esta es una forma muy pura de probar el rendimiento del disco, pero (!) Por favor ten mucho cuidado con el uso de esto, como cualquier dispositivo o partición especificada en de = .. Definitivamente será sobrescrito con lo que venga de cualquier Si = .. tu específicas. Cuidarse.



Cómo comparar el rendimiento del disco en Linux - Herramienta GUI

Ahora que sabe cómo ejecutar una prueba de rendimiento del disco desde la línea de comandos, utilizando el hdparm (para leer) y dd (para escribir) Herramientas de terminal/CLI, vamos a buscar a continuación el uso de una herramienta más visual/gráfica dentro del entorno de escritorio.

Si está utilizando Ubuntu, el sistema operativo de escritorio Linux más común, hay un excelente rendimiento de disco de utilidad en el sistema operativo. También es una de las pocas herramientas de prueba de rendimiento de disco gráfica (o tal vez solo disponible. La mayoría de las otras herramientas están basadas en línea de comandos o no tienen equivalentes de Linux en sus contrapartes de Microsoft Windows. Por ejemplo, no hay una contraparte gráfica para la utilidad de rendimiento del disco de Windows CrystalDiskmark.

Simplemente haga clic Actividades en la parte superior izquierda de la pantalla, y escriba disco que te mostrará el Disco Ícono (que muestra una imagen de un disco duro). Haga clic en lo mismo para abrir el Disco Utilidad que tiene una construcción en la herramienta de referencia de disco.

Una vez abierto, use un solo clic para seleccionar su disco en el lado izquierdo de la ventana de diálogo, y luego haga clic en los 3 puntos verticales cerca de la parte superior derecha de la ventana de diálogo (a la izquierda del botón Minimizar). Desde allí, seleccione la opción Disco de referencia .. Para abrir la herramienta de evaluación comparativa para la unidad seleccionada. La ventana 'Benchmark' se abrirá.

Haga clic en Iniciar punto de referencia .. Para abrir el cuadro de diálogo de configuración nombrado Configuración de referencia. Desde aquí le recomiendo que establezca las siguientes opciones:

Ratio de transferencia:

  • Número de muestras: 10
  • Tamaño de muestra (MIB): 1000 (este también es el máximo)
  • Realice Write Benchmark: Tictado (lea las notas a continuación antes de comenzar el punto de referencia!)

Tiempo de acceso:

  • Número de muestras: 1000

Luego haga clic Comience a la evaluación comparativa .. Para comenzar la prueba. Echemos un vistazo a la configuración que hicimos aquí.

El tamaño máximo de la muestra es 1000 MIB, y este (1,048,576,000 bytes) es un gran número para probar, pero hubiera sido excelente si pudiéramos seleccionar tamaños como 2GB y 4GB como lo hicimos en nuestro dd Comando de escritura de la utilidad de la utilidad del disco de línea arriba. Tomaremos 10 muestras, o en otras palabras 10 corridas de la lectura y escritura de 1 GB.

Esta utilidad de medición de rendimiento del disco gráfico es muy inteligente, ya que no destruirá los datos en su unidad, como por ejemplo, DD puede hacerlo si especifica incorrectamente el de = configuración para ser un disco o partición en lugar de un archivo.

La forma en que lo hace es, cuando selecciona realizar un punto de referencia de escritura (como hemos hecho aquí), es leyendo datos de la unidad en modo de acceso exclusivo (más sobre esto pronto), luego vuelve a escribir los mismos datos a los mismos ubicación! A menos que ocurra un error de escritura muy extraño, es poco probable que esto alguna vez dañe los datos en su unidad (aunque no está garantizado!). Si pasa su cursor sobre el Realizar Write Benchmark configuración puede leer un poco más sobre esto.

El acceso exclusivo simplemente significa que seleccionar la opción de escritura asegurará que su unidad esté desmontada antes de la prueba, lo que lo hace disponible solo para esta utilidad sin que pueda acceder a él desde cualquier otro lugar mientras la prueba se ejecuta. Esto es necesario para que la prueba de escritura se ejecute correctamente. Es lo que desearía en cualquier caso; i.mi. No desea acceder a su unidad (o copiar datos hacia/desde la unidad) mientras la prueba se está ejecutando, ya que esto puede sesgar los resultados significativamente.

También solicitamos tomar 1000 muestras de tiempo de acceso - i.mi. el tiempo que le toma al sistema operativo acceder a la unidad. Para las tarjetas SD esto será bastante bajo, por ejemplo, nuestra tarjeta de 128 GB dio un tiempo de acceso promedio de 0.71 ms en 1000 muestras, Mientras que un disco más lento puede dar lugar a tiempos de acceso de 20-100 ms.

SD vs Diferencia de rendimiento de HDD

La captura de pantalla anterior muestra las claras diferencias en la salida entre la prueba de la tarjeta SD de 128 GB y una unidad de disco duro de 3TB.

Conclusión

Armado con las habilidades para medir el rendimiento de lectura y escritura del disco, cuál será su próxima prueba de rendimiento de la unidad? Háganos saber en los comentarios a continuación, y si termina probando o en comparación con SSD modernos SSD, NVME, SD u otro almacenamiento de flash, publique algunos de los resultados que está viendo!

Tutoriales de Linux relacionados:

  • Cómo usar ADB Android Debug Bridge para administrar su Android ..
  • Cómo instalar Adobe Flash Player en Linux
  • Instalar Ubuntu 20.04 en Raspberry Pi
  • Prueba de referencia de unidad USB en Linux
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Cómo eliminar el bloatware de su móvil Samsung Android ..
  • Cosas para instalar en Ubuntu 20.04
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cómo reflejar su pantalla móvil de Android a Linux
  • Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..