Re: Pregunta sobre catalogos

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Juan Carlos Ramirez Zambrano <juancarlosrz(dot)78(at)gmail(dot)com>
Cc: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Pregunta sobre catalogos
Date: 2012-02-08 14:24:31
Message-ID: 1328710613-sup-5811@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Excerpts from Juan Carlos Ramirez Zambrano's message of mar feb 07 19:52:26 -0300 2012:
> hola lista, quiero preguntar una duda que tengo y ver si
> es recomendable hacer un vacuum full a catalogos

No, eso no es nunca recomendable, y menos hacerlo periódicamente.

> Se tiene activado el autovaccum desde hace 3 semanas y esta esta trabajando
> de forma correcta,
> pero el catalogo pg_attribute despues de 3 semanas pesa 1.5 GB, antes de
> que se activara el autovaccum este pesaba hasta 8 GB en 4 dias.
>
> Mi pregunta es, si es recomendable hacer un vaccum full a catálogos cada
> 4semanas o cada que pese mas de 1 GB el pg_attribute, este catalogo es
> el único que pesa mas de 1 GB.

Hmm, creo que tu problema con pg_attribute es severo: hay tanto
movimiento de tuplas que autovacuum no alcanza a mantener el problema a
raya. Ya no es tan severo como cuando no tenías autovacuum pero
claramente no se ha resuelto todavía.

Creo que tienes dos opciones: o haces que autovacuum sea más agresivo, o
pones un vacuum manual a pg_attribute. Lo que yo haría sería observar
cada cuánto tiempo autovacuum está procesando esa tabla; y registrar
cómo cambian los parámetros (cantidad de tuplas muertas) con el tiempo.
Todo esto lo puedes ver en pg_stat_sys_tables. Primero ejecuta un
vacuum full (o equivalente; ya hablamos de esto antes) ahora, y en
cuanto esté eso hecho estudia con cuidado cómo cambia la cantidad de
tuplas muertas. Si pasa mucho tiempo antes que autovacuum procese esa
tabla cuando exceda el límite de vacuum_scale_factor, es porque
autovacuum debe estar demasiado ocupado con otras tablas. En tal caso
podrías intentar aumentar autovacuum_max_workers o disminuir
autovacuum_vacuum_cost_delay, o ambas cosas. O bien poner un vacuum
(no full) a esa tabla, manualmente a través de cron, con más frecuencia
que lo que hace autovacuum.

Por supuesto, tienes que leer toda la documentación pertinente,
partiendo aquí:
http://www.postgresql.org/docs/9.1/static/maintenance.html
(ajusta la URL según la versión de postgres que estés usando)

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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan Carlos Ramirez Zambrano 2012-02-08 16:06:34 Re: Pregunta sobre catalogos
Previous Message Alvaro Herrera 2012-02-08 14:05:40 Re: Problema para construir una funcion dinamicamente