Delirios de un Informático

La importancia de dos discos en una estación de trabajo

Para trabajar como desarrollador desde casa es necesario hacerse con un equipo decente que no te haga perder el tiempo por falta de rendimiento. El trabajo intensivo con bases de datos o virtualización provoca que cualquier máquina se colapse si no se ha configurado de un modo adecuado, y una de las cosas que considero imprescindibles es el elegir bien los discos duros. Actualmente cualquier placa de gama media-alta integra un controlador RAID que permite tener configuraciones de discos como un servidor, además de poder tener más de las 4 conexiones que antes se tenían con las interfaces IDE, de las cuales una estaba reservada para la unidad optica. Que Apple haya optado por permitir añadir una segunda unidad SSD dice mucho de la mejora de rendimiento que supone porque principalmente permite más operaciones en disco al mismo tiempo, al poder realizar las tareas que el sistema operativo necesita en un disco y el resto en el disco externo.

Primer ejemplo: si se trabaja con Windows es muy recomendable mover el archivo de paginación (Pagefile.sys) a un disco diferente al de la instalación del sistema operativo. Se puede ver en la documentación de Microsoft Knowledge Base:

Para mejorar el rendimiento, es conveniente poner el archivo de paginación en una partición diferente y en una unidad de disco duro física distinta. De esta forma, Windows puede administrar más rápidamente varias solicitudes de E/S. Cuando el archivo de paginación está en la partición de inicio, Windows debe realizar las solicitudes de lectura y escritura del disco tanto en la carpeta del sistema como en el archivo de paginación. Cuando el archivo de paginación se mueve a una partición diferente, hay menos competencia entre las solicitudes de lectura y de escritura.

Segundo ejemplo: el uso de una base de datos medianamente grande (100 millones de registros, 30 GB) supone que una consulta puede tirar mucho de disco en lectura y escritura. Si los datos de MySQL están en el mismo disco puede provocar un cuello de botella subiendo la carga del equipo, pero ubicar estos datos en un disco aparte reporta muchísima mejora de rendimiento y en casos de alta carga puede evitar la entrada en barrena del equipo cuando empieza a tirar de swap. Personalmente ha sido un grandísimo cambio en la restauración de volcados muy grandes y reparaciones de tablas, reduciendo mucho el tiempo de procesado.

Tercer ejemplo: la virtualización está muy extendida con excelentes virtualizadores como VirtualBox, que permiten instalar múltiples sistemas operativos en un entorno controlado para testear los desarrollos. Estas máquinas virtuales requieren muchísima escritura en disco en ciertos momentos (sobre todo al instalar el sistema o aplicaciones) lo que merma el rendimiento general del sistema al tener que escribir en el mismo disco que el del sistema operativo anfitrión. Pero este problema se soluciona fácilmente moviendo las máquinas virtuales a un disco secundario, de modo que toda la escritura en disco no afecta al sistema.

Por todo esto creo más adecuado invertir en, por ejemplo, 2 discos decentes de 500GB antes que en 1 de 1TB :).

2 comentarios en “La importancia de dos discos en una estación de trabajo”

im_mi dice:

Muy interesante el comentario. Y para una estación de trabajo, ¿recomiendas raid 0 u otra implementación raid?. Realmente, no es demasiado importante la replicación, con lo que con raid 0 nos valdría de sobra para la mejora de rendimiento, ¿verdad?

admin dice:

Cierto, no lo he comentado pero RAID 0 también es buena idea pero el resto de configuraciones no tienen demasiada utilidad en una estación de trabajo. Personalmente no tengo activado ninguna configuración RAID, tengo los dos discos como dos unidades separadas del siguiente modo: en el primer disco la instalación de Linux con sus particiones (/, /home y swap) y en el segundo una partición para Mac OS X y otra común, la que me permite separar todo lo que comento del disco de Linux y compartirlo con Mac (lo uso sólo el 1% del tiempo).