Consideraciones al elegir procesadores AMD sobre Intel

13

Trabajo para una empresa con muchas aplicaciones web LAMP heredadas, donde estamos tratando de actualizar nuestro hardware de ~ 250 servidores físicos a ~ 40 nuevos servidores con virtualización. Hemos recibido dos presupuestos de proveedores: uno sugiere procesadores Intel y el otro AMD.

Una cosa que me gusta de los altos recuentos de núcleos con AMD es que podremos dedicar núcleos a las máquinas virtuales, lo que significa que tenemos menos posibilidades de que las aplicaciones interfieran entre sí debido a picos, que en cierta medida es más importante para mí que el rendimiento máximo.

Las otras consideraciones que tengo en mente son:

  • El consumo de energía puede ser diferente (no es un problema en nuestro caso).
  • Las instrucciones de CPU como CRC32 (SSE 4.2) no serán compatibles (Edición: MySQL 5.6 parece ser compatible con SSE4.2. No estoy seguro acerca de Apache)
  • MySQL no escala perfectamente después de ~ 16 / ~ 32 núcleos (estoy dispuesto a aceptar esta compensación).

¿Qué otras consideraciones me estoy perdiendo?

(Nota para los moderadores: conozco este hilo , considero la pregunta un poco diferente).


Editar: Suponga que las tareas son excepcionalmente paralelas (servidores web) y que no me importa que los servidores de bases de datos no sean tan paralelos.

Morgan Tocker
fuente
Esto puede resultarle interesante: it20.info/2007/10/intel-amd-vmware-and-aircrafts
ToastMan
Si su aplicación puede dividir consultas de lectura / escritura en diferentes grupos de servidores, es posible que pueda evitar algunos de los problemas de rendimiento de MySQL ejecutando una segunda instancia para las lecturas esclavas. No sé lo suficiente sobre su arquitectura o carga de trabajo para saber si esta es una idea viable o si esto solo agregará una tonelada de gastos innecesarios y complejidad, pero es una opción a considerar.
jgoldschrafe
Estoy familiarizado con cómo funciona la división de lectura / escritura. No es adecuado para una ganancia de rendimiento en este caso.
Morgan Tocker

Respuestas:

10

Ha habido una buena cantidad de prensa con respecto a la última oferta de procesador AMD, llamada Bulldozer. La versión "Servidor" de esta parte aún no está disponible, pero la oferta de escritorio es una excelente visión de algunos de los posibles problemas de las nuevas cosas.

En cuanto a la generación actual de la parte del servidor, en general, la recomendación es bastante buena a nivel genérico. El trabajo en la Web y (la mayoría) de las bases de datos se basa principalmente en números enteros, y las CPU AMD funcionan bien con el cálculo de números enteros. Además, el servicio web es (genéricamente) un problema que puede ser altamente paralelo. AMD se está enfocando específicamente en "muchos núcleos hacen que el trabajo sea más rápido", y LAMP (nuevamente, genéricamente) tiende a responder bien a eso.

Un área a la que realmente debe prestar atención son las dependencias de un solo hilo en sus aplicaciones. Las partes de AMD no se escalan tanto en sentido horario como las partes de Intel, por lo que los procesos que son fundamentalmente de un solo hilo pueden embotellar su sistema general mucho más rápido de lo que lo harían en las partes de CPU más rápidas. Solo usted sabe si esto se aplica a usted o no. Ciertas operaciones de la base de datos pueden ser mejor servidas desde procesadores Intel más rápidos con recuentos de núcleos más pequeños para que esos pocos hilos gordos realmente puedan gritar.

El código de la aplicación también es importante aquí. Algunos procesos de servidor web de larga duración podrían consumir mucho tiempo de subproceso único y también desearían un reloj más rápido. Eso puede resolverse reescribiendo la necesidad de ese proceso de larga ejecución, pero hasta entonces un reloj más rápido sería bueno.

Pero, en general, para cargas de trabajo de estilo lot-o-webserver-vm, esas partes de 12 núcleos pueden escalar bastante lejos. Si se encuentra con algunos problemas de un solo hilo, ir con las partes de 8 núcleos con mayor frecuencia sería un compromiso aceptable.

