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.
quelle
Antworten:
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.
quelle
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).
quelle
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.
quelle
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.
quelle
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.
quelle