Home Reviews Hardware RAID0 Gaming Performance

RAID0 Gaming Performance

0

Mucho se ha dicho y muy poco se ha probado en lo que respecta a la verdadera performance en RAID0 con respecto a su utilización para Gaming, incluso yo mismo he hecho para MaximoPC un artículo dedicado…

pero basado en información erronea, he llegado a conclusiones erroneas y lo acepto. Bien, debido a la poca o ninguna información que hay en la red con respecto a este tema, decidí plantear este artículo en donde voy a explicar y demostrar con resultados si es en efecto util para algo aplicar el RAID0 para mejorar la performance de carga en juegos, debido a que este es mi objetivo principal, por razones obvias, vamos a evitar otras aplicaciones donde se hace obvio que el RAID es util (ej, copia de archivos secuenciales grandes).

Pero antes de comenzar, vamos a pasar a explicar algunos conceptos básicos que no son faciles de comprender y que no he encontrado información concisa en internet al respecto, el topico sobre RAID vs Multiple Spindle.

Single Spindle vs Multiple Spindle vs RAID0:

Primero que nada, vamos a aclarar lo que significan estas 3 formas de organizar a los discos, en la primera nos estamos refiriendo a un solo disco en el sistema, Spindle es una palabra que proviene de «unidad de disco» o mas bien «el plato en si mismo», como su palabra lo indica, Multiple Spindle significa simplemente «multiples platos» independientes, o lo que quiere decir de disponer mas de un disco en la PC y RAID0 es el concepto básico de utilizar 2 o mas discos en una configuración en «paralelo» en donde la información es escrita en ambos ( o mas) discos a la vez y la misma es escrita en conjunción, mejorando la performance de lectura secuencial a cambio de perjudicar la de escritura y lectura aleatoria, puesto que se deben sumar las latencias de ambos discos.

Single Spindle:

Si en una PC particular, utilizamos 1 solo disco, siempre enfocando esto al aspecto Gaming, lo que ocurre básicamente es que este disco es el mismo que debe cargar el sistema operativo, luego los programas agregados y así mismo escribir en el archivo de intercambio (PageFile) para almacenar aplicaciones temporarias en ese archivo en caso de quedarse sin memoria. Al utilizar este tipo de tecnologia de arreglo, no hay redundancia, no hay efectividad en el uso del disco y las cabezas del mismo, deben moverse como locas, de un lado a otro, el disco debe en todo momento almacenar multiples archivos, sobre todo los del sistema operativo, que son archivos extremadamente pequeños, debe tener una relacion excelente de «seek time» para desempeñarse con exito y algunas esperas entre aplicaciones y aplicacion son evidentes, ya que el mismo debe almacenar todo el contenido que se está utilizando en un momento dado.

Multiple Spindle:

En este tipo de arreglo, disponemos de al menos 2 discos, uno que se encargará de manejar la carga de Windows y el PageFile y el otro que se encargará de almacenar nuestras aplicaciones y juegos, lo que ocurre en una configuración multiple spindle es que mientras el disco que se encarga de ejecutar el sistema operativo esta terminando su misión, el disco secundario podrá comenzar a abrir las aplicaciones de inicio (o bien manejar el PageFile) al mismo tiempo que el disco del sistema se encuentra trabajando, esto crea el concepto de paralelismo de carga o lo que implica facilmente que el subsistema de discos puede trabajar, leyendo información de ambos lugares a la vez, efectivamente duplicando la eficiencia, ya que se descontarían los seeks de ambos discos, en vez de sumarse, este tipo de arreglo acelera considerablemente la carga, tanto de aplicaciones post-boot como de carga de juegos, puesto que si recuerdan, todas las librerias de C++, DirectX, drivers del sistema, etc, se encuentran en la primer unidad física, mientras que el juego se encuentra en la segunda, permitiendo una carga paralela de aplicaciones, dlls y librerias a la par del juego, en teoría este arreglo debería brindar una ligera mejora con respecto al arreglo de 1 solo disco y puesto que ambos discos tienen excelentes tasas de transferencia cuando leen unidades cortas (4k por ej) el cambio en respuesta del sistema debería ser notorio.

RAID0:

En un arreglo RAID0 (MatrixRAID para este caso) ocurren varias cosas, que no sabiamos con anterioridad, pero que acorde a lo que pude investigar, evidencian un problema latente. Cuando ambos discos se ensamblan en una unidad única RAID0, ambas unidades deben sumar su tiempo total de acceso y el tiempo total se incrementa, apenas un poco mas que el máximo de una sola unidad, disminuyendo la performance de seek, puesto que ambos discos deben hacer el seek en el exacto mismo momento y tardar exactamente lo mismo, en el momento que una de las 2 unidades tarda un poco mas, aunque sea un cuarto de milisegundo, esto impacta negativamente, aumentando el tiempo total, es por esto que en una configuración RAID0 el tiempo «seek time» siempre será ligeramente mayor que el mayor tiempo de la unidad mas lenta, por mas que los benchmarks marquen lo contrario.

