viernes, 15 de junio de 2018

Test de rendimiento entre disco básico y seccionado

Vamos a realizar una pequeña prueba de rendimiento utilizando Crystal DiskMark para medir el rendimiento de un disco básico de Windows para luego montar un disco dinámico creado a partir de varios volúmenes individuales, pero todos en el mismo datastore.


Para ello vamos a montar unos cuantos discos de 10 GB que luego unificaremos, y uno de 50 Gb. Abrimos el administrador de discos de Windows, inicializamos los discos (boton derecho->inicializar) y seguidamente, sobre cualquiera de los discos, seleccionamos la opción de "Nuevo volumen seccionado"


La razón de hacer esto es una simple prueba de velocidad. Tal y como indica el wizard en la creación del volumen seccionado, lo que ocnseguimos con esto es que los datos se almacenen en secciones de varios discos, obteniendo un acceso más rápido a los datos en comparación con un volumen simple o distribuido.


Esto, cuando los discos son físicos, basicamente lo que consigues es acceder más rápidamente a los datos, por el simple hecho de haber más cabezales en los discos buscando y leyendo. Pero aqui lo que tenemos es un conjunto de discos virtuales que, aunque no están limitados en IOPs, sí que están limitados por las capacidades físicas del datastore que los aloja.


El último disco agregado, aunque es de 50 Gb, finalmente lo dejaremos en 40 GB formateados para que haya similitud de tamaño disponible con los discos seccionados.
¿Cual será el resultado? ¡Vamos a verlo! Lanzaremos 3 test, sobre el disco C: con el sistema operativo, sobre el disco E:, seccionado, y sobre el F:, que es como el C: pero sin lecturas causadas por el sistema operativo. Por cierto, dejo la explicacion que encuentras directamente en la web de Crystal Disk Mark sobre los distintos test que realiza la aplicacion:

  • All : All Test (“Seq Q32T1”, “4K Q8T8”, “4K Q32T1”, “4K Q1T1”)
  • Seq Q32T1: Sequential (Block Size=128KiB) Read/Write with multi Queues & Threads
  • 4K Q8T8: Random 4KiB Read/Write with multi Queues & Threads
  • 4K Q32T1: Random 4KiB Read/Write with multi Queues & Threads
  • 4K Q1T1: Random 4KiB Read/Write with multi Queues & Threads
...¡Y vamos alla!


Aqui tenemos el resultado del disco C:. Unos resultados normalitos, para un datastore de discos SAS, con los resultados habituales, como son una alta lectura secuencial, pero con pérdidas en el resto de lecturas.


La sorpresa llega con el disco seccionado. Como se ve rápidamente, el acceso secuencial a disco se pierde, implicando esto que la copia de, por ejemplo, archivos de gran tamaño, va a ir curiosamente más lenta. Pero a cambio el acceso de datos aleatorio se dispara, llegando a casi 20.000 IOPs, que no está nada mal!

Vamos con el último disco de nuestro test, la unidad F: a partir de un volumen simple MBR.


Pues los resultados tampoco distan mucho del disco seccionado! Lo extraño es la caida de lectura-escritura frente al disco C: La posible explicación del rendimiento de C: frente a F: puede ser al trabajo de caché del disco de sistema, que influye directamente en las lecturas/escrituras del test. Quizá si trabajasemos con un archivo de pruebas de tamaño mucho más grande, los resultados serian distintos. El problema es que tambien se falsearían las lecturas de datos no secuenciales.

De manera que creo que podemos entender que los discos seccionados permiten una ganancia de IOPs sobre todo en escritura y posiblemente no tanto en lectura, en base a las distintas funciones de cacheo, paginacion, ballooning memory y demas con los que pueda trabajar VMware y el propio Windows con el fin de mejorar tiempos de respuesta.

Para cualquier duda, consulta aclaracion o corrección, ¡no dudeis en comentar!

No hay comentarios:

Publicar un comentario

¡Gracias por colaborar en este blog con tus comentarios! :)