Ich bereite gerade eine Tabelle mit 2 Indizes und 250 Millionen aktiven Zeilen und etwa so viele tote Zeilen (oder mehr). Ich gab den Befehl VACCUM FULL ANALYSE von meinem Client-Computer (Laptop) an meinen Server aus. Es ist in den letzten 3-4 Tagen oder so seinen Geschäften nachgegangen; Ich frage mich, ob es bald zu Ende sein wird, denn ich habe viel zu tun!PostgreSQL Long VACUUM
Der Server verfügt über einen Quad-Code-Prozessor Xeon 2.66 GHz, 12 GB oder RAM und einen RAID-Controller mit 2 x 10K rpm SAS-Festplatten mit 146 GB in einer RAID 1-Konfiguration; Es läuft Suse Linux. Ich frage mich ...
Nun scheint erstens der VACUUM Postmaster-Prozess nur einen Kern zu nutzen. Zweitens sehe ich kein sehr hohes E/A-Schreib-zu-E/A-Leerlaufzeitverhältnis. Drittens kann ich vom Aufruf procinfo
extrapolieren, dass der VACUUM-Prozess die meiste Zeit (88%) auf I/0 wartet.
Also warum nutzt es nicht mehr Kerne über Threads, um den RAID-Controller zu überlasten (hohe E/A-Schreibvorgänge im Leerlaufverhältnis)? Warum wartet es auf E/A, wenn die E/A-Last nicht hoch ist? Warum geht es nicht schneller mit all dieser Kraft/Ressourcen an seinen Fingern? Es scheint mir, dass VACUUM Multithreaded sein kann und sollte, besonders wenn es an einem riesigen Tisch arbeitet und es der einzige ist, der funktioniert!
Ist es auch eine Möglichkeit, postgresql.conf zu konfigurieren, damit es solche VACUUMs multithread? Kann ich es töten und trotzdem von seiner teilweisen Säuberung profitieren? Ich muss an diesem Tisch arbeiten.
[Ich bin mit PostgreSQL 8.1]
Thx wieder
Sie sagen, um das Vakuum zu töten und dann den Tisch zu sichern, was wird aus VACUUMs Tod resultieren? Ich mag deine Idee von Drop und Restore. Thx –
Nichts passiert, wenn das Vakuum aufgehoben wird, du verlierst nur die Arbeit, die du getan hast, um den Tablespace so weit zurückzugewinnen. Wir hatten einen Job, der automatisch jeden Staubsauger um 8:00 Uhr tötete, so dass die Benutzer nicht festsaßen, wenn sie hereinkamen. Wenn dies passierte, würden wir den nächsten Abend wieder abladen. –
Es könnte eine gute Idee sein, von nun an einen Cron-Job zum Staubsaugen einzustellen. – Calyth