Aunque la mayoría de las personas no se fijan en ello, el mundo funciona sobre diversos tipos de bases de datos que, si bien pueden ser muy diferentes entre ellas, tienen una cosa en común: la necesidad de utilizar memoria de alto rendimiento para entregar los datos de manera rápida y confiable.
En nuestra vida cotidiana interactuamos cada vez más con las bases de datos. Por ejemplo, desde el momento en que nos despertamos con una llamada telefónica ésta se procesa por la base de datos de registro de clientes del proveedor de servicios de telefonía, las compras electrónicas semanales también se procesan por la base de datos de transacciones del banco o cuando se nos presenta una base de datos con recomendaciones de nuevos títulos de películas según el historial de compras en línea de filmes que se tenga.
En todos los casos, las bases de datos que atienden muchas de nuestras consultas diarias necesitan tener un rendimiento consistente, rápido y eficiente. Sin embargo sólo las que están accesibles en la memoria RAM (memoria dinámica de acceso aleatorio) de un servidor de bases de datos funcionan más rápido, ya que no están limitadas por la alta cantidad de datos permitiendo satisfacer las demandas diarias de los clientes.[1]
Aunque atender solicitudes de datos con un rendimiento constante y manteniendo la integridad en las transacciones no es una tarea fácil, se pueden lograr accesos rápidos, directos y dinámicos montando las bases de datos en la memoria (IMDB, por sus siglas en inglés). Éstas se basan principalmente en el uso de memoria RAM de alta capacidad (8GB hacia arriba) y un elevado rendimiento. Dichas memorias atienden un alto volumen de solicitudes n veces más rápido que las bases de datos tradicionales residentes en discos duros y sirven de “columna vertebral” en cualquier escenario que requiera tiempos de respuesta rápidos al consultar grandes conjuntos de datos que incluso necesiten complementarse con aplicaciones específicas.
En este sentido, la velocidad de una RAM tiene una relación directa con el servidor de base de datos y a medida que se requiere mayor frecuencia de la memoria ésta incrementa su velocidad que incide positivamente en el rendimiento del servidor.
Instalación de memoria para mejorar el rendimiento de un servidor de base de datos
Como se ve en esta gráfica, el rendimiento del subsistema de memoria aumenta casi linealmente desde la configuración más lenta. Para habilitar el modo Quad Channel (la configuración más rápida) es necesario llenar el primer banco (junto al procesador) que consta de cuatro slots, para ello se debe instalar un módulo de memoria por cada slot. Al llenar los cuatro slots del primer banco habilitamos el Quad Channel. Es importante destacar que con el aumento en la carga eléctrica de una configuración de Quad Channel se observa un aumento de aproximadamente 70GB/s (cerca de 4 veces más que la configuración de Single Channel) en el rendimiento del subsistema de memoria que representa una solución ideal para aplicaciones de alto rendimiento que requieren un uso intensivo de recursos.
Rendimiento en la frecuencia de la memoria
En esta gráfica utilizamos los mismos ocho módulos de memoria DDR3 8GB operando a cuatro velocidades diferentes de memoria (MHz), simétricamente en ambos subsistemas de la memoria Xeon E5 de Intel, con el fin de alcanzar una configuración equilibrada que permita el mejor desempeño en las diferentes frecuencias de memoria mostradas. Al operar los módulos de memoria a 800MHz vemos el rendimiento más lento, con aproximadamente 40GB/s de velocidad de transferencia sostenida. A medida que aumentamos la frecuencia el rendimiento de memoria aumenta casi linealmente hasta el máximo de aproximadamente 70GB/s cuando funciona a 1600MHz y esto es ideal para escenarios donde los recursos escritos en la memoria requieren el máximo rendimiento posible para ser eficientes como son: las bases de datos de misión crítica y los procesos de virtualización.
Capacidad de memoria en comparación con el rendimiento de frecuencia
En esta gráfica se muestra el rendimiento de un subsistema de memoria instalada con 192GB corriendo 1066MHz, frente a otros dos; uno con una configuración con 128GB y otro con una configuración de 64GB, ambos funcionando a 1600MHz. Aumentando las capacidades de la memoria que funcionan a la misma velocidad de 1600MHz, ya sean con 128GB (16 x 8GB) o 64GB (8 x 8GB) simétricamente distribuidos, se muestra el mismo rendimiento sostenido de aproximadamente 70GB/s. Una capacidad de memoria mayor de 192GB (24 x 8GB), aunque corre a un ritmo más lento de 1066MHz, muestra un descenso poco significativo (de aproximadamente 17GB/s) en el rendimiento sostenido.
Conclusión
Seguir las normas apropiadas para instalar y habilitar los slots de memoria permite un equilibrio adecuado para optimizar un servidor de bases de datos. Lo más importante es utilizar módulos de memoria (RAM) de mayor capacidad y de frecuencias más altas. Estas memorias por si mismas permiten lograr un mejor rendimiento, pero al combinarlas con la adecuada configuración podemos multiplicar su rendimiento hasta en cuatro veces, incrementando con ello el ROI (retorno de inversión) y reduciendo el TCO (costo total de propiedad) a lo largo del ciclo de vida del servidor.
– Oscar Martínez
Oscar Martínez es director regional de Kingston para México, Miami, Centroamérica y Caribe.
Referencias
[1] La predicción de las preferencias del usuario en cuanto a películas utilizando la base de datos de Netflix, Departamento de Ingeniería Eléctrica y de Computación de la Universidad Carnegie Mellon http://users.ece.cmu.edu/~dbatra/publications/assets/goel_batra_netflix.pdf