Re: Autovacuum en una sola db con multiples esquemas.

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Espartano <espartano(dot)mail(at)gmail(dot)com>
Cc: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Autovacuum en una sola db con multiples esquemas.
Date: 2011-11-30 13:52:04
Message-ID: 1322660955-sup-8837@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Excerpts from Espartano's message of mié nov 30 02:42:58 -0300 2011:
> Hola gente, tengo una duda con el autovacuum, tengo una base de datos
> que tiene varios esquemas dentro de ella, cada esquema tiene un
> usuario mediante el cual se conectan unas aplicaciones que hacen
> repetidamente update sobre una tabla, esos programas realizan
> periódicamente vacuum full (el nivel de updates es algo alto del orden
> de 10 mil a 20 mil updates sobre esa misma tabla de cada esquema
> diariamente) y el vacuum full lo realizan cada 15 updates !!!

Ugh. Me imagino que encuentran que Postgres es lento.

> lo cual
> es creo yo bastante malo pues se debería utilizar auto-vacuum para
> ello pues la db es 8.3, me he dado a la tarea de comprobarle a los
> desarrolladores que el hecho de que su aplicación haga tantos full
> vacuum sobre la tabla es el motivo de que esos 10 o 20 mil updates se
> lleven las 24 horas del día en terminar (en mi laptop realice mas de 1
> millón de inserts en menos de 20 minutos) mi pregunta es, hay algún
> inconveniente en dejar activados los vacuum full en todos los usuarios
> de la bd ( es decir en todos los esquemas) y solo desactivar el vacuum
> full en uno de ellos y activar también el autovacuum en esa base de
> datos ?
>
> Es decir en todos los esquemas - 1 estarían haciendo vacuum full y
> solo lo voy a desactivar en el esquema en donde quiero comprobar mi
> teoría a los desarrolladores, pero tendré que activar el auto-vacuum
> para toda la db y eso incluye los esquemas que aun seguirán haciendo
> vacuum full, hay algún inconveniente que debería tomar en cuanta al
> respecto de lo anterior?

No debería.

Podría llegar a haber un problema hipotético si autovacuum se quedara
esperando a obtener el lock de una tabla que estuviera bloqueado por el
vacuum full. Pero si ejecutan ese vacuum full cada 15 updates quiere
decir que nunca habrá opción para que autovacuum quiera ejecutarse sobre
esa misma tabla, porque la fórmula de activación no se cumplirá. Creo
que es poco probable que llegue a haber un problema.

Igual sería bueno monitorear pg_stat_activity por si autovacuum tiene
algún comportamiento errático.

--
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Lazaro Rubén García Martinez 2011-11-30 13:55:31 RE: Autovacuum en una sola db con multiples esquemas.
Previous Message Espartano 2011-11-30 05:42:58 Autovacuum en una sola db con multiples esquemas.