HI zusammen,
bei der Installation eines PostgreSQL Servers haben wir folgende Probleme festgestellt und können uns eigentlich nicht vorstellen, das wir die einzigen sind, die diese Probleme haben, deswegen dieser Post.
Schon wenn wir die Scripte laufen lassen, um die Tabellen anzulegen braucht dieses auf unserem neuen Server wesentlich länger als z.B. auf meinem Entwicklungsnotebook. (genauer Zahlen folgen unten). Intensive Analysen haben ergeben, dass das fsync die Ursache des Problems ist. Wenn man dieses in der Config ausschaltet dann fliegt der Server, aber die Frage ist halt, wie ist das bei euren Servern, was habt ihr unternommen, damit diese auf Leistung kommen ?
Hier nun die technischen Daten:
Server:
2x Intel Xeon 5420 2,5GHz QuadCore,
4 GB RAM
6x SATA-II 750 GB Seagate mit 32 MB Cache, davon 4 im RAID10 und 2x Hot Spare
mit folgenden Controllern haben wir getestet
a) Raid-Controller ICP Vortex 5058BL mit 128 MB Cache
b) Raid-Controller Adaptec Raid 5805 mit 512 MB Cache
c) Raid-Controller 3Ware 3W-9690SA-8I-SGL mit 512 MB Cache und Battery Backup Unit BBU
als Betriebssystem haben wir SLES10SP1 (suse enterprise 10 Sp1)
Die Controllerperformance haben wir mit bonnie++ in der Version 1.02-408 getestet.
Und jetzt die Zahlen, um Dateien anzulegen, die ja ausschlaggebend sind, wenn man die Tabellen anlegt, wobei es mir natürlich nicht nur um das anlegen der Tabellen geht, nur hier sieht man den Effekt am besten.[INDENT][INDENT] ohne fsync/mit fsync [/INDENT][/INDENT]Controller a: 3400/130
Controller b,c: 5200/13
(b und c liefern praktisch identische Ergebnisse)
Um auch mal Zahlen zu zeigen, die die Realität wiederspiegeln, hier noch die Zeiten, um das oben angesprochene Script auszuführen:
Mit fsync
Dell-Notebook mit Core 2 Duo Prozessor: ~70 Sekunden
Server mit Controller a: ~60 Sekunden
Server mit Controller b, c: ~650 Sekunden
Ohne fsync
Dell-Notebook mit Core 2 Duo Prozessor: ~30 Sekunden
Server mit Controller a: ~1 Sekunden
Server mit Controller b, c: ~0,4 Sekunden
Das setzt sich dann z.B. in der Datenübernahme aus der alten Datenbank fort, bei der der Server mit dem alten Controller ca 1:30 Stunden benötigt und mit den neuen Controllern ca. 2:10 Stunden.
Das sind also nicht nur praxisferne Zahlen sondern sie beeinflussen massiv die Performance der Datenbank.
Jetzt die Frage: was habt ihr bei euren Servern gemacht, wie sind eure Erfahrungen, könnte ihr das bestätigen ?
Insbesondere: kann man den Server ohne fsync laufen lassen ? (Die Doku dazu liest sich ja ziemlich gruselig, bis hin zur zerschossenen Datenbank)
Alle anderen Parameter wie synchronous_commit, full_pages_write, commit_delay … haben wir durchprobiert, die haben aber allenfalls Änderungen im einstelligen Prozentbereich zur Folge. Nützen hier also gar nichts.
Alle Hinweise oder Kommentare sind willkommen.
Danke sehr.
JSpatz