¿Qué es más importante para un servidor de base de datos? Mem? Mem velocidad? Núcleos?

11

Voy a mover mi servidor de base de datos a un hardware nuevo algo mejor. El servidor de base de datos actual no tiene ningún problema, excepto que está ejecutando Centos 4. El hardware actual es 2 quad core xeon 5335, 4 15K RPM en RAID 10 y 4GB (sí, realmente es solo 4GB) de memoria.

Las opciones de hardware en mi presupuesto casi no tienen diferencias de precio y tendrán los mismos 4 discos duros de 15K RPM en RAID 10. Son:

  • 2 quad core xeon 5335 con 8GB 533/667
  • 2 núcleos hexagonales xeon 2620 con 16 GB 1333
  • 4 opteron 8212 de doble núcleo con 8GB 667
  • 1 octo core xeon 2650 con 8GB 1333
  • 1 quad core xeon 3460 con 16 GB 1333

Excluyendo los discos duros, ¿cuál es el orden de las partes importantes de un servidor de base de datos? ¿Es algo así como: tamaño de memoria, velocidad de memoria, núcleos y luego tamaño de caché?

Echo dice reinstalar a Mónica
fuente
3
¿Cuál es su utilización actual en la CPU? ¿Estás corriendo al 10%? 50%? Si tiene un ~ 30-40% de forma regular, entonces parece que el 2620 con 16 GB de RAM es lo que desea (un chip hexacore Q1`12 con 16 GB de RAM RÁPIDA? Sí, por favor)
jcolebrand
@jcolebrand Ese es el que estaba pensando que sería mejor. Utilización de 10-20% en promedio con picos de 30-40% a veces.
Echo dice Reinstate Monica
XEON 2620 a 2 GHz, XEON 3460 a 2,8 GHz?
Nils

Respuestas:

21

En mi experiencia, lo que estás buscando estaría en este orden de prioridad:

  1. Velocidad del subsistema de disco. RAID10 en mi experiencia es el mejor. Puntos de bonificación para SSD.
  2. Cantidad total de RAM Cuanto más RAM, más caché podrá tener su servidor.
  3. Velocidad de memoria Una RAM más rápida es obviamente mejor que una RAM más lenta, sin embargo, la RAM siempre es más rápida que los discos, por lo que una RAM más lenta es mejor que una RAM más rápida.
  4. Número de núcleos de CPU
  5. velocidad de la CPU

Obviamente, esto depende de la aplicación, pero normalmente el trabajo de un servidor de base de datos es proporcionar un acceso realmente rápido a los datos, por lo que la velocidad de la CPU es menos importante que la velocidad de acceso a los datos (discos y RAM). Pero, obviamente, si está utilizando muchos cálculos / matemáticas en sus consultas, necesita más recursos de CPU.

Josh
fuente
2
Dependiendo de la arquitectura db, diría que más núcleos serían mejores en general que más velocidad de la CPU, porque una mayor velocidad de reloj! = canalización más corta, y hay muchas cosas para considerar allí, pero con más núcleos, el sistema operativo puede tener más espacio para hacer procesos secundarios, y los motores suelen ser lo suficientemente inteligentes como para poder extenderse por más núcleos.
jcolebrand
@jcolebrand punto tomado y respuesta actualizada!
Josh
2
Dado que se mencionó específicamente a MySQL, los procesadores más rápidos suelen ser una mejor opción que más (suponiendo que no esté hablando solo de 1 o 2), ya que la velocidad de una sola consulta está fundamentalmente limitada por la velocidad de un único procesador. Incluso las versiones más recientes de MySQL no se escalan tan bien como algunos otros RDBMS en múltiples núcleos debido a la contención interna de mutex y semáforos. Ejecuto varios servidores de 24 núcleos y le daría a mi brazo izquierdo para cambiarlos por la mitad de los núcleos que son 1.5 veces más rápidos.
Aaron Brown
7

Cuando se trata de MySQL, también debe considerar el motor de almacenamiento predeterminado de sus datos.

Si usa solo datos de MyISAM, solo debe considerar lo siguiente

Velocidad de disco, velocidad de memoria, RAM total, CPU

Number of Cores no es un factor importante porque MyISAM (de hecho, mysqld) no utiliza múltiples núcleos.

Si solo usa datos de InnoDB, ahora tiene algo de qué hablar cuando se trata de núcleos.

MySQL 5.5 ahora viene con soporte multinúcleo para InnoDB.

Todas las CPU se dispararán en todos los cilindros para InnoDB siempre que configure InnoDB correctamente. Lo creas o no, si no configuras InnoDB, hay casos en que las versiones anteriores de InnoDB serán más rápidas que las versiones más nuevas.

Nota para los moderadores

Si hay demasiados enlaces, no desestime el voto. Solo alertame y puedo parafrasear de extractos de esos enlaces.

RolandoMySQLDBA
fuente
Es bueno saber eso. Muchas de las tablas son MyISAM, pero la mayoría, si no todas, se pueden cambiar a InnoDB, lo que estaba pensando hacer de todos modos. Voy a actualizar a 5.1 (desde 4.1)
Echo dice Reinstate Monica
Necesita actualizar a 5.5. MySQL 5.1 requiere el complemento. Es más fácil solo ir a 5.5.
RolandoMySQLDBA
InnoDB Plugin se puede instalar fácilmente en 5.1. Además, Percona Server 5.1 se basa en el complemento InnoDB.
Aaron Brown
@AaronBrown: Dado que Echo tiene MySQL 4.1, Percona 5.1 o MySQL 5.5 lo harían. Aunque he instalado los complementos semisync 5.5 antes, soy un poco flojo con los complementos.
RolandoMySQLDBA
0

Por todo lo que ya se ha dicho y lo que parece de los servidores DB: "2 hex core xeon 2620 con 16GB 1333" me parece la primera opción.

Use RDIMM3 con una velocidad de 1333 MHz: 12 o 15 GB es probablemente más rápido que 16 GB, ya que puede dividir el número de DIMM en 3.

Si su DB tiene muchas escrituras, busque también un buen rendimiento de E / S en disco.

Nils
fuente