Überlegungen bei der Auswahl von AMD-Prozessoren gegenüber Intel

13

Ich arbeite für ein Unternehmen mit vielen alten LAMP-Webanwendungen, bei denen wir versuchen, unsere Hardware von ca. 250 physischen Servern auf ca. 40 neue Server mit Virtualisierung zu aktualisieren. Wir haben zwei Angebote von Anbietern erhalten - eines schlägt Intel-Prozessoren vor, das andere AMD.

Eine Sache, die mir an den hohen Kernzahlen bei AMD gefällt, ist, dass wir in der Lage sein werden, Kerne für VMs zu reservieren, was bedeutet, dass wir eine geringere Wahrscheinlichkeit haben, dass sich Anwendungen aufgrund von Spitzen gegenseitig stören, was zu einem gewissen Grad mehr ist wichtig für mich als Spitzenleistung.

Die anderen Überlegungen, die ich im Auge habe, sind:

  • Der Stromverbrauch kann unterschiedlich sein (in unserem Fall kein Problem).
  • CPU-Anweisungen wie CRC32 (SSE 4.2) werden nicht unterstützt (Bearbeiten: MySQL 5.6 scheint SSE4.2 zu unterstützen. Apache ist nicht sicher.)
  • MySQL lässt sich nach ~ 16 / ~ 32 Kernen nicht perfekt skalieren (ich bin bereit, diesen Kompromiss zu akzeptieren.)

Welche anderen Überlegungen fehle ich?

(Hinweis für Moderatoren: Mir ist dieser Thread bekannt - ich betrachte die Frage als etwas anders.)


Bearbeiten: Angenommen, die Aufgaben sind außergewöhnlich parallel (Webserver), und es ist mir egal, ob die Datenbankserver nicht so parallel sind.

Morgan Tocker
quelle
Das könnte Sie auch interessieren: it20.info/2007/10/intel-amd-vmware-and-aircrafts
ToastMan 21.10.11
Wenn Ihre Anwendung Lese- / Schreibabfragen auf verschiedene Serverpools aufteilen kann, können Sie möglicherweise einige der MySQL-Leistungsprobleme umgehen, indem Sie eine zweite Instanz ausführen, von der Slave-Lesevorgänge ausgeführt werden. Ich weiß nicht genug über Ihre Architektur oder Arbeitsbelastung, um zu wissen, ob dies eine praktikable Idee ist oder ob dies nur eine Tonne unnötigen Overhead und Komplexität hinzufügt, aber es ist eine zu erwägende Option.
jgoldschrafe
Ich bin mit der Funktionsweise von Lese- / Schreibsplit vertraut. In diesem Fall ist dies nicht für eine Leistungssteigerung geeignet.
Morgan Tocker

Antworten:

10

In Bezug auf das neueste AMD-Prozessorangebot, den Bulldozer, wurde in der Presse bereits viel berichtet. Die "Server" -Version dieses Teils ist noch nicht verfügbar, aber das Desktop-Angebot bietet einen großartigen Einblick in einige der potenziellen Probleme des neuen Materials.

Insgesamt ist die Empfehlung für den Serverteil der aktuellen Generation auf allgemeiner Ebene ziemlich gut. Web-Serving und (die meisten) Datenbankarbeiten basieren größtenteils auf Integer-Werten, und die AMD-CPUs eignen sich gut für die Berechnung von Integer-Werten. Darüber hinaus ist Web-Serving (im Allgemeinen) ein Problem, das stark parallelisiert werden kann. AMD konzentriert sich eher speziell auf "viele Kerne sorgen für eine schnellere Arbeit", und LAMP (wieder allgemein) neigt dazu, gut darauf zu reagieren.

Ein Bereich, auf den Sie wirklich achten müssen, sind Single-Thread-Abhängigkeiten in Ihren Anwendungen. Die AMD-Komponenten lassen sich nicht so weit im Uhrzeigersinn skalieren wie Intel-Komponenten. Daher können Prozesse, die im Grunde genommen Single-Thread-Prozesse sind, Ihr Gesamtsystem viel schneller zum Engpass bringen als bei schnelleren CPU-Komponenten. Nur Sie wissen, ob dies auf Sie zutrifft oder nicht. Bestimmte Datenbankvorgänge lassen sich möglicherweise besser von schnelleren Intel-Prozessoren mit geringerer Kernanzahl bedienen, damit diese wenigen fetten Threads wirklich schreien können.

Auch hier spielt der Anwendungscode eine Rolle. Einige lang laufende Webserver-Prozesse könnten viel Single-Thread-Zeit in Anspruch nehmen und wünschen sich auch eine schnellere Uhr. Das kann gelöst werden, indem die Notwendigkeit für diesen lang andauernden Prozess umgeschrieben wird, aber bis dahin wäre eine schnellere Uhr schön.

Für Workloads im Lots-o-Webserver-VM-Stil lassen sich diese 12-Core-Komponenten im Allgemeinen ziemlich weit skalieren. Wenn Sie auf einige Single-Thread-Probleme stoßen, wäre es ein akzeptabler Kompromiss, sich für die höher getakteten 8-Core-Teile zu entscheiden.

