Servidor de base de datos: ¿RAM rápida pequeña o RAM lenta grande?

33

Actualmente estamos diseñando nuestros nuevos servidores de bases de datos, y hemos llegado a un intercambio que no estoy del todo seguro de cómo responder.

Estas son nuestras opciones: 48 GB 1333 MHz o 96 GB 1066 MHz.

Mi opinión es que la RAM debería ser abundante para un servidor de base de datos (tenemos muchos datos, y algunas consultas muy grandes) en lugar de lo rápido que podría ser. Aparentemente no podemos obtener chips de 16GB a 1333MHz, de ahí las opciones anteriores.

Entonces, ¿deberíamos obtener mucha RAM más lenta o menos RAM?

Información extra:

Número de ranuras DIMM disponibles: 6
servidores: CPU Dell Blades: 6 núcleos (solo un socket debido a las licencias de Oracle).

Josh Smeaton
fuente
12
En mi opinión, un 100% más de capacidad de RAM supera un 20% adicional en la velocidad de RAM.
Joe Internet
3
Especialmente porque ni siquiera es el 20%;)
TomTom
Gracias a todos. Estaba bastante seguro de esto también, pero quería confirmación.
Josh Smeaton

Respuestas:

59

Querrás ir con la RAM grande y lenta. La diferencia en el rendimiento de RAM es insignificante en comparación con la diferencia entre el rendimiento de RAM y el rendimiento del disco.

Skyhawk
fuente
Por supuesto, esto depende del tamaño de la base de datos: detalles básicos pero importantes aún.
Morg
Sí, y Josh especificó claramente que el escenario en cuestión involucra "una gran cantidad de datos".
Skyhawk el
Para algunas personas, un millón de filas se ve como "muchos y muchos datos". Sin embargo, difícilmente es una razón para no tener todo en la memoria;)
Morg.
16

Muy bien, es muy muy muy simple:

¿Su base de datos cabe en 48 GB de RAM con sistema operativo y todo? Si es así, tómalo. De lo contrario, toma 96 GB

Además, el ajuste de la base de datos en xyz GB de RAM significa que se ajusta a los índices, las vistas y todo eso.

Los comentarios de SSD son completamente absurdos, tanto el ancho de banda como el tiempo de acceso no están en el mismo nivel y ningún SSD puede justificar tomar menos RAM.

Morg
fuente
55
Esta es una información muy importante. Si la base de datos es de solo 5 GB y no se planea que sea mucho más grande, entonces también podría optar por una cantidad menor de RAM más rápida.
Kibbee
13

Solo base de datos? Dependiendo de la base de datos, creo que la RAM más grande sería mejor. Se ha demostrado que la diferencia de velocidad es minúscula en el mejor de los casos, pero los 48 gb adicionales pueden / pueden hacer una gran diferencia.

TomTom
fuente
11

Definitivamente gran RAM, maldita sea la velocidad.

El acceso a datos aleatorios para la tecnología RAM del siglo XX '90 es inferior a 100 ns. Eso está usando chips prácticamente antiguos que ni siquiera encajarán físicamente en nada del límite contemporáneo.

El acceso a datos aleatorios para discos duros de 15k rpm se mide en milisegundos. 100 ns es 10 000 veces más corto (nano -> micro -> milli) que 1 ms. La RAM actual es más rápida y el HDD necesita varios milisegundos para acceder a los datos. No podría importarme menos si mi RAM fuera 50 000 más rápido o solo 30 000 veces más rápido que el HDD, si pudiera obtener más.

Paweł Brodacki
fuente
5

Debes llamar tu atención en algunos puntos:

  • Memoria latente La velocidad de la memoria depende de dos factores: la velocidad del bus y la latencia. Usualmente, los chips con más densidad resultan en una latencia más alta, lo que finalmente significa menos velocidad
  • Datos de índice totales La y más crítica para cargar todos los datos de índice en la memoria. Los datos de índice son los datos más críticos que necesita en la memoria (mayor efecto de penalización en el rendimiento).
  • Velocidad del disco ¿Tiene los datos de la base de datos almacenados en SSD? Si la respuesta es sí, tenga especial cuidado con la latencia de la memoria.
nefeli
fuente
2

ANCHO DE BANDA DE MEMORIA = / = VELOCIDAD!

Probablemente, la parte más importante de la información faltante es la temporización de la memoria y el tipo de CPU / FSB. reduzca el retraso de carga de memoria de la CPU en unos pocos ciclos y disparará el doble de ancho de banda en ciertos cálculos. Algunas bases de datos no usan grandes cantidades de RAM debido al sistema operativo y razones técnicas, ¿qué servidor de base de datos está utilizando? Tipo de CPU? L [123] niveles de caché? tipo de consultas a ejecutar? tamaño de la base de datos?

Silverfire
fuente
2
-1. Realmente mal en el 99.9% de los casos.
TomTom
¿A qué parte te refieres?
Silverfire
2
Cualquier base de datos más grande que la memoria se ralentiza de inmediato. Los ciclos de CPU son una broma en comparación con, a menos que sea un caso OLAP muy especial, la latencia IO introducida. La mayoría de las bases de datos usan grandes cantidades de RAM: el servidor de bases de datos más pequeño que he visto que no es una broma para una pequeña base de datos es muchas veces mayor en uso de RAM que la estación de trabajo promedio. A menos que insista en utilizar tecnología obsoleta ("límites del sistema os"). Y ni la velocidad de la CPU ni el tipo fsb hacen la diferencia: las bases de datos necesitan memoria.
TomTom
0

Antes de gastar demasiado dinero en hardware incorrecto, haría algunas pruebas y análisis antes de comprar hardware.

  • En primer lugar, piense en su SLA.
  • ¿Hay requisitos duros para el rendimiento y los tiempos de respuesta?

Su elección debe depender de muchos factores:

  • bajo diferentes cargas de trabajo y usos, ¿cuál es realmente el cuello de botella?
  • CPU, memoria, almacenamiento, red?
  • ¿Es quizás más importante gastar más dinero en almacenamiento más rápido que más memoria?
  • CPU más rápido que más memoria? red más rápida? rediseño menor en sofware / sql?

  • su análisis también podría ser muy relevante para los desarrolladores, bases de datos y archivos de software y diseñadores de consultas sql .....

Si está utilizando Windows, puede ejecutar fácilmente perfmon para ver algunas estadísticas sobre el sistema en ejecución actual y puede ser muy afortunado de tener una idea clara de sus necesidades.

manmathan
fuente
1
Soy un desarrollador y estoy ayudando a influir en esta decisión. Carecemos de un administrador de sistema real, por lo que todos (6 de nosotros) tenemos aportes en la discusión. Nuestros servidores actuales son de 32 bits y no pueden hacer mucho debido al límite de memoria por proceso. Nuestra red / almacenamiento está (debería estar) bien por el momento. El backend de almacenamiento es una SAN. Nuestra CPU nunca está al máximo. La mayor parte del costo asociado con nuestras consultas es E / S, que debería aliviarse con la capacidad de usar más RAM. También estamos actualizando a RAC. Tenemos una idea clara de lo que necesitamos. Es la minucia lo que es cuestionable.
Josh Smeaton