sysadmin1138
fuente
Gracias, desafortunadamente el sistema AMD no será una excavadora. Es un AMD Opteron 6140 (o similar).
Morgan Tocker
@MorganTocker Como sucede, estoy familiarizado con esa clase de CPU, y para eso escribí mi publicación. Bulldozer tiene algunos problemas específicos que no tuve.
sysadmin1138
4

En su mayor parte, encontrará que ambos procesadores son muy comparables. Los procesadores AMD tienen una ligera ventaja en las velocidades de RAM (generalmente) debido al cuarto canal. Los procesadores Intel generalmente tienen un CPI más bajo (posiblemente más con HT , aunque depende mucho de la carga de trabajo). AMD son generalmente más baratos.

La mayoría de estos factores le darán una ventaja a uno u otro, dependiendo de su carga de trabajo. Ninguno de los dos será significativamente peor que el otro (suponiendo configuraciones sensatas y CapEx aproximadamente igual).

Chris S
fuente
2

Debe considerar las diferencias de rendimiento que puede traer la arquitectura RAM diferente, y si ese es un factor decisivo para su organización.

También como una nota al margen, si bien es posible que no le preocupe el rendimiento máximo, si sus máquinas virtuales no tendrán múltiples núcleos cada una y / o tareas específicas dentro de un solo subproceso, hay una considerable ventaja de rendimiento en las inteligencia por núcleo que AMD, incluso si el recuento total de núcleos es menor.

sandroid
fuente
Supongamos que nuestras aplicaciones son adecuadamente multiproceso (los servidores web lo están; dispuestos a aceptar que MySQL no lo es por completo).
Morgan Tocker
2

La principal diferencia está en el enfoque; en el rango medio, AMD tiene un ligero énfasis en los núcleos en una parte que cuesta tanto como una parte similar a Intel. La parte de Intel tendrá menos núcleos sincronizados más alto.

Entonces, para las cargas de trabajo de aplicaciones web virtualizadas, es probable que desee favorecer los sistemas AMD.

A menos que haya una gran diferencia de precio, no me preocuparía por los dólares. Yo miraría más al subsistema IO. Y, el TCO en 40 servidores será principalmente soporte, licencias de software, si corresponde, y personal, probablemente no los servidores en sí.

Como mínimo, debe hacerse un favor, atraer a ambos proveedores y ejecutar sus sistemas en su hardware antes de comprometerse con 40 servidores de cualquiera de ellos. Solo usted puede responder la pregunta correctamente para su carga de trabajo particular.

alphadogg
fuente
¡Gracias por su respuesta! No tenemos una carga de trabajo, tenemos varias. Por lo tanto, para atraer al proveedor, tendríamos que migrar por completo y luego migrar nuevamente para probar ambos. Me doy cuenta de que es lo óptimo, simplemente no es práctico en nuestro caso. Podemos elegir un número menor de roles para mover y proyectar, pero para hacerlo necesitamos saber qué debemos medir / vigilar; de ahí mi pregunta;)
Morgan Tocker
Por carga de trabajo, quiero decir que tiene una carga de trabajo GENERAL que consiste en (presumiblemente) muchos servidores diferentes que hacen cosas diferentes. Debería poder convertir un subconjunto de servidores clave en imágenes virtuales con bastante facilidad hoy en día (con un software que pueda ayudarlo) que pueda cargarse en los servidores que está a punto de comprar. No es una tarea insignificante, sino la única forma de asegurarse de que no solo la CPU, sino el subsistema IO y todo lo demás funcione a su favor. De lo contrario, todos renuncian a la mano y estiman. :)
alphadogg
1

Una cosa más para tirar, tenga cuidado si usa la virtualización de cualquier tipo, ya que la migración de los invitados de Intel a AMD puede ser un problema real y la agrupación entre las marcas no está en absoluto en las tarjetas. Apéguese a una plataforma para cada clúster y acepte que es difícil saltar de uno a otro.

marca
fuente
La migración en vivo entre arquitecturas con KVM parece no ser un gran problema en 64 bits: linux-kvm.org/page/…
Ophidian
El usuario dijo "LAMP heredado"; que huele a que podría haber invitados de 32 bits para mí. Aún así, ¡es bueno saber que KVM se está haciendo cargo del problema! Gracias por la nota
Mark
Sí, algunos invitados son de 32 bits, pero planeamos movernos y ser todos de 64 bits.
Morgan Tocker