it-swarm-eu.dev

Ist die CPU-Leistung für einen Datenbankserver relevant?

Dies ist eine rein theoretische Frage. Angenommen, ich habe eine Anwendung auf mehreren Servern bereitgestellt.

  1. Ein Load Balancer,
  2. Mehrere/skalierbare Anwendungsserver
  3. A (single) database server (for the moment)

In den beiden ersten Teilen weiß ich, wonach ich suchen muss. Aber was ist mit dem Datenbankserver? Nach welcher Art von Hardware sollte ich suchen?

  • Ist die CPU-Frequenz für einen Datenbankserver relevant?
  • Sind mehrere Kern-CPUs relevant?
  • Ist RAM wichtiger als die CPU?

PS: Angenommen, die ausgewählte Datenbank ist MySQL oder PostgreSQL.

33
Zenklys

Für PostgreSQL kann die CPU-Leistung sehr relevant sein, insbesondere wenn ein relativ hoher Prozentsatz des aktiven Arbeitssatzes Ihrer Daten in den Arbeitsspeicher passt. Die meisten Datenbanken, mit denen ich gearbeitet habe, hatten die meiste Zeit CPU-Leistung als Hauptengpass. (Ich habe gerade vmstat auf einem Server überprüft, auf dem Websites mit Millionen von Treffern pro Tag gehostet werden, auf denen mehr als 5 TB Datenbankspeicher gehostet werden, und ich habe nie mehr als 2% Wartezeit auf der Festplatte gesehen, aber einen Spitzenwert von 12% CPU-Zeit für Benutzer.)

Da PostgreSQL prozessbasiert ist, kann jeder einzelne Prozess nur so schnell wie ein Kern ausgeführt werden. In einer Mischung wie auf dem oben genannten Server mit einem hohen Volumen kleiner Anforderungen ist jedoch die Gesamt-CPU über alle Kerne hinweg am wichtigsten. Bei gleicher CPU-Gesamtleistung ist PostgreSQL im Allgemeinen mit weniger, schnelleren Kernen besser als mit vielen, langsameren Kernen.

Bis zu dem Punkt, an dem ein hoher Prozentsatz Ihres aktiven Datensatzes zwischengespeichert wird, zeigt das Hinzufügen von RAM) in der Regel mehr Geld als das Hinzufügen von Kernen. Nachdem Sie über ausreichend Caching verfügen, profitieren Sie von zusätzliche RAM sinkt und Sie sollten die CPU-Leistung besser steigern.

Für weitere Details zu diesem Thema in Bezug auf PostgreSQL gibt es meines Erachtens keine bessere Quelle als PostgreSQL 9.0 High Performance by Greg Smith . (Vollständige Offenlegung, ich war ein technischer Gutachter für das Buch, erhalte jedoch keinen finanziellen Vorteil aufgrund des Umsatzes.)

29
kgrittn

Aus MySQL-Sicht ist das eine sehr geladene Frage

CPU-Frequenz relevant für einen Datenbankserver?

Während schnellere CPU und Motherboard großartig sind, können andere Engpässe im Weg stehen. Solche Engpässe umfassen:

  • Festplatten-E/A.
  • Verbindungsmaxima
  • Netzwerk-Latenz
  • Abfrageleistung pro Verbindung

Jeder kleine Vorteil hilft, aber ich muss sagen Nein , weil die CPU-Geschwindigkeit an sich die oben genannten Engpässe nicht verbessert. Was kann ein Formel-1-Rennwagen mit einem offenen Fallschirm oder einem 800-Pfund-Gorilla am Steuer tun?

Sind mehrere Kern-CPUs relevant?

Das hängt ganz davon ab, welche Version von MySQL Sie ausführen. Das MySQL 5.1 InnoDB Plugin, MySQL 5.5 und XconDB von Percona Server haben alle Einstellungen , auf die Sie RICHTIG KONFIGURIEREN MÜSSEN Lassen Sie InnoDB auf alle Kerne zugreifen. Der eigentliche Anreiz dafür liegt in der Tatsache, dass einige ältere Versionen von MySQL LEFT UNCONFIGURED schneller sind als neuere Versionen, wie ich in meinen vorherigen Beiträgen besprochen habe:

Wenn Sie also nicht bereit sind, InnoDB für den Zugriff auf alle CPUs zu konfigurieren, erhalten Sie mit mehreren Kernen absolut nichts .

Ist RAM wichtiger als die CPU?

Oh ja in der Tat. Die Speicherkonfiguration für MySQL erfordert das Einrichten

Wenn Sie zu wenig oder zu viel von einer Kombination dieser Dinge und MySQL anfordern, kommen Sie zurück, um Sie zu beißen. Eine schnellere CPU mit MySQL, die nicht richtig konfiguriert ist für RAM) lässt MySQL Sie nur schneller beißen.

23
RolandoMySQLDBA
  • Nein
  • Nein
  • Ja

In einfachen Worten, Sie benötigen RAM und IO Leistung (Latenz + Lesegeschwindigkeit + Schreibgeschwindigkeit) für Datenbanken.

Die Wahl zwischen 4 oder 6 Kernen oder 2,5 GHz gegenüber 3 GHz ist nicht wirklich relevant (ich nehme an, Sie müssen sich nicht zwischen einem P3-450 mit 32 GB RAM oder dem neuesten Xeon mit) entscheiden 1 GB RAM).

Wenn Sie CPU-gebunden sind, haben Sie andere Probleme (schlechtes Design, schlechte Indizes, Austausch, nicht dedizierter Server usw.)

6
gbn