Re: congestion de postgres ???

From: Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com>
To: Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: congestion de postgres ???
Date: 2005-09-02 16:34:42
Message-ID: fa2b6e3a050902093445ab7e18@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 2/09/05, Alvaro Herrera<alvherre(at)alvh(dot)no-ip(dot)org> escribió:
> On Fri, Sep 02, 2005 at 08:52:17AM -0500, Luis Guevara wrote:
>
> Hola,
>
> > Mi problema era que a medida que pasaban los dias notaba que se habia
> > hecho bastante lento. En un primer momento, pensé que era por la data
> > que estaba aumentando y habia que hacer VACUUM ademas de ajustar las
> > consultas, pero ahora me doy cuenta que no es eso, sino más bien al
> > parecer hay mucha CONGESTION
>
> Bueno, y? Haces VACUUM y ANALYZE con la suficiente frecuencia?
>

Si he hecho VACUUM y ANALIZE, mas o menos 1 vez por semana (osea 3
veces hasta el momento).

El VACUUM lo ejecuto desde el PGADMIN, donde tengo tres opciones para elegir:

FULL
FREEZE
ANALIZE

Aparece la opcion ANALIZE activada por defecto, por tanto ese VACUUM
ejecuto. Aun no he leido para que es el FULL y el FREEZE, mi ingles
es bastante pobre. Te agradeceria puedas darme algun detalle de estas
opciones.

> Usa contrib/pgstattuple para determinar que tanto espacio perdido hay en
> las tablas.
>

¿ Como puedo usar contrib/pgstattuple ?

> > No hago conexiones persistentes, pero si tengo un modulo de
> > comunicacion entre usuarios activos en el sistema, este modulo lo que
> > hace es: Desde que ingresa el usuario al sistema, cada 4 segundos
> > efectúa una consulta a una tabla de mensajes para verificar si alguien
> > le ha enviado un mensaje al usuario activo, esta tabla tiene en este
> > momento 800 registros y cada tres dias se eliminan todos.
>
> La consulta esa de los mensajes, hace un seqscan o usa un indice? Esa
> tabla recibe todo el VACUUM necesario?
>

La consulta de los mensajes usa un indice y además la tabla por lo
general no pasa de 800 registros. Al hacerle el VACUUM a toda la base
de datos ¿ no se supone que está haciendole a esa tabla de mensajes ?

>
> > Entonces si hay 100 usuarios activos y todos a la vez, cada 4 segundos
> > lanzando consultas en Postgres, además de efectuar sus operaciones
> > propias correspondientes del sistema, definitavemente me parece que es
> > congestión.
> >
> > ¿ alguna idea sobre esto ? ¿ como podria mejorar este esquema ? ¿ como
> > puedo controlar esta congestion de tal manera que no me afecte la
> > velocidad ?
>
> Si la consulta esta optimizada al maximo, y dices que el sistema
> funciona bien con 20 usuarios consultando cada 4 segundos, entonces para
> soportar 100 usuarios los que necesitas es tener un sistema de discos 5
> veces mas rapido. En tal caso, considera
>
> 1. agregarle memoria al sistema
> 2. comprar una controladora RAID SCSI soportada con baterias
> 3. comprar discos suficientes para armar un RAID 10 con unos 4 discos
> muy rapidos
>

Ok. vamos a considerar estas opciones de manera urgente

> Otra alternativa que se me ocurre es, con los 100 usuarios, bajar los 4
> segundos a 20. Asi deberias tener, en promedio, la misma cantidad de
> consultas que 20 usuarios cada 4 segundos.
>

mmmmm voy aumentar un poco el intervalo del tiempo en que se consulta,
pero a lo mucho puede ser a 10 segundos. Porque aqui les interesa
mucho que la comunicacion sea rapida e interactiva.

Gracias.

atte.
Luis Guevara

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin Quijada 2005-09-02 17:09:37 RE: vista de varias tablas en dos bases distintas
Previous Message Douglas Escobar 2005-09-02 15:15:05 RE: problemas con tabla