Der optimale Datenbankserverr
PostgreSQL - Eine Einführung
Den optimalen Datenbankserver zu erhalten
wird nur schwer möglich sein. Dafür muss ausreichend Geld, Zeit und Erfahrung
vorhanden sein! Aber! Beachtet man einige Dinge bei der Auswahl des Servers und
seiner Konfiguration, bekommt man schon recht gute Ergebnisse. Ein performanter
Datenbankserver nützt nichts, wenn die Umgebung nicht ebenfalls eine
entsprechende Leistung erbringt. Häufig ist das Netzwerk (Router, Switch,
Firewall, 100Mb/1Gb) der Engpass.
Mit der richtigen Hardware fängt alles an ? Arbeitsspeicher. Je mehr
je besser. Minimum sollten heute 2 GB sein. Aber Achtung! Mehr als 4GB machen
für 32bit Systeme nur selten Sinn. Prozessor. Zwei sind besser als einer. 4 sind
noch besser und 8 machen richtig Spaß. Und ein interner CPU-Cache ab 2 MB macht
sich auch nicht schlecht bemerkbar. Festplatten sollten sich so schnell drehen,
dass einem schwindelig wird. Das ist bei 15k Umdrehungen der Fall. Einem RAID
System. Aber! Kein Spar-RAID 5 mit drei Festplatten. 5-6 Platten dürfen es schon
sein. Auch RAID 1 kann eine Alternative sein. Und eine HotSpare Platte sollte
auch dabei sein. Ein leistungsstarker RAID-Controller. Mit dem Onboard-
Controller kann man nicht abheben.
RAID-Level im Vergleich n / 2 1 1 n Maximaler Schreibdurchsatz n - 1 n
/ 2 2 n Maximaler Lesedurchsatz n / 2 1 1 n Parallele Schreib-Operationen n -1 n
/ 2 2 n Parallele Lese-Operationen 100 / n 50 50 0 Kapazitäts-Overhead (Prozent)
1 1 1 0 Redundante Laufwerke n > 2 n > 3 n = 2 n > 1 Anzahl Laufwerke
RAID 5 RAID 10 RAID 1 RAID 0
Das Betriebssystem für einen DB-Server Linux, aber am besten Enterprise
Versionen oder Debian- Derivate (Ubuntu LTS o.ä.) Am besten minimal installiert.
Verzichten Sie auf die graphische Umgebung und den Schnick-Schnack. Ggf. Webmin
zum Administrieren benutzen. Eigene Partitionen für swap, tmp, var und home
anlegen. Ggf. Sicherungspartition einplanen. Eigene Partitionen für die
Tablespaces anlegen. Verwenden Sie XFS als Filesystem. Optimieren Sie die
Kernelparameter:
echo 1073741824 > /proc/sys/kernel/shmmax
echo 2097152 > /proc/sys/kernel/shmall
echo 0 > /proc/sys/vm/overcommit_memory
echo 20 > /proc/sys/vm/swappiness