sysadmin1138
quelle
Danke, das AMD-System ist leider kein Bulldozer. Es ist ein AMD Opteron 6140 (oder ähnlich).
Morgan Tocker
@MorganTocker Ich kenne diese CPU-Klasse, und dafür habe ich meinen Beitrag geschrieben. Bulldozer hat einige spezifische Probleme, auf die ich nicht eingegangen bin.
sysadmin1138
4

Zum größten Teil werden Sie feststellen, dass beide Prozessoren sehr vergleichbar sind. AMD-Prozessoren haben aufgrund des 4. Kanals (normalerweise) einen leichten Anstieg der RAM-Geschwindigkeit. Intel-Prozessoren haben im Allgemeinen einen niedrigeren CPI (möglicherweise mehr bei HT , obwohl dies sehr stark von der Arbeitslast abhängt). AMD sind in der Regel günstiger.

Die meisten dieser Faktoren wirken sich je nach Arbeitsbelastung positiv auf den einen oder anderen aus. Keiner wird signifikant schlechter sein als der andere (bei vernünftigen Konfigurationen und ungefähr gleichem CapEx).

Chris S
quelle
2

Sie sollten berücksichtigen, welche Leistungsunterschiede die unterschiedliche RAM-Architektur mit sich bringen kann und ob dies ein entscheidender Faktor für Ihr Unternehmen ist.

Auch als kleine Randbemerkung: Auch wenn Sie sich nicht um die Spitzenleistung kümmern, wenn Ihre VMs nicht über mehrere Kerne verfügen und / oder wenn bestimmte Aufgaben in einem einzigen Thread ausgeführt werden, ergibt sich ein erheblicher Leistungsvorteil für die Intel Per Kern als AMD, auch wenn die Gesamtkernzahl geringer ist.

sandroid
quelle
Angenommen, unsere Anwendungen sind in geeigneter Weise multithreaded (Webserver sind bereit zu akzeptieren, dass MySQL nicht vollständig ist).
Morgan Tocker
2

Der Hauptunterschied liegt in der Herangehensweise; Im mittleren Bereich legt AMD einen leichten Schwerpunkt auf Kerne, die etwa so viel kosten wie ein Intel-Teil. Der Intel-Teil wird weniger Kerne haben, die höher getaktet sind.

Für virtualisierte Web-App-Workloads sollten Sie daher AMD-Systeme bevorzugen.

Wenn es keinen großen Preisunterschied gibt, würde ich mir keine Sorgen um Dollars machen. Ich würde mehr auf das IO-Subsystem schauen. Die Gesamtbetriebskosten auf 40 Servern setzen sich hauptsächlich aus Support, Softwarelizenzierung (falls vorhanden) und Personal zusammen, wahrscheinlich nicht aus den Servern selbst.

Zumindest müssen Sie sich selbst einen Gefallen tun, beide Anbieter einbeziehen und Ihre Systeme auf deren Hardware ausführen, bevor Sie sich auf 40 Server von einem der beiden Server festlegen. Nur Sie können die Frage für Ihre jeweilige Arbeitsbelastung richtig beantworten.

alphadogg
quelle
Vielen Dank für Ihre Antwort! Wir haben keine Arbeitslast - wir haben mehrere. Um den Anbieter einzubinden, müssten wir zunächst vollständig migrieren und dann erneut migrieren, um beide zu testen. Mir ist klar, dass dies das Optimum ist, es ist in unserem Fall einfach nicht praktikabel. Wir können eine kleinere Anzahl von Rollen auswählen, um sie zu verschieben und zu projizieren, aber um dies zu tun, müssen wir wissen, worauf wir achten sollen; daher meine Frage;)
Morgan Tocker
Unter Workload verstehe ich, dass Sie einen GESAMT-Workload haben, der (vermutlich) aus vielen verschiedenen Servern besteht, die verschiedene Aufgaben ausführen. Sie sollten heutzutage in der Lage sein, eine Untergruppe von Schlüsselservern auf einfache Weise in virtuelle Images umzuwandeln (mit einer Software, die dies unterstützt), die auf die Server geladen werden kann, die Sie kaufen möchten. Keine zu vernachlässigende Aufgabe, aber der einzige Weg, um sicherzugehen, dass nicht nur die CPU, sondern auch das IO-Subsystem und alles andere zu Ihren Gunsten funktioniert. Ansonsten verzichtet jeder auf jede Hand und schätzt. :)
Alphadogg
1

Beachten Sie, dass die Migration der Gäste von Intel zu AMD ein echtes Problem sein kann und eine markenübergreifende Clusterbildung überhaupt nicht in Frage kommt, wenn Sie Virtualisierung jeglicher Art verwenden. Halten Sie sich für jeden Cluster an eine Plattform und akzeptieren Sie, dass es schwierig ist, von einer zur anderen zu springen.

Kennzeichen
quelle
Live-Migration zwischen Architekturen mit KVM scheint unter 64-Bit- Betriebssystemen
Ophidian,
Benutzer sagte "Legacy LAMP"; das riecht nach 32-Bit-Gästen für mich. Trotzdem ist es schön zu wissen, dass KVM das Problem in den Griff bekommt! Danke für den Hinweis.
Mark
Ja, einige Gäste sind 32-Bit-Gäste, aber wir möchten umziehen und alle 64-Bit-Gäste sein.
Morgan Tocker