Otro tema e tener en cuenta en una configuración RAID es que al encontrarse la información dividida por la mitad, si bien la performance de RAID0 en archivos grandes es excelente, todas las demás funciones (lectura de archivos pequeños y muy pequeños) suelen ser realmente desastrozas, puesto que la unidad mínima de escritura suele dividirse por la mitad, esto es, para escribir 4k, deben escribir 2k cada unidad, si uds recuerdan bien, a mas pequeña es la unidad de escritura/lectura, mas lenta es la misma, siendo preferible siempre recurrir a escrituras/lecturas mas grandes.

El desastre es inminente cuando vemos este escenario, un disco que de manera simple, puede leer a x cantidad de Mb/s un sector de 8k, lo hace exactamente a la mitad de performance cuando tiene que leer un sector mas pequeño todavia, de 4k, si colocamos ambos discos en RAID0, la performance final de ambos discos será la de una lectura de 4k (para una lectura de 8k) pero a su vez, debemos sumar el promedio de «seek» de cada unidad, efectivamente, elevando el tiempo final de lectura, por esto, en teoría, si leemos o escribimos archivos pequeños, muy pequeños en una configuración RAID0, no veremos ningun incremento de performance sobre la utilización de 1 disco solo y en algunos casos veremos que la performance de hecho empeora. Esto se debe al concepto que no tenía antes en mente de la división de bloques en una configuración RAID0 y como cada disco empeora su performance acorde a mas chicos son los bloques a leer/escribir, en este caso, es preferente y casi seguro, que un disco solo se desempeñará mejor, pero no se fien de mis palabras, lo veremos luego en los resultados.

Ahora uds se preguntarán, pero que tipo de aplicaciones pueden evidenciar este problema del RAID0 (que es un problema general de todas las configuraciones RAID0), bueno, basicamente, todos los usos que uno le da a una PC de escritorio basicamente. La carga de archivos para iniciar el sistema operativo (sea linux o windows) utiliza una tasa enorme de multiples lecturas/escrituras de archivos extremadamente pequeños, incluso la carga de archivos en un juego hacen esto, puesto que los juegos rara vez leen un archivo de 300mb de corrido, sinó que hacen pequeñas lecturas por aqui y por alla, basta que se lean 500bytes por un lado y 30kb del otro para que se evidencia este problema y la performance decaiga.

Performance:

Antes de comenzar a mostrar las comparativas, veamos primero, que performance tiene un disco solo y luego 2 discos en RAID0, recuerden que estamos hablando de VelociRaptors aqui.

HDTach:

Primero veamos con un solo disco.

Performance impecable como es de esperarse para un solo disco, veamos ahora que ocurre en la comparativa.

  

Como pueden apreciar, tan pronto como dejamos librado a la libertad del programa de leer secuencialmente todo el disco completo, vemos que los resultados nos muestran una perspectiva asombrosa, pero luego de utilizar sistemas RAID0 por mas de 8 años, se que esto no es verdad, esta performance es engañosa en el mejor de los casos y rara vez se condice con la realidad de una PC de escritorio, debido a que estamos dejando que los bloques de lectura mas grandes hagan de las suyas sin permitir que el disco deba moverse rapidamente de lugar a lugar, quitando efectivamente la limitación del RAID0 de utilizar siempre bloques mas pequeños para cada disco, nuestro problema parece no existir aqui.

HD Tune:

Para ilustrar el efecto de lo que ocurre a medidad que mas chicos se hacen los bloques de lectura/escritura y el efecto que esto tiene sobre la performance, primero creé unidad RAID0 de 300Gb con un Stripe Size (tamaño mínimo del bloque de 8k)

Los resultados como ven son extremadamente bajos para las lecturas de menos de 64k, ahora veamos que ocurre cuando elevamos el tamaño mínimo del «Stripe Size» a 64k

Como ven, ahora la lectura es incrementalmente mucho mejor en los sectores mas pequeños, ya que estamos forzadamente leyendo sectores de 64k con un solo bloque de 64k y no creamos posteriores particiones en la lectura, esto evidencia una mejora considerable en las lecturas desde 64k en adelante.

Entonces, para minimizar el problema de lecturas extremadamente lentas en una unidad de RAID0 cuando manejamos archivos pequeños, el Stripe Size nunca debería ser inferior a 64k, por algo, este es un estandar que utilizan casi todas las compañias en sus SoftRAID.

Tiempo de Carga:
Windows 7 Boot:

Ahora, con todo lo dicho, veamos los resultados de tiempo de carga de un Windows 7 igualmente instalado en todas las pruebas.

