Autovacuum "tut" nichts...

Allgemeines zu PostgreSQL.
Antworten
muelli
Neuer Benutzer
Beiträge: 1
Registriert: Di 3. Apr 2018, 08:14

Autovacuum "tut" nichts...

Beitrag von muelli » Di 3. Apr 2018, 08:21

Moin zusammen,

ich hab hier ein kleiens Problem mit Autovacuum.
Es läuft, aber scheint nichts zu tun:


SELECT pid, query FROM pg_stat_activity WHERE query LIKE 'autovacuum: %';
pid | query
-------+-------------------------------------------------
15456 | autovacuum: VACUUM schema.table1
16782 | autovacuum: VACUUM schema.table2
(2 rows)

In der Übersicht (gekürzt aufs wesentliche) sehe ich, dass es auch wohl "erfolgreich" durchgelaufen ist:

select relname,last_vacuum, last_autovacuum, last_analyze, vacuum_count, autovacuum_count,last_autoanalyze from pg_stat_user_tables where relname like 'event%' order by relname ASC;
relname | last_vacuum | last_autovacuum | last_analyze | vacuum_count | autovacuum_count | last_autoanalyze
-------------------------+-------------+-------------------------------+--------------+--------------+------------------+-------------------------------
table1 | | 2018-04-03 02:11:41.983786+02 | | 0 | 89 | 2018-04-03 01:42:41.12331+02
table2 | | 2018-04-03 07:58:19.478713+02 | | 0 | 1696 | 2018-04-03 07:59:01.567328+02

Allerdings wird kein Speicher ans OS freigegeben und die Platte läuft mit der Zeit voll...
Wenn ich per Hand ein VACUUM FULL table1 (usw) ausführe, dann wird einiges an Speicher dem OS wieder zugführt.

Hat jemand einen blassen Schimmer, woran das liegen könnte?
Bin für jeden Hinweis dankbar!

Grüße
Stefan

akretschmer
Erfahrener Benutzer
Beiträge: 7532
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Autovacuum "tut" nichts...

Beitrag von akretschmer » Di 3. Apr 2018, 12:10

muelli hat geschrieben:
Di 3. Apr 2018, 08:21


Allerdings wird kein Speicher ans OS freigegeben und die Platte läuft mit der Zeit voll...
Wenn ich per Hand ein VACUUM FULL table1 (usw) ausführe, dann wird einiges an Speicher dem OS wieder zugführt.

Hat jemand einen blassen Schimmer, woran das liegen könnte?
Ja klar, es arbeitet so wie geplant. Ein einfaches VACUUM, und damit auch das Autovacuum, markiert lediglich freie bereiche zur Wiederverwendung. Nachfolgende Insert oder Update - Befehle werden die neuen Daten eben dort anlegen, und nicht am Ende der Tabelle. Du hast das also exakt richtig beobachtet und alles arbeitet so wie zu erwarten ist.
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Antworten