Welche Hardware brauche ich für einen performanten Datenbankserver? Diese Frage beschäftigt sowohl Endanwender als auch CONZEPT 16-Entwickler, ist doch eine schnelle Applikation ein wichtiger Baustein für die Kundenzufriedenheit. Leider geben auch ausgewiesene Hardware-Experten hier oft unbefriedigende Antworten, einfach weil sie die Anforderungen nicht ausreichend kennen. Unser heutiger Blog-Beitrag stellt zwei aktuelle Beispielkonfigurationen vor, die auch preislich attraktiv sind.
Worauf kommt es an?
Kurz gesagt: schnelle CPU, genug RAM und SSD-Speicher. Höhere Taktraten des Prozessors sind wesentlich wichtiger als eine große Anzahl von Cores. Viel Datenbankcache hilft viel, trotzdem brauchen wir eine hohe I/O-Leistung, die nur SSDs liefern können. Für eine hohe Betriebssicherheit sind fehlertolerante RAID-Konfigurationen und ein redundantes Netzteil auf jeden Fall erforderlich.
Variante 1 – 50 User, 100 GB Datenbank
Unsere erste Konfiguration soll möglichst preisgünstig sein, trotzdem aber für 50 Benutzer und für eine Datenbankgröße bis 100 GB eine sehr gute Performance liefern. Als Basis setzen wir das Intel-Mainboard S1200BTL ein, welches einen einzelnen XEON-Prozessor und 32GB RAM unterstützt. Dies reicht aus, um bei Einsatz von Windows Server 2008R2 oder Server 2012 bis zu 20GB an Datenbankpuffer zu verwenden. Als Prozessor wählen wir den XEON E3-1240V2 mit 3,4 GHz und 4 Cores. Das Mainboard bietet 6 SATA-Ports, an die wir 2 herkömmliche Festplatten mit 1TB anschließen (RAID-1, gespiegelt), auf welche das Betriebssystem installiert wird (dazu wird ein DVD-Laufwerk mit USB angeschlossen, da kein SATA-Port mehr frei ist). Dazu kommen 4 SSD in RAID-10-Konfiguration für die Datenbank. Hier verwenden wir die Samsung SSD 840pro mit jeweils 128GB Kapazität. Beim Einbau dieser Komponenten in ein 19"-Gehäuse mit redundantem Netzteil liegen wir bei knapp unter 2000 EUR netto.
Variante 2 – 100 User, 200 GB Datenbank
Die zweite Konfiguration ist für mehr Benutzer und größere Datenbanken ausgelegt. Um mehr RAM einzubauen ist ein Mainboard mit zwei Prozessoren notwendig, damit der maximale Speicherausbau auch realisierbar ist. Das Intel-Mainboard S2600CP2 läßt sich mit maximal 256GB RAM bestücken, 64 oder 128GB RAM sind meist ausreichend. Zwei XEON E5-2643 mit 3,3 GHz und jeweils 4 Cores (somit 8 Cores ingesamt) kommen hinzu. Als SSD verwenden wir auch hier die Samsung 840pro, jedoch mit 256GB Speicherplatz und betreiben diese an einem separaten RAID-Controller, dem LSI Megaraid 9271-4i (4 SSD als RAID-10). Für das Betriebssystem sind wiederum 2 Festplatten mit 2TB (RAID-1) an den Onboard-Anschlüssen vorgesehen. Mit 64GB RAM, 2 x 500W Netzteil und passendem Gehäuse liegt der Preis dann bei knapp 5000 EUR.
3 Antworten
Als urspünglichen Testserver haben wir auf XEON verzichtet, die Basis bildet ein Board von Asus P9X79 Pro IntelX 79 So. 2011 (max 64GB RAM)
– 16 GB RAM
– Intel Core I7 3820
– GeForce GT 430 (muss nicht sein, OnBoard reicht ggf. auch aus)
– 2x 1TB, Raid 1
– Gehäuse für 8 Platten, Lüfter usw.
– 1GB Netzwerkkarte (die OnBoard geht nicht bei Win2012 Business, bei Ubuntu 11.xx mit Win Foundation 2008 über KVM aber schon)
Preis letztes Jahr unter 1.000€, durch Preisanstieg entstehen z.Zt. Mehrkosten.
Der RAM wurde auf 32GB erweitert und mit weiteren Platten und SSD bestückt.
Test mit einer 20 GB Datenbank, Cache 20 GB, mit einem Win 2012 Business Server:
– Diagnose SSD 1:05 Min. (Sams. 830 Pro, 256 GB, max. request bei 480MB/sek.)
– Diagnose HD 2:08 Min. (Sata III, 7200U/Min., max. request bei 195MB/sek., ohne Raid)
Anmerkung: der Speicherverbrauch lag unter 800MB bei einer einfachen Diagnose.
Eine erweitete Optimierung dauert etwas über 50 Minuten.
Die CPU Auslastung bei allen Test lag meist zw. 15-20 %
Ein Zugriff (ohne Datenbank Optimierung) auf knapp 500.000 Belege, 2 Mio. Positionen (mit eingeschränkter Ergebnismenge) werden selbst beim ersten Lesen der Daten mit minimaler Verzögerung angezeigt. Eine Suche auf alle Belege über den Kundenname liegt unter 2Sek. (bei der ersten Suche), bei dem 1 Beleg gefunden wurde. Die bisherigen Cacheanforderungen belaufen sich zu diesem Zeitpunkt auf ca. 170 MB.
Bei einer älteren Maschine (ca. 6Jahre) dauert etwa 3-4 mal länger. Hauptgrund ist die volle Prozessorlast von mind. einem Kern. Bei der neuen CPU liegt dies bei ca. 17 % (ist fast nur im Verlauf zu sehen).
Schnelleres Booten ist beim Server meist nicht so das Thema, trotzdem gehen natürlich auch SSDs für das Betriebssystem. Der Grund für die Verwendung von HDDs liegt in der hohen Kapazität, dadurch ist ausreichend Platz beispielsweise für Datenbankkopien vorhanden (bei großen SSDs wird das schnell teuer).
Beispielsweise kann man 2 SSDs als RAID 1 (onboard) für das OS, 4 SSDs als RAID 10 (extra Controller) für die Datenbank und 2 HDDs als RAID 1 (onboard) für Kopien konfigurieren.
Vielen Dank für die Info! Ist es nicht sinvoll für die Betriebssystemplatten auch SSD’s zu verwenden (schnellerers booten, ggf. swappen etc., lebensdauer?) oder gibt es einen Grund warum hier noch "herkömmliche" Festplatten empfohlen werden ?