Observan las consecuencias de lo que estaba explicando?, los números hablan por si solos, tanto si usamos 8k como 64k, el tiempo de carga del Windows es de 26 segundos, mientras que un solo disco logra obtener un mucho mejor tiempo de carga de 21, simplemente porque no debe lidiar con replicar el seek y tampoco con una performance inferior de lectura mínima, efectivamente, un solo disco se desempeña mejor, porque obtiene un mejor tiempo de respuesta en seek (que no suma) y a su vez una mejor lectura de bloques extremadamente pequeños (inferiores a 8k), utilizar una configuración Multi-Spindle aqui no tiene efecto puesto que el segundo disco, a pesar de manejar el Swap-File no contribuye al tiempo final, sin embargo, cuando carguemos el Windows de aplicaciones que se utilicen en el disco secundario, las diferencias con el RAID0 y un solo disco, se harán evidentes, ya que ambos discos leerán distintas cosas al mismo tiempo, situación que ninguna configuración RAID0 via software puede hacer.

Alien vs Predator:

Veamos ahora que ocurre con los juegos…

Comenzamos por la unidad RAID0 de 8k, aquí la partición es tan pequeña que realmente logra impactar negativamente al resultado, aunque mas bien no sea 1 solo segundo, pero con niveles mas pesados y circunstancias mas extremas, se puede separar mucho mas, vemos como efectivamente una configuración de 64k Stripe Size logra sacar provecho mejor de las lecturas pequeñas pero no pueden competir con lo que un solo disco tiene para ofrecernos. Debido a que el juego se encuentra en la configuración Multiple-Spindle en el segundo disco, aqui ven como utilizar estos 2 discos separados efectivamente logra incluso reducir 1 segundo el total de carga comparado a un solo disco, que su vez es mejor que la configuración RAID0.

Crysis:

Veamos si lo mismo sucede con el Crysis.

El Crysis no tiene piedad, la lectura para RAID0 con un bloque de 8k es 2 segundos mas lenta que si se usa un RAID0 a 64k, efectivamente demostrando que el estandar de 64k para Stripe Size es el mejor que se puede utilizar para usos generales, a su vez, la performance de 1 solo disco es idéntica al RAID0, incluso cuando Crysis suele leer secuencialmente bastante mas que el Alien vs Predator, demostrando que es nuevamente, innecesario el RAID0, sin embargo, cuando separamos ambos discos en Multiple-Spindle e instalamos el Crysis en el segundo disco (separado del disco de arranque) vemos como efectivamente logramos reducir 1 segundo mas la carga.

Conclusión:

Escuché decir muchas cosas que no son ciertas del RAID0 como que no se nota la mejora hasta que tengamos una PC muy poderosa, que no es el caso nuestro y pude comprobarles a Uds que no es cierto, ya que si un Core i7 a 3.2Ghz con 12Gb de memoria no es poderoso, no se lo que es, además de que el sistema se encuentra máximizado, descomprimiendo texturas, las lecturas del disco deben ser lo mas ágiles posibles, esto es, lo mas rápidas posibles en pequeñas lecturas, ya que esto es lo que el juego realmente hace, el RAID0 no solo no logra dar ningún beneficio sinó que incluso logra en efecto aumentar el tiempo de carga, puesto que el procesador no solo tiene que lidiar ahora con descompactar esas texturas sinó que ademas debe administrar 2 discos a la vez (ya que todas las soluciones de motherboards actuales son RAIDs via software) no solo esto, se le suma el total promedio de seek (donde el disco mas lento determina el seek total ligeramente mayor del RAID0 y la consecuente lectura lenta de bloques pequeños (lugar donde el RAID0 realmente brinda una perdida de performance con respecto a 1 disco solo).

Todo esto hace que uno se realice la siguiente pregunta:

Sirve para algo el RAID0 en escritorio y gaming? y la respuesta es un triste no, no sirve, en el mayor de los casos aumenta el tiempo de carga, no lo reduce.

Sirve entonces para algo el RAID0? si, para aumentar la performance final de lectura/escritura de archivos largos, si y solo si estos se leen de manera secuencial y este es el unico caso en el cual RAID0 ofrecerá una mejor performance que un solo disco, para todos los demas casos, su performance será igual o inferior a 1 solo disco, esta es la triste verdad, por mas que los benchmarks nos engañen (ya que todos ellos acuden a la lectura secuencial como forma de prueba de mayor performance, nada mas alejado de lo que realmente ocurre en una PC de escritorio.

La mejor solución entonces para gaming se trata de utilizar discos en configuración Multiple-Spindle, esto es, un disco para cada función que se asume se ejecutará «al mismo tiempo» efectivamente reduciendo el tiempo de carga y aumentando la sensación de «respuesta» del sistema.

Si tienes 2 discos idénticos y usas tu PC para gaming, el mejor uso para ellos es separados, cada uno haciendo misiones críticas que juntos en un RAID0, en el mejor de los casos, las mejoras que la gente percibe son meramente psicologicas y no se condicen con lo que realmente sucede dentro de la PC y los relojes no mienten.

{jcomments on}

Comentar este review en el foro.

NO COMMENTS

Salir de la versión móvil