Quiero comparar un ssd (posiblemente con sistemas de archivos encriptados) y compararlo con los puntos de referencia realizados por crystalldiskmark en Windows.
Entonces, ¿cómo puedo medir aproximadamente las mismas cosas que hace crystalldiskmark?
Para la primera fila (Seq) creo que podría hacer algo como
LC_ALL=C dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc
sudo su -c "echo 3 > /proc/sys/vm/drop_caches"
LC_ALL=C dd if=tempfile of=/dev/null bs=1M count=1024
Pero no estoy seguro de los dd
parámetros.
Para el aleatorio 512KB, 4KB, 4KB (Profundidad de cola = 32) lee / escribe pruebas de velocidad No tengo idea de cómo reproducir las mediciones en Linux. Entonces, ¿cómo puedo hacer esto?
Para probar velocidades de lectura, algo así sudo hdparm -Tt /dev/sda
no parece tener sentido para mí, ya que quiero, por ejemplo, comparar algo como encfs
monturas.
Editar
@Alko, @iain
Quizás debería escribir algo sobre la motivación de esta pregunta: estoy tratando de comparar mi ssd y comparar algunas soluciones de cifrado. Pero esa es otra pregunta (la mejor manera de comparar diferentes soluciones de cifrado en mi sistema ). Mientras navegaba por la web sobre ssd y benchmarking, a menudo he visto a usuarios publicar sus resultados de CrystelDiskMark en foros. Entonces esta es la única motivación para la pregunta. Solo quiero hacer lo mismo en Linux. Para mi evaluación comparativa particular, vea mi otra pregunta.
fuente
Respuestas:
Yo diría que fio no tendría problemas para producir esas cargas de trabajo. Tenga en cuenta que, a pesar de su nombre, CrystalDiskMark es en realidad un punto de referencia de un sistema de archivos en un disco en particular: no puede hacer E / S sin procesar en el disco solo. Como tal, siempre tendrá una sobrecarga del sistema de archivos (no necesariamente es algo malo, pero es algo a tener en cuenta, por ejemplo, porque los sistemas de archivos que se comparan podrían no ser los mismos).
Un ejemplo basado en la replicación de la salida en la captura de pantalla anterior complementada con información del manual CrystalDiskMark (esto no está completo pero debería dar la idea general):
TEN CUIDADO : ¡este ejemplo destruye permanentemente los datos
/mnt/fs/fiotest.tmp
!Puede ver una lista de parámetros de fio en http://fio.readthedocs.io/en/latest/fio_doc.html .
fuente
fio
Windows.Creé un script que intenta replicar el comportamiento de crystalldiskmark con fio. El script realiza todas las pruebas disponibles en las diversas versiones de crystalldiskmark hasta crystaldiskmark 6, incluidas las pruebas 512K y 4KQ8T8.
El script depende de fio y df . Si no desea instalar df, borre las líneas 19 a 21 (el script ya no mostrará qué unidad se está probando) o pruebe la versión modificada de un comentarista . (También puede resolver otros posibles problemas)
Lo que arrojará resultados como este:
(Los resultados están codificados por colores, para eliminar la codificación de color, elimine todas las instancias
\033[x;xxm
(donde x es un número) del comando echo en la parte inferior del script).El script cuando se ejecuta sin argumentos probará la velocidad de su unidad / partición de inicio. También puede ingresar una ruta a un directorio en otro disco duro si desea probar eso en su lugar. Mientras se ejecuta, el script crea archivos temporales ocultos en el directorio de destino que limpia después de que termina de ejecutarse (.fiomark.tmp y .fiomark.txt)
No puede ver los resultados de la prueba cuando se completan, pero si cancela el comando mientras se está ejecutando antes de que finalice todas las pruebas, podrá ver los resultados de las pruebas completadas y los archivos temporales también se eliminarán después.
Después de un poco de investigación, descubrí que el punto de referencia de crystalldiskmark resulta en el mismo modelo de unidad, ya que parece que coincida relativamente con los resultados de este punto de referencia de fio, al menos de un vistazo. Como no tengo una instalación de Windows, no puedo verificar qué tan cerca están realmente en la misma unidad.
Tenga en cuenta que a veces puede obtener resultados ligeramente bajos, especialmente si está haciendo algo en segundo plano mientras se ejecutan las pruebas, por lo que es recomendable ejecutar la prueba dos veces seguidas para comparar los resultados.
Estas pruebas tardan mucho tiempo en ejecutarse. La configuración predeterminada en el script actualmente es adecuada para un SSD normal (SATA).
Configuración de TAMAÑO recomendada para diferentes unidades:
Un NVME de gama alta generalmente tiene una velocidad de lectura de ~ 2GB / s (Intel Optane y Samsung 960 EVO son ejemplos; pero en el caso de este último recomendaría 2048 en su lugar debido a velocidades más bajas de 4kb.), Un Low-Mid End puede tener entre ~ 500-1800MB / s velocidades de lectura.
La razón principal por la que estos tamaños deben ajustarse se debe a cuánto tiempo tomarían las pruebas, de lo contrario, para discos duros más viejos / más débiles, por ejemplo, puede tener velocidades de lectura tan bajas como 0.4MB / s 4kb. Intenta esperar 5 bucles de 1 GB a esa velocidad, otras pruebas de 4 kb suelen tener velocidades de alrededor de 1 MB / s. Tenemos 6 de ellos. Cada vez que ejecuta 5 bucles, ¿espera que se transfieran 30 GB de datos a esas velocidades? ¿O desea reducir eso a 7.5GB de datos en su lugar (a 256MB / s es una prueba de 2-3 horas)
Por supuesto, el método ideal para manejar esa situación sería ejecutar pruebas secuenciales y 512k separadas de las pruebas 4k (así que ejecute las pruebas secuenciales y 512k con algo como decir 512m, y luego ejecute las pruebas 4k a 32m)
Sin embargo, los modelos HDD más recientes son de gama alta y pueden obtener resultados mucho mejores que eso.
Y ahí lo tienes. ¡Disfrutar!
fuente
--output-format=json
y analice el JSON. La salida legible por humanos de Fio no está destinada a máquinas y no es estable entre las versiones de fio. Vea este video de YouTube de un caso en el que eliminar la producción humana de fio condujo a un resultado indeseable )Puedes usar
iozone
ybonnie
. Pueden hacer lo que puede hacer la marca de disco de cristal y más.Personalmente, utilicé
iozone
mucho los dispositivos de evaluación comparativa y pruebas de estrés desde computadoras personales hasta sistemas de almacenamiento empresarial. Tiene un modo automático que hace todo pero puedes adaptarlo a tus necesidades.fuente
No estoy seguro de que las diversas pruebas más profundas tengan algún sentido real al considerar lo que está haciendo en detalle.
Las configuraciones como el tamaño del bloque y la profundidad de la cola son parámetros para controlar los parámetros de entrada / salida de bajo nivel de la interfaz ATA en la que se encuentra su SSD.
Eso está muy bien cuando solo está ejecutando una prueba básica contra una unidad de disco de forma bastante directa, como un archivo grande en un sistema de archivos particionado simple.
Una vez que comience a hablar sobre la evaluación comparativa de un encfs, estos parámetros ya no se aplican particularmente a su sistema de archivos, el sistema de archivos es solo una interfaz en algo más que eventualmente retrocede en un sistema de archivos que retrocede en una unidad.
Creo que sería útil entender exactamente qué está tratando de medir, porque hay dos factores en juego aquí: la velocidad de E / S del disco sin procesar, que puede probar cronometrando varios comandos DD (puede dar ejemplos si esto es lo que usted querer) / sin / encfs, o el proceso estará limitado por el cifrado de la CPU y está intentando probar el rendimiento relativo del algoritmo de cifrado. En cuyo caso, los parámetros para la profundidad de la cola, etc. no son particularmente relevantes.
En ambos aspectos, un comando DD cronometrado le dará las estadísticas básicas de rendimiento que busca, pero debe considerar lo que pretende medir y los parámetros relevantes para eso.
Este enlace parece proporcionar una buena guía para la prueba de velocidad del disco utilizando comandos DD cronometrados, incluida la cobertura necesaria sobre 'derrotar buffers / caché', etc. Probablemente esto le proporcionará la información que necesita. Decida qué le interesa más, el rendimiento del disco o el rendimiento de cifrado, uno de los dos será el cuello de botella, y el ajuste del cuello de botella no beneficiará en nada.
fuente