[Pgsql-ayuda] Error LOG

Alvaro Herrera alvherre@dcc.uchile.cl
Tue, 2 Sep 2003 22:47:27 -0400


On Tue, Sep 02, 2003 at 02:51:02PM -0400, Carmen Gloria Sepulveda Dedes wrote:
> > > Intente correr una carga de 1000000 de registros en una tabla de
> > > la base de datos.  Cuando iba aproximadamente en los 200000
> > > registros, comenzo a generar los siguientes errores:
> > >
> > > LOG:  could not launch checkpoint process (fork failure): Not enough space
> > > ... lo dio varias veces mientras el programa (en ECPG) se ejecutaba ...
> >
> > No pudo hacer fork.  Quizas estas topando el limite de procesos del
> > usuario o algo por el estilo.
> >
> > Moviste el pg_xlog a una particion separada? A lo mejor es esa la
> > particion que se queda sin espacio.  En cuanto tienes checkpoint_timeout
> > y checkpoint_segments?
> 
> El file system donde seta pg_xlog aun tiene como 9 Gb libres ... igual
> puedo moverlo para probar ... basta con un moverlo y dejar un link en
> PGDATA ??? ... o debo hacer algo mas?

Huh... eso deberia ser mas que suficiente :-(  Fijate si durante el
proceso que importa el millón de registros ese filesystem se llena.

Ahora, estuve revisando el código y me da la impresión que es más bien
un problema de memoria, no parece tener nada que ver con disco.  En qué
sistema operativo estás, con cuanta memoria física y cuanto swap?
Fíjate cuanto es el mínimo de memoria libre cuando empieza a pedir
checkpoints; si se le acaba no puede hacer fork() y por eso los
mensajes.

Intenta aumentar mucho checkpoint_segments.  Esto va a hacer que los
checkpoints sean mucho más infrecuentes, porque si estás importando una
gran cantidad de registros va a querer hacer checkpoints a cada rato.
Aumenta también checkpoint_timeout.  La idea es que el sistema no esté
obligado a hacer checkpoints durante la importación.

Es primera vez que escucho un caso como este.  Nosotros importamos todos
los días un dump de unos 2 GB en un servidor de "respaldo", una de las
tablas tiene una docena de millones de registros y hay otras de tamaños
un poco menores; nunca ha dado estos dramas (de hecho el primer drama lo
tuvimos cuando el archivo del dump descomprimido pasó el límite de 2GB y
psql -f no lo reconoció; pero de checkpoint nunca se ha quejado).

... otra cosa que se me ocurrió que puedes revisar es cuanta memoria
ocupa el proceso que está haciendo la importación (el que corre ECPG).
A lo mejor te ocupa toda la memoria...

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"I would rather have GNU than GNOT."  (ccchips, lwn.net/Articles/37595/)