PostgreSQL und Virtualisierung und Caching

Mahlzeit!

Hat jemand von euch Erfahrung mit Linux-VMs und PostgreSQL? Gibt es grundsätzliches zu beachten ggü der Installation von PostgreSQL auf physischen Machinen?

Hintergrund: Wir haben eine Art Reporting DB auf einer vm mit 4 Kernen, 4 GB Ram und Linux installiert. Die bereitgetellten Daten umfassen vier Fakt Tabellen und einige Dimensionstabellen. In Summe gerade mal 16GB Daten. Die Datenbank wird einmal die Woche per Restore aus einem Dump erstellt, also nur Leseoperationen…

Komischerweise brauchen etwas größere Statements IMMER gleich lange. Also: Maschine neugestartet, keiner drauf, Statement laufen lassen (Aggregation) 8 Sekunden, Statment sofort nochmal laufen lassen - wieder 8s. Platten nicht ausgelastet, Prozessor nicht ausgelastet, RAM vom PostgreSQL Dienst… minimaler Verbrauch…

work_mem, effective_cache_size, shared_buffer… alles schon ausprobiert, die gleichen Verhältnisse wie auf einer anderen (größeren) Büchse… auf letzterer ist das Verhalten wie erwartet beim zweiten Abwurf deutlcih schneller (8 Sekunden auf kleiner 1 Sekunde)…

enable_bitmapscan enable_hashagg etc. alles auf “on”…

Wer kennt das auch? Gibts den ein oder anderen Klugschiss was man noch verändern könnte?

Was bedeutet “minimaler Verbrauch”?

Welchen Speicher haben die beiden Maschinen effektiv zur Verfügung, wie sehen die entsprechenden Einstellungen in der Konfiguration aus?