Re: Problema de Concurrencia de usuarios

From: Horacio Miranda <hmiranda(at)gmail(dot)com>
To: Rensi Arteaga Copari <rarteaga(at)ende(dot)bo>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Problema de Concurrencia de usuarios
Date: 2010-02-25 02:08:38
Message-ID: f2b9e7491002241808i6d85cebbi50bc910b8563dfa@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Tira por favor la salida del /etc/sysctl.conf
los archivos postgres.conf
Y si estas usando una versión de linux que tenga el sysreport
instalado por favor ejecutalo y revisa la salida de este, este ultimo
tiralo a mi email directamente para no contaminar la lista (ignoro si
es util que los demas vean un sysreport).
En caso que no tengas un sysreport, trata de ver como esta el
performance del disco, la CPU y la memoria (un top -n 1 -b ) un iostat
-m -x 2 (cuando tiren un reporte).
Ahora si cuando el usuario 1 tira un reporte y bloquea a los
usuarios-1 (N-1) creo que el problema va por un bloqueo de integridad
de tu reporte (hecho a mano) que lo unico que hace es generar bloqueos
a otros usuarios (solo debes bloquear si estas haciendo una
actualización de un registro y jamas hacer hacer un bloqueo, luego
tomar el evento y liberar el bloqueo, sí el evento nunca se produce,
los registros se bloquean de forma eterna.

Importante, revisa las llaves foraneas (que las llaves foraneas se
apoyen de primary keys, en caso que no sean primery keys, que tengan
por lo menos indice), de lo contrario cuando haces una actuazalición a
un registro que tiene llave foranea y no tiene indice la tabla
referenciada, estas haciendo un bloqueo a toda la tabla (por favor
confirmar esto), por lo menos pasa eso con Oracle (horrible).

No creo que debas hacer cambios profundos en tu aplicación, pero si
creo que debes cambiar la forma que estas haciendo las cosas en tu
programa.

Y lo más importante, tu programa si lo migras a mysql, Oracle, SQl
server lo unico que vas a hacer es pagar plata y no resolver tu
problema, generalmente es código no el motor.

2010/2/24 Rensi Arteaga Copari <rarteaga(at)ende(dot)bo>:
>
>
> Tengo   Una base de datos con unas 400 tablas dividas en varios esquemas, la
> tablas con más datos tiene un millón de registros. Esto a funcionando bien
> remotamente
> en diferentes ciudades de Bolivia (COCHABAMBA - COBIJA , COCHABAMBA -
>  TRINIDAD , COCAHBAMBA - SAN BORJA)
> durante un par de  años (2008 y 2009) con pocos usuario (unos 4) , pero este
> 2010 a crecido el número de usuarios en la central "Cochabamba" de 1 a 40
> y tengo problemas de concurrencia ,  existen procedimientos almacenados
>  cuando se ejecutan por un usuario "X1" evita que  los demás usuario puedan
> trabajar,  (X2,X3,.................X40)
> Esto esta causando muchas de demoras (5 minutos en ver un reporte) y
> molestias al usuarios y clientes
>
> Además de que están viendo mal  a POSTGRES (mis jefes dicen te advertimos de
> los problemas de software libre con volumenes mayores de datos)
> yo creo que es un problema de configuración.????
>
> Pienso que una solución sería limitar los recursos que cada usuario puede
> consumir (memoria y procesador) . Manejando de perfiles como en ORACLE
> poro no tengo  ni idea de como proceder. Haber si alguien me puede ayudar???
>
>
> Algunos Datos
> - Cada usuario de la aplicaciones tiene un usuario de base de datos
> - La versión de posgtres es la 8.1.1 y no puede actualizarse a las ultimas
> versiones por que tengo un gran numero de  procedimientos almacenados no
> compatibles con las ultimas versiones.
> - El servidor tiene dos  procesadores  de cuatro núcleos  con 8GB de memoria
> RAM y el sistema operativo es Red Hat 4.1
>
>
>
> --
> EMPRESA NACIONAL DE ELECTRICIDAD
> www.ende.bo
> Tel.: (591-4) 4520253 - 4520228
> Fax: (591-4) 4520318
> ---------------------------------------------------------------------------------
> Este mensaje ha sido analizado automaticamente por el MailScanner de ENDE
> y no han sido detectados virus ni otros contenidos peligrosos.
>
> --
> TIP 4: No hagas 'kill -9' a postmaster
>

--
Saludos,
Horacio Miranda Aguilera.
RedHat Certified Engineer
DBA Oracle - Large databases
+56 2 8974500

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2010-02-25 02:23:01 Re: RE: [pgsql-es-ayuda] Identificador único con md5()
Previous Message Alvaro Herrera 2010-02-25 01:50:38 Re: Manual de Desarrollo de PostgreSQl actual