Hallo!
Zuerstmal die Beschreibung der Anforderungen:
Ich habe ein Datenbanksystem was mit wenigen Nutzern (<100) arbeitet, die aber z.T. sehr große Abfragen machen müssen (5GB Read ist nicht selten). Die Daten sollen auf 2 Servern synchron geschrieben werden und im Leseprozess soll eine Lastverteilung auf die Server stattfinden.
Dazu habe ich PGPool-II im logischen Replikationsmodus eingerichtet. Das funktioniert soweit auch so wie ich es möchte, aber ich habe ein großes Manko, bei dem ich nicht weiss ob und wie ich es lösen kann: Die Datenübertragungsrate geht mit Nutzung von PGPool signifikant runter. In Testbeispilen mit einem 5 GB Read von einer einzelnen Postgresql-Instanz (ohne Umweg über PG-Pool) ziehe ich mit etwa 120MB/sec.
Um so wenig Komplikationen wie möglich reinzubringen ist der PGPool für diesen Test auf der selben Maschine installiert wie unsere Postgresdatenbank und hat für den moment auch nur diesen Instanz konfiguriert. Wenn ich nun PGPool auf dem selben Server anspreche mit dem gleichen Read so lädt er nur noch mit etwa 40MB/sec.
Verständlicherweise ist bei der Größe der abgerufenen Daten eine Verdreifachung der Abrufzeit…suboptimal.
Nun die Frage: habe ich Möglichkeiten PGPool (oder irgendein anderes Tool das mir Synchronisation und Load-Balancing anbietet) so einzurichten, dass kein signifikanter Abfall in der Übertragungsrate auftritt?
Danke im Voraus
Kai